How to pull jobs from any company's careers page (Greenhouse, Lever, Ashby, Workday) without scraping HTML
Description and use
The recipe enables extraction of structured job listings from company career pages using public JSON endpoints of Greenhouse, Lever, Ashby, and Workday, with ready‑made Apify Actors for automation and scheduling.
Problem
Obtaining structured job listings from company career pages is difficult because most pages are thin front‑ends over ATSs and HTML parsing is fragile.
Outcome
The recipe enables reliable, incremental extraction of job data from major ATSs without HTML scraping, supporting job boards, recruiting tools, and research.
Workflow
- Identify the ATS from the careers URL using the patterns in the table.
- Construct the public endpoint URL for the ATS (e.g., Greenhouse: https://boards-api.greenhouse.io/v1/boards/
<slug>/jobs?content=true). - Send a GET or POST request to the endpoint to retrieve job listings in JSON.
- Normalize the differing data shapes (locations, remote flags, salary).
- For Workday, handle paging and derive approximate posting dates from relative strings.
- Store seen job IDs between runs to enable incremental fetching.
- Optionally use Apify Actors (ats-job-scraper, workday-jobs-scraper) to automate the process and schedule runs.
- If no target list exists, use the Y Combinator Scraper to discover ATS boards for startups.
Evidence
Most company career pages aren't really websites. They're a thin front end over an applicant tracking system (ATS), and almost every ATS exposes the same public JSON that powers its own job widget.
Greenhouse: curl "https://boards-api.greenhouse.io/v1/boards/stripe/jobs?content=true"
Workday (a POST with paging, 20 per page): curl -X POST "https://nvidia.wd5.myworkdayjobs.com/wday/cxs/nvidia/NVIDIAExternalCareerSite/jobs" -H "Content-Type: application/json" -d '{"appliedFacets":{},"limit":20,"offset":0,"searchText":"data engineer"}'
I packaged all of this as Apify Actors, which you can call from the API, schedule, or plug into n8n/Make/Zapier
- Record date: 2026-10-26T18:26:11.481Z