One API across every ATS.
Greenhouse, Lever, Ashby, Workday, SmartRecruiters and 30+ more, in one normalized endpoint. No board tokens to collect, no per-ATS parsers to maintain.
Why ATS jobs are hard to aggregate
Three ways to get ATS postings
| Approach | Auth | Coverage per call | Tenant discovery | Schema |
|---|---|---|---|---|
| Raw ATS endpoints | None for public boards, OAuth for Workday | One company | You maintain the tenant list yourself | Different per ATS |
| Apify actors | Apify token | One run, per configured set | You supply the companies or the actor's own list | Per actor, varies |
| JobsPipe | One API key | Every tenant on every source at once | Maintained for you across 39 sources | One schema for all of them |
One request, three ATS platforms
curl -s -X POST https://api.jobspipe.dev/v1/sandbox/jobs/search \
-H 'content-type: application/json' \
-d '{
"source_or": ["greenhouse", "lever", "ashby"],
"posted_at_max_age_days": 7,
"limit": 25
}'source_or takes any combination of sources. Drop it and the query spans all of them. No key is needed for the sandbox, which returns sample records so you can check the shape before signing up.
Coverage on the four biggest
| ATS | Coverage | Refresh | Detail |
|---|---|---|---|
| Greenhouse | 3,000+ public boards | 24h refresh | Greenhouse source page |
| Lever | Every public Lever customer | 24h refresh | Lever source page |
| Ashby | Every public Ashby customer, 2,000+ | 24h refresh, 6h on high volume | Ashby source page |
| Workday | 45,000+ live postings from verified public tenants | 24h refresh | Workday source page |
Every source, one per page
Each source has its own page covering what it publishes, how its public endpoints behave and where the awkward parts are.
FAQ
What is an ATS job aggregator?
A service that reads job postings from many applicant tracking systems and returns them through one interface with one schema. The aggregation is the point: each ATS publishes per company, so without an aggregator you are querying Greenhouse for one employer at a time, then doing it again differently for Lever, then again for Workday.
Can I just call the Greenhouse and Lever APIs directly?
Yes, and for a small fixed list of employers that is the right call. Greenhouse's job board endpoint and Lever's postings endpoint are public and need no key. The limit is discovery, not access: both are addressed per company, so you need every company's board token or account name in advance. Direct integration is cheapest when you know exactly whose jobs you want and that list rarely changes.
Why is Workday harder than the others?
Workday publishes no public job-postings API. Its Staffing REST API is OAuth-scoped per tenant, granted by the customer, so it serves the employer rather than anyone reading the market. Every Workday customer instead hosts a careers site on a myworkdayjobs.com subdomain, and the tenant list is the thing you have to construct.
How is this different from building my own aggregator?
Mostly it is the same work, done once. The engineering is not the per-source parsing, it is keeping a tenant directory current across every ATS as companies adopt, migrate and churn. If you want to build it anyway, there is a full write-up of what that involves.
Which ATS platforms are covered?
39 sources, including Greenhouse, Lever, Ashby, Workday, SmartRecruiters, Workable, BambooHR, iCIMS, Paylocity and SuccessFactors, alongside job boards like Indeed and Glassdoor. Every posting carries the source that produced it, so you can filter to one ATS or exclude one entirely.
Can I try it without an API key?
Yes. The sandbox endpoint takes the same filters and needs no authentication, so you can confirm the request and response shape first. It returns sample records rather than live postings; swap in /v1/jobs/search with a key for the real index.
Building one yourself instead? How to build a job aggregator covers the tenant-discovery problem in full.