Technical deep dives, case studies, and engineering insights from the CleanJobData team.
jobr.pro's Free XML Job Feed: A Field Guide
A field-by-field walkthrough of jobr.pro's public feed.xml endpoint — the real schema, the apply-URL redaction mechanism, and how it compares to the gated feeds covered elsewhere in this series.
Free XML Job Feeds: What Actually Still Works in 2026
Most 'free XML job feed' advice is outdated. Here's what's actually real — iCIMS's and Indeed's Standard XML Feeds, jobr.pro's genuinely open feed.xml, why the .jobs-domain trick stopped working, and the one truly open government API.
Google Indexing API: Quota, Setup, and How to Check Your Usage
What the Google Indexing API is for, the default 200/day quota, how to request an increase, and where to check how much you've actually used.
How to Integrate Adzuna's Free Job API Into Your Job Board
A field-by-field walkthrough of Adzuna's free, self-serve job search API — the real response shape, the description-snippet gotcha, and what it can't give you.
How to Submit Job Postings to the Google Indexing API (Step by Step)
A complete walkthrough of wiring the Google Indexing API into a job board: service account setup, JWT auth, batching, dedup, and staying under quota.
JobPosting Schema: Required Fields, Mistakes & Where Not to Use It
A field-by-field guide to Google's JobPosting schema, quoting Google's own docs — required vs. recommended properties, common mistakes, and the pages it should never appear on.
How to Scrape Ashby Job Listings
A field-by-field walkthrough of Ashby's public job board API — the most structured location and compensation data of any major ATS, and where it still falls short.
How to Scrape Greenhouse Job Listings
A practical, field-by-field walkthrough of Greenhouse's public boards API: the board token, the full JSON response shape, and the real parsing problems you'll hit.
How to Scrape Lever Job Listings
A field-by-field walkthrough of Lever's public postings API — structured salary ranges, workplace type, and the response shape most tutorials skip.
How to Scrape Workable Job Listings
A field-by-field walkthrough of Workable's public widget API — structured multi-location data, and the fields that quietly aren't there.
How to Scrape Workday Job Listings
Workday's CXS API is the most complex of the major ATS platforms to scrape correctly — POST-based pagination, relative date strings, and IDs that aren't where you'd expect.
How to Deduplicate Job Listings Across Sources
Practical techniques for detecting the same job posted in multiple places: URL canonicalization, content hashing, fuzzy matching, and picking a canonical source.
How to Build a Job Board: Data Sources Compared
Scraping one ATS, general web scraping, or a normalized data API: a tradeoff comparison for sourcing job board data.
ATS Integration Patterns for Clean Job Data
A practical architecture guide for normalizing job data from ATS platforms into one stable API.
Building a Job Board in an Afternoon with Next.js and CleanJobData
How to use normalized job data, structured filters, and a Next.js starter to ship a production-ready job board quickly.
Building Job Search with PostgreSQL Full-Text Search
How to combine CleanJobData with PostgreSQL full-text search to build fast, relevant job search without Elasticsearch.
How to Choose a Job Data API in 2026
A practical checklist for evaluating job data APIs by coverage, normalization, filtering, freshness, and integration cost.
How We Normalized Hiring Data from Multiple ATS Platforms into One API
The engineering story behind turning messy ATS data into a consistent CleanJobData schema.
Why Location Normalization Is Harder Than It Looks
How CleanJobData resolves messy location strings into city, state, and country IDs for reliable job search.
Why Salary Normalization Matters for Job Data
How CleanJobData turns inconsistent compensation data into structured fields for filters, display, and analytics.