ATS Jobs Feed: Greenhouse, Lever, Ashby, Workday & more
Pricing
$1.50 / 1,000 jobs
ATS Jobs Feed: Greenhouse, Lever, Ashby, Workday & more
Get every open job from company careers pages on Greenhouse, Lever, Ashby, SmartRecruiters, Workday, Workable, Recruitee and Personio in one clean schema. Paste company names or careers URLs; the ATS is detected for you. Track new and closed roles between runs.
Pricing
$1.50 / 1,000 jobs
Rating
0.0
(0)
Developer
Dan
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
3 hours ago
Last modified
Categories
Share
ATS Jobs Feed: Greenhouse, Lever, Ashby, Workday and more
Get every open job from any company's careers page in one clean, consistent dataset, whichever applicant tracking system (ATS) they use. Paste company names or careers-page URLs; the Actor works out the ATS, pulls the roles straight from its official public job feed, and can tell you which jobs are new and which have closed since your last run.
Supported ATSs: Greenhouse, Lever, Ashby, SmartRecruiters, Workday, Workable, Recruitee, Personio.
What people use it for
- Sales and account-based marketing: "who's hiring data engineers this month?" Hiring is the strongest buying signal there is. Feed a list of target accounts and get alerted when they open relevant roles.
- Recruiters and agencies: watch client and prospect companies daily and be first to new roles.
- Job boards and newsletters: build a niche job board (remote, climate, fintech, London startups…) from hundreds of company boards in one schedule.
- Market and talent research: track hiring by department, location and salary across competitors.
Why this one
- One Actor, eight ATSs, one schema. No more stitching together a separate scraper per platform.
- Paste anything: a careers page (
https://stripe.com/jobs), a board URL (https://jobs.lever.co/spotify), shorthand (greenhouse:stripe) or just a company name (Notion). - Change tracking built in: schedule it daily and get only new and closed roles.
- Official public feeds, no browser, no proxies: fast, cheap and reliable. Runs finish in seconds for most companies.
- Salary where the ATS publishes it (Lever, Ashby, Recruitee), plus department, team, remote flag, employment type (normalised to Full-time, Part-time, Contract, Internship…) and full description.
Input
| Field | What it does |
|---|---|
companies | Required. One company per line: careers-page URL, ATS board URL, ats:token shorthand or company name. Workday needs the full careers-site URL (e.g. https://nvidia.wd5.myworkdayjobs.com/NVIDIAExternalCareerSite). |
titleKeywords | Keep jobs whose title, department or team contains any of these words. |
locations | Keep jobs whose location contains any of these (London, Germany, Remote). |
departments | Keep jobs in matching departments or teams. |
remoteOnly | Only remote jobs. |
includeDescription | Include full description text and HTML (default on). |
maxJobsPerCompany | Cap per board. |
trackChanges | Mark jobs new / unchanged and add a closed row for jobs that disappeared since the last run with the same company list (or stateKey). |
outputOnlyChanges | With tracking on, output only new and closed rows. |
stateKey | Name a watchlist so several schedules can track separately. |
Example:
{"companies": ["https://boards.greenhouse.io/stripe", "https://jobs.lever.co/spotify", "Notion", "https://nvidia.wd5.myworkdayjobs.com/NVIDIAExternalCareerSite"],"titleKeywords": ["engineer", "data"],"locations": ["London", "Remote"],"trackChanges": true}
Output
One row per job:
{"company": "Spotify","ats": "lever","boardToken": "spotify","jobId": "4f1c…","title": "Data Engineer","department": "Engineering","team": "Data","location": "Remote - UK","locations": ["Remote - UK"],"remote": true,"workplaceType": "remote","employmentType": "Full-time","salary": { "min": 60000, "max": 80000, "currency": "GBP", "interval": "per-year-salary" },"postedAt": "2026-10-01T10:53:20Z","url": "https://jobs.lever.co/spotify/4f1c…","applyUrl": "https://jobs.lever.co/spotify/4f1c…/apply","descriptionText": "…","changeStatus": "new","firstSeenAt": "2026-10-24T14:00:00Z","scrapedAt": "2026-10-24T14:00:00Z"}
Closed jobs (with change tracking) appear as { "changeStatus": "closed", "title", "company", "url", "jobUid", "closedDetectedAt" }.
A run summary (boards found, jobs per board, any inputs that couldn't be matched) is saved as SUMMARY in the run's key-value store.
Pricing
Pay per result: $1.50 per 1,000 jobs (one event per job row). No charge for companies that have no open roles or can't be found. Turn off descriptions or use outputOnlyChanges to keep scheduled runs cheap.
Tips
- Company-name lookup tries the common board slugs on each ATS. If a company isn't found, give its careers-page URL instead: the Actor follows it, finds the embedded board and, for custom careers pages that load jobs with JavaScript, falls back to looking the company's domain up on each ATS.
- Two inputs that point at the same board (say
Notionandhttps://www.notion.so/careers) are read once, so you're never charged twice for the same job. - Workday's careers sites return at most 2,000 jobs per search. For very large employers, use
titleKeywords,locationsordepartmentsto narrow the results. - For daily alerts: turn on
trackChangesandoutputOnlyChanges, schedule the Actor, and connect the dataset to Slack, email, Google Sheets or Zapier via Apify integrations. - With
maxJobsPerCompanyset, jobs beyond the cap may show as closed when tracking; leave it empty for watchlists.
Is this allowed?
The Actor reads the public job feeds that these ATSs publish so companies can display open roles on their own sites and job aggregators can list them. It doesn't log in, doesn't bypass any protection and collects no personal data: only job postings.
Feedback
Missing an ATS or a field? Open an issue on the Actor's Issues tab and it will usually be added within a few days.