6 ATS Platforms with Public Job Posting APIs
Building a job board and need to automate job imports? Find out which Applicant Tracking Systems offer public APIs that don't require authentication, making it easier to integrate job postings from specific clients.
Access 54 ATS platforms with one comprehensive API
Fantastic Jobs operates as a multi-source job aggregator, ingesting postings from ATS platforms, job boards, and company career sites in near real time. Our real-time multi-source job postings API exposes this unified dataset of 10M+ jobs per month from 200k+ sources.
1. Ashby
Ashby has a simple public API that allows anyone to retrieve jobs from Ashby clients. To retrieve jobs, you can use the following endpoint:
GET https://api.ashbyhq.com/posting-api/job-board/{clientname}?includeCompensation=true
The API will return a JSON containing most relevant job posting fields. Filtering or searching is not possible with this endpoint. More advanced endpoints are available for Ashby customers, which can be accessed via the Ashby Developer API.
curl -X GET "https://api.ashbyhq.com/posting-api/job-board/{clientname}?includeCompensation=true"$response = Invoke-RestMethod -Uri "https://api.ashbyhq.com/posting-api/job-board/{clientname}?includeCompensation=true"2. Greenhouse
Greenhouse has a simple public API that allows anyone to retrieve jobs from Greenhouse clients. To retrieve jobs, you can use the following endpoint:
GET https://api.greenhouse.io/v1/boards/{clientname}/jobs?content=true
The API will return a JSON containing most relevant job posting fields. Filtering or searching is not possible with this endpoint. More advanced endpoints are available for Greenhouse customers, which can be accessed via the Greenhouse Harvest API.
curl -X GET "https://api.greenhouse.io/v1/boards/{clientname}/jobs?content=true"$response = Invoke-RestMethod -Uri "https://api.greenhouse.io/v1/boards/{clientname}/jobs?content=true"3. Lever.co
Every Lever.co customer has a public API that allows you to retrieve jobs. No authentication is required. To retrieve jobs, you can use the following endpoint:
GET https://api.lever.co/v0/postings/{clientname}?mode=json
The result is a JSON response containing all relevant job posting fields including categories, hosted URLs, apply URLs, and optional salary fields. Lever supports filtering at the source with parameters like team, department, location, commitment, level, skip, and limit.
curl -X GET "https://api.lever.co/v0/postings/{clientname}?mode=json&limit=20"$response = Invoke-RestMethod -Uri "https://api.lever.co/v0/postings/{clientname}?mode=json&limit=20"4. Personio
Personio is the main XML-based public source for job postings. Every Personio customer has a public XML feed that allows you to retrieve jobs without authentication. To retrieve jobs, you can use the following endpoint:
GET https://{company}.jobs.personio.de/xml?language=en
The feed returns XML containing job postings with fields like title, office, department, recruiting category, employment type, and description blocks. Some accounts use .com instead of .de, so check the live career-site hostname before hardcoding it.
curl -X GET "https://{company}.jobs.personio.de/xml?language=en"$response = Invoke-RestMethod -Uri "https://{company}.jobs.personio.de/xml?language=en"5. Recruitee
Recruitee has a simple public API that allows anyone to retrieve jobs from Recruitee clients. To retrieve jobs, you can use the following endpoint:
GET https://{clientname}.recruitee.com/api/offers
The API will return a JSON containing most relevant job posting fields. Filtering or searching is not possible with this endpoint. More advanced endpoints are available for Recruitee customers, which can be accessed via the Recruitee ATS API.
curl -X GET "https://{clientname}.recruitee.com/api/offers/"$response = Invoke-RestMethod -Uri "https://{clientname}.recruitee.com/api/offers/"6. Workable
Workable has a simple public API that allows anyone to retrieve jobs from Workable clients. To retrieve jobs, you can use the following endpoint:
GET https://apply.workable.com/api/v1/widget/accounts/{clientname}
The API will return a JSON containing most relevant job posting fields. Filtering or searching is not possible with this endpoint. More advanced endpoints are available for Workable customers, which are now on v3 of the API.
curl -X GET "https://apply.workable.com/api/v1/widget/accounts/{clientname}"$response = Invoke-RestMethod -Uri "https://apply.workable.com/api/v1/widget/accounts/{clientname}"Multi-source job postings API: common questions
What is a multi-source job postings API?
A multi-source job postings API aggregates job listings from many origins — ATS platforms (such as Workday, Greenhouse, Lever, and BambooHR), job boards (LinkedIn, Indeed), and direct company career sites — into a single normalized, deduplicated dataset accessible through one HTTP endpoint. Instead of integrating each source individually, developers query one API and receive unified job records with a consistent schema.
How does a job aggregator API differ from a single ATS API?
A single ATS API (for example, the Greenhouse Job Board API) returns postings from one platform's customers only. A job aggregator API combines postings across all major ATS platforms, public job boards, and direct career sites into one feed, handles deduplication when the same role appears on multiple sources, and provides a consistent schema across providers. Aggregators trade per-platform write-access for read-only breadth and unified maintenance.
When should I use a global jobs API instead of building ATS integrations?
Use a global jobs API when you need broad coverage across employers and platforms (for job boards, job-search products, or recruitment AI), when you need a single SLA and refresh schedule, or when maintaining dozens of ATS-specific connectors would exceed the cost of an aggregator subscription. Build direct ATS integrations when you only need data from a small fixed set of clients, or when you require write-access such as creating applications or managing candidates, which read-only aggregator APIs do not provide.
Did we miss any ATS's? Let us know!