Every major job-board ATS has a free, keyless JSON API. Here's how to use all seven
Most companies don't host their own careers page. They use an applicant tracking system (ATS) like Greenhouse, Lever, Ashby or Workday. What a lot of developers don't realize is that those careers pages are powered by public, keyless JSON endpoints , so you can pull every open job straight from the employer, live, without scraping HTML. I ran these endpoints against 4,000+ real companies while…
Every major job-board Applicant Tracking System (ATS) provides a free, keyless JSON API for accessing job listings. Developers need to know how to utilize these seven APIs to extract open jobs directly from employers without scraping HTML. After analyzing over 4,000 companies, the following cheat sheet and potential pitfalls were compiled.
Greenhouse API: Use the GET request `boards-api.greenhouse.io/v1/boards/{slug}/jobs?content=true` to fetch job details. Greenhouse content is double-encoded HTML, so unescape it first.
Lever API: The GET request `api.lever.co/v0/postings/{slug}?mode=json` (EU: `api.eu.lever.co`) provides job information. Remember that the API caps at 2,000 results, 20 per page, and only returns total results on the first page.
Ashby API: Access job boards using the GET request `api.ashbyhq.com/posting-api/job-board/{slug}?includeCompensation=true`. Be aware that `isRemote` is true for hybrid roles, and salaries can have multiple tiers. Always consider the minimum and maximum across all salary components.
Workday API: POST requests to `{tenant}.wd{N}.myworkdayjobs.com/wday/cxs/{tenant}/{site}/jobs` retrieve job listings. Workday caps at 2,000 results, 20 per page, and only returns total results on the first page.
SmartRecruiters API: Utilize the GET request `api.smartrecruiters.com/v1/companies/{slug}/postings` to obtain job data.
Recruitee API: The GET request `{slug}.recruitee.com/api/offers/` provides offer information. Note that dates are not ISO 8601, causing parser issues.
Workable API: Use the POST request `apply.workable.com/api/v3/accounts/{slug}/jobs` to access job postings.
A single slug can exist on multiple ATSs, often representing a stale test board. Choose the ATS with the most job listings. The full guide with code examples for each platform is available at https://arabinowe.github.io/job-board-apis/. The guide is free and CC-licensed.
Written by urgent.news from Dev.to's reporting — not their text. Machine-written — may contain errors; check the original before relying on it.