ATS Job Boards — Greenhouse, Lever, Ashby, SmartRecruiters
Pricing
from $4.00 / 1,000 job listings
ATS Job Boards — Greenhouse, Lever, Ashby, SmartRecruiters
Give it company domains. It finds which ATS each company uses, pulls every open role from the ATS's own public job-board endpoint, and returns them all in one normalised schema.
Pricing
from $4.00 / 1,000 job listings
Rating
0.0
(0)
Developer
Canonrow
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
4 days ago
Last modified
Categories
Share
ATS Job Board Scraper — Greenhouse, Lever, Ashby, SmartRecruiters
Give it a list of company domains. It works out which applicant tracking system each company uses, pulls every open role straight from that ATS's own public job-board endpoint, and hands you all of it in one normalised schema.
No login. No headless browser. No proxies. No rate-limit roulette — these endpoints are the same ones the companies use to publish their own careers pages.
Why you'd use this
Job data on the big aggregators is stale, deduplicated badly, and missing the direct apply link. Company ATS boards are the source those aggregators copy from — fresher, complete, and with a real applyUrl for every row.
The awkward part has always been that you need to know a company uses Greenhouse under the token stripe, or Ashby under ramp. This Actor works that out for you: it reads the company's own careers page for a board link, and if the page renders its board in JavaScript, it falls back to asking each ATS directly whether a board exists under that company name.
ramp.com → ashby:ramp 138 roleslinear.app → ashby:Linear 32 rolesvanta.com → ashby:vanta (found by probe — careers page is JS-rendered)
Input
{"companies": ["ramp.com", "linear.app", "vanta.com"],"boards": ["greenhouse:stripe", "jobs.lever.co/palantir", "careers.smartrecruiters.com/Visa"],"titleFilter": "engineer","onlyRemote": false,"postedWithinDays": 0,"includeDescription": false}
companies— plain domains. ATS and board token are detected automatically.boards— if you already know the board, pass the URL or the shorthandgreenhouse:stripe. Both inputs can be used together; duplicates are collapsed.titleFilter— case-insensitive regular expression, e.g.engineer|developer|scientist.onlyRemote— uses the ATS's own remote flag where it exists (workplaceTypeon Lever,isRemoteon Ashby) rather than guessing from the location string.postedWithinDays— keeps only roles published or updated inside the window.includeDescription— adds the full job description as plain text. Slower, and on SmartRecruiters it costs one extra request per role, so it is off by default.
Output
Every row is the same shape, whichever ATS it came from:
{"ats": "lever","company": "palantir","jobId": "655f9937-a4ce-4e7d-80e2-a6659af07329","title": "Software Engineer","department": "Engineering","team": "Engineering","employmentType": "Full-time","location": "London, United Kingdom","locations": ["London, United Kingdom"],"isRemote": false,"postedAt": "2026-07-02T10:14:00.000Z","applyUrl": "https://jobs.lever.co/palantir/655f9937-.../apply","compensation": null,"descriptionText": null,"scrapedAt": "2026-08-19T16:44:02.113Z"}
A SUMMARY record in the key-value store lists how many roles each board returned, plus every company it could not resolve and why — so a partial run is never silently reported as a complete one.
Supported systems
| ATS | Detected from | Notes |
|---|---|---|
| Greenhouse | boards.greenhouse.io/{token}, embed URLs | full board in one request |
| Lever | jobs.lever.co/{slug} | includes workplaceType and salary range when the company publishes it |
| Ashby | jobs.ashbyhq.com/{slug} | includes compensation summary and secondary locations |
| SmartRecruiters | careers.smartrecruiters.com/{id} | paginated automatically |
Pricing
Pay per job listing delivered — after filtering. A company whose board returns nothing costs you nothing.
Honest limits
- Companies on ATS platforms not listed above (Workday, Taleo, iCIMS, BambooHR) will not be found. They are reported in
SUMMARY.failuresrather than silently dropped. - Discovery reads the careers page and then probes by company name. A company whose board token bears no relation to its domain (an acquired brand, say) needs its board URL passed in
boards. postedWithinDaysdrops roles whose ATS publishes no date at all, because there is no honest way to tell whether they fall inside the window.