ATS Jobs Feed: Greenhouse, Lever and Ashby Job Scraper avatar

ATS Jobs Feed: Greenhouse, Lever and Ashby Job Scraper

Pricing

Pay per usage

Go to Apify Store
ATS Jobs Feed: Greenhouse, Lever and Ashby Job Scraper

ATS Jobs Feed: Greenhouse, Lever and Ashby Job Scraper

One normalised job postings feed across Greenhouse, Lever and Ashby from company careers URLs, with salary, remote and new-jobs-only filters.

Pricing

Pay per usage

Rating

0.0

(0)

Developer

Venture Ace

Venture Ace

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

2 hours ago

Last modified

Categories

Share

ATS Jobs Feed: Greenhouse, Lever, Ashby and Workday job scraper in one schema

Paste company careers URLs and get every open job posting back in one normalised format, whichever applicant tracking system (ATS) the company uses. It is a Greenhouse jobs scraper, a Lever jobs scraper, an Ashby jobs scraper and a Workday (myworkdayjobs.com) jobs scraper in a single Actor. It reads the public posting APIs that the ATS vendors publish for careers pages, and for Workday the same public JSON that every Workday career site loads in your browser. No browser, no login, no proxies.

What you can do with it

  • Build a job board or job alert feed across hundreds of companies.
  • Track hiring signals: who is hiring for which role, in which country, at what salary.
  • Pull salary ranges where the ATS exposes them (Greenhouse pay transparency, Lever salary range, Ashby compensation; for Workday, the range the employer writes into the description, parsed).
  • Run it daily with only new jobs to get a clean delta of fresh postings.
  • Feed AI agents: the Actor is callable through the Apify MCP server.

Input

FieldWhat it does
companiesCareers URLs: boards.greenhouse.io/x, job-boards.greenhouse.io/x, jobs.lever.co/x, jobs.ashbyhq.com/x, tenant.wd5.myworkdayjobs.com/SiteName (any wdN host). The ATS is detected from the URL. A bare token like airbnb is tried on all three.
keywords, excludeKeywordsKeep or drop jobs by title, department or description text.
locations, remoteOnlyFilter by location text or remote jobs.
postedSince2026-10-01, 7 days or 24 hours.
onlyNewOutput only jobs not seen in earlier onlyNew runs on the same boards (stored in the key-value store ats-jobs-feed-seen). Schedule it daily.
maxItemsTotal cap, default 500. maxItemsPerCompany caps each board.

Output (one row per job)

id, ats, company, title, url, applyUrl, location, locations, country, remote, workplaceType, department, team, employmentType, postedAt, updatedAt, salaryMin, salaryMax, salaryCurrency, salaryInterval, salaryText, descriptionText (plain), descriptionHtml, scrapedAt.

Fields an ATS does not publish are null. postedSince drops jobs with no posting date. EU-hosted boards (jobs.eu.lever.co, boards.eu.greenhouse.io) are not supported yet and come back as an error row. Workday: every job needs one extra request for its full description, so a Workday run is slower than the other ATSs (about 0.5 s a job); keywords are sent to Workday as a search, postedAt is the posting start date, and a bare token does not work (use the full URL). Greenhouse does not give a country, employment type or team; Lever and Ashby give salary only when the employer fills it in.

Reliability

A board that does not exist, times out or returns an error becomes an error row (recordType: "error", with the reason) and the run carries on. Error rows are never charged. Requests retry with backoff on 429 and 5xx and wait 1 second between Lever requests, as Lever's robots.txt asks.

Privacy and sources

Job ads are company data. Email addresses inside descriptions are replaced with [email removed] by default (stripEmails). The Actor calls these public endpoints: boards-api.greenhouse.io/v1/boards/<token>/jobs, api.lever.co/v0/postings/<company> (Lever states published postings may be scraped by third parties) api.ashbyhq.com/posting-api/job-board/<name> and, for Workday, <tenant>.<wdN>.myworkdayjobs.com/wday/cxs/<tenant>/<site>/jobs (the career sites' robots.txt allows their career paths; the Actor waits 0.35 s between requests and backs off on 429 and 5xx). Descriptions can still contain recruiter names or phone numbers; you are responsible for how you store and use them. Check your own use of job data against the employer's and ATS's terms.

Pricing

Free while in early access. Planned: pay per result at about US$2 per 1,000 jobs, announced 14 days ahead as Apify requires. Error rows are never charged. Set maxItems low for tests.