ats-jobs: fetch job listings from Greenhouse, Lever, Ashby, Workday and more
ats-jobs is a free Node.js library that fetches public job listings from ten applicant tracking systems and returns them in one consistent JSON shape, with no API keys and no setup. It is the scraping code behind this site, MIT licensed.
Install
npm install ats-jobs
Usage
const { getJobs } = require("ats-jobs");
const jobs = await getJobs("lever", "ro");
console.log(jobs[0].title, jobs[0].location, jobs[0].applyUrl);Each job has these fields: jobId, company, source, title, location, team, department, employmentType, remote, description, applyUrl, jobUrl, publishedAt, compensationSummary, compensationMin, compensationMax, compensationCurrency, compensationInterval.
Supported job boards
| Provider | Example slug |
|---|---|
| Ashby | openai |
| Lever | ro |
| Greenhouse | gitlab |
| Workable | huggingface |
| Recruitee | bunq |
| Teamtailor | bankgirotab |
| Pinpoint | avaaz |
| SmartRecruiters | linkedin3 |
| Workday | nvidia/wd5/NVIDIAExternalCareerSite |
| Keka | disprz |
Frequently asked questions
How do I get job listings from a Greenhouse, Lever or Ashby board in Node.js?
Install ats-jobs with npm install ats-jobs, then call getJobs("greenhouse", "gitlab"). The first argument is the job board vendor and the second is the company's id on that vendor.
Does ats-jobs need an API key?
No. It reads the public job-board endpoints that Ashby, Lever, Greenhouse and the other supported vendors already expose for company career pages.
Which applicant tracking systems does ats-jobs support?
Ashby, Lever, Greenhouse, Workable, Recruitee, Teamtailor, Pinpoint, SmartRecruiters, Workday and Keka.
Can I normalize job data I already fetched?
Yes. normalize(provider, rawJobs, company) converts raw vendor JSON into the common shape without making any network request.
What license and Node.js version does ats-jobs use?
It is MIT licensed and needs Node.js 20 or newer.
Why it exists
Every job board vendor has its own URL shape, response format and quirks. ats-jobs is what Ashby Jobs uses every day to read all of them, with the quirks sorted out once. Issues and pull requests are welcome on GitHub.