ATS Jobs Feed — Greenhouse · Lever · Ashby, one schema
Pricing
Pay per usage
ATS Jobs Feed — Greenhouse · Lever · Ashby, one schema
Pull live job postings from company career boards on Greenhouse, Lever and Ashby through their public job-board APIs — normalised to a single schema with stable IDs, deduplication, optional PII redaction and a changes-only monitor mode.
Pricing
Pay per usage
Rating
0.0
(0)
Developer
Daniel James
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
10 days ago
Last modified
Categories
Share
Pull live job postings straight from company career boards — through the official public job-board APIs of Greenhouse, Lever and Ashby — and get them back in one clean, normalised schema with stable IDs, deduplication and an optional changes-only monitor mode.
No scraping of job aggregators, no proxies, no brittle HTML parsing: these are the JSON endpoints the ATS vendors publish precisely so third parties can consume their boards. That makes this feed fast (hundreds of jobs in seconds), reliable and compliance-friendly.
What you get
Every job, from every board you list, in the same shape:
{"id": "9b1f6c2a…","ats": "greenhouse","board": "gitlab","sourceJobId": "7970199002","title": "Senior Backend Engineer","department": "Engineering","team": "Platform","location": "Remote, EMEA","employmentType": "Full-time","remote": true,"compensation": "£70K – £90K","absoluteUrl": "https://boards.greenhouse.io/gitlab/jobs/7970199002","publishedAt": "2026-07-01T09:12:00Z","updatedAt": "2026-08-11T14:03:00Z"}
- Stable IDs — the same job keeps the same
idacross runs, so joins and diffing downstream just work. - Dedupe built in.
- Compensation where the ATS provides it (Ashby publishes structured pay ranges).
- Full descriptions optional (
includeContent) — off by default to keep datasets lean.
Monitor mode (changesOnly)
Turn any board into a change feed. The actor remembers each board's state between runs and emits only:
"changeType": "new"— freshly posted jobs"changeType": "updated"— title/location/team/comp changes"changeType": "removed"— postings taken down (a strong closed-role signal)
Run it on a schedule and you have a hiring-signal pipeline: who is hiring, for what, where, and what quietly disappeared — the signal recruiters, sales teams and analysts actually want.
Input
| Field | Example | Notes |
|---|---|---|
boards | greenhouse:gitlab, lever:spotify, ashby:Notion | or paste board URLs. The token is the slug from the board URL. Ashby names are case-sensitive — Notion, not notion; an unknown Ashby board returns an empty list, and the run log warns you |
changesOnly | false | monitor mode as above |
stripPii | true | redacts emails/phone numbers from descriptions — keep on unless you have a lawful basis to process them |
includeContent | false | full description HTML/text per job |
maxJobsPerBoard | 0 | 0 = unlimited |
Where do I find my board token?
- Greenhouse:
boards.greenhouse.io/TOKEN - Lever:
jobs.lever.co/TOKEN - Ashby:
jobs.ashbyhq.com/TOKEN(exact casing)
Any company using one of these three systems for their careers page can be monitored — that's a very large share of tech and scale-up hiring.
Honest limits
- Only boards on Greenhouse, Lever or Ashby (more ATS platforms planned — tell us which you need in the Issues tab).
- Job descriptions are customer-authored; with
stripPiioff you are responsible for any personal data they contain. - Greenhouse/Ashby publish no rate limits; the actor is polite (retries with backoff, no hammering).
Typical costs
The actor is pure JSON-API work — no browser — so platform usage is tiny (a three-board, 426-job run measured ~0.0015 compute units in under 6 seconds). You pay per result via the event pricing shown on this page.