All posts

6 ATS Platforms with Public Job Posting APIs [2026]

A practical guide to the public ATS APIs that actually work for pulling jobs into a job board. Covers Greenhouse, Lever, Ashby, Workable, Recruitee, and Personio, with exact endpoints and what to do when an ATS has no public feed.

AJ
By Abi Tyas Tunggal and Jack Walsh· Published on

If you are building a job board, relevant jobs are the product. Public ATS feeds are one of the most practical ways to get those jobs onto your board quickly and keep them fresh. A small group of applicant tracking systems, or ATSs, expose published jobs through public JSON APIs or XML feeds you can pull without OAuth, partner approval, or employer-by-employer setup.

This guide covers the public ATS sources that are actually useful for a job board, the exact endpoints they expose, and what to do when an ATS does not offer one.

What is an ATS, and what counts as a public job posting API?

An applicant tracking system (ATS) is the software employers use to publish roles, collect applications, and manage the hiring process. Greenhouse, Lever, Ashby, Workable, Recruitee, and Personio are all ATS platforms. If you want the broader distinction between ATS tools and job board software, start there.

For a job board, the part that matters is the public careers layer. A public job posting API is any documented endpoint or feed that lets you retrieve published jobs without asking each employer for API credentials first. In practice, that usually means one of two things:

  • a public JSON API
  • a public XML job feed

The useful fields are the same either way: title, location, description, department, employment type, updated date, source URL, and apply URL. That is enough to power a board, even if you still need to normalize titles, clean up locations, deduplicate listings, and expire jobs when they disappear from the source.

How job boards actually use public ATS APIs

Most job boards do not build a deep integration into each ATS. They pull the published jobs, store them in their own schema, add their own search and filtering, and then send candidates to the original apply URL.

The basic workflow looks like this:

  1. Fetch published jobs from the public ATS endpoint or feed.
  2. Normalize fields like location, workplace type, salary, department, and remote status.
  3. Deduplicate jobs by source URL, external job ID, or a combination of both.
  4. Re-sync on a schedule so new jobs appear quickly and closed jobs disappear.
  5. Display the jobs on your own board with your own search, filters, SEO pages, and monetization.

That is why public ATS APIs are valuable for job boards. They remove the hardest part of direct ATS work, which is authentication and customer-by-customer setup. They do not remove the rest of the operating work. You still need to handle freshness, deduplication, taxonomy cleanup, and source quality. If you want the broader picture, our guides on job feeds, job scraping, job wrapping, and job board aggregators cover the other ways boards get jobs onto the site.

6 ATS platforms with free public job posting APIs or feeds

These are the six documented no-auth options that are actually useful for pulling jobs into a board today.

PlatformPublic endpointFormatWhat you getMain limitation
GreenhouseGET https://boards-api.greenhouse.io/v1/boards/{board_token}/jobs?content=trueJSONPublished jobs, descriptions, departments, offices, apply URLs, updated timestampsNo native search or filtering
LeverGET https://api.lever.co/v0/postings/{site}?mode=jsonJSONPublished jobs, categories, hosted URLs, apply URLs, optional salary fieldsYou still need to build your own search layer
AshbyGET https://api.ashbyhq.com/posting-api/job-board/{job_board_name}?includeCompensation=trueJSONPublished jobs plus structured compensation summariesNo built-in search or filtering on the public feed
WorkableGET https://www.workable.com/api/accounts/{account_subdomain}?details=trueJSONPublished jobs plus job details from the public careers layerCompanion locations and departments come from separate endpoints
RecruiteeGET https://{company}.recruitee.com/api/offers/JSONPublished jobs, careers_url, careers_apply_url, department and tag filtersLighter metadata than Greenhouse or Ashby
PersonioGET https://{company}.jobs.personio.de/xml?language=enXMLPublished jobs, office, department, employment type, description blocksXML feed, not JSON

Greenhouse

Greenhouse is usually the easiest public ATS API to start with. The response includes the fields most job boards need: title, location, departments, offices, description content, updated timestamps, and apply URLs.

bash
curl "https://boards-api.greenhouse.io/v1/boards/acme/jobs?content=true"

Replace acme with the company's Greenhouse board token.

Example live response from Stripe on April 3, 2026:

json
{
"id": 7546284,
"title": "Account Executive, AI Sales",
"location": {
"name": "San Francisco, CA"
},
"absolute_url": "https://stripe.com/jobs/search?gh_jid=7546284",
"updated_at": "2026-04-01T11:46:05-04:00",
"company_name": "Stripe"
}

Lever

Lever is one of the better public JSON APIs if you want basic filtering at the source. It supports parameters like team, department, location, commitment, level, skip, and limit.

bash
curl "https://api.lever.co/v0/postings/lever?mode=json&limit=20"

Replace lever with the company's Lever site name.

Example live response from Dun & Bradstreet on April 3, 2026:

json
{
"text": "Account Executive II, SLED (R-18831)",
"categories": {
"commitment": "Employee: Full Time",
"location": "Remote - United States",
"team": "Government Relations"
},
"hostedUrl": "https://jobs.lever.co/dnb/6590549e-d893-4e0e-8934-dda77ef05223",
"applyUrl": "https://jobs.lever.co/dnb/6590549e-d893-4e0e-8934-dda77ef05223/apply",
"salaryRange": {
"currency": "USD",
"min": 123100,
"max": 206800
}
}

Ashby

Ashby is the public ATS feed with the cleanest compensation support. If salary matters on your board, includeCompensation=true is the parameter to care about.

bash
curl "https://api.ashbyhq.com/posting-api/job-board/ashby?includeCompensation=true"

Replace ashby with the company's Ashby job board name.

Example live response from Ashby on April 3, 2026:

json
{
"id": "145ff46b-1441-4773-bcd3-c8c90baa598a",
"title": "Engineer Who Can Design, Americas",
"location": "Remote - North to South America",
"department": "Engineering",
"workplaceType": "Remote",
"jobUrl": "https://jobs.ashbyhq.com/ashby/145ff46b-1441-4773-bcd3-c8c90baa598a",
"applyUrl": "https://jobs.ashbyhq.com/ashby/145ff46b-1441-4773-bcd3-c8c90baa598a/application",
"compensation": {
"compensationTierSummary": "$190K – $255K • Offers Equity • Multiple Ranges",
"scrapeableCompensationSalarySummary": "$190K - $255K"
}
}

Workable

Workable's public careers layer is split across a few endpoints. The main one returns the public account and job data, and the companion endpoints return locations and departments.

bash
curl -L "https://www.workable.com/api/accounts/acme?details=true"
curl -L "https://www.workable.com/api/accounts/acme/locations"
curl -L "https://www.workable.com/api/accounts/acme/departments"

Replace acme with the employer's Workable account subdomain.

Example live response from Epignosis on April 3, 2026:

json
{
"title": "Customer Onboarding Specialist",
"shortcode": "072EA3CA72",
"url": "https://apply.workable.com/j/072EA3CA72",
"location": null,
"department": "Customer Success",
"employment_type": "Full-time"
}

Recruitee

Recruitee exposes a public offers endpoint on each employer subdomain. It is simple to call and works well when you just want published jobs plus the public careers and apply URLs.

bash
curl "https://acme.recruitee.com/api/offers/"

Replace acme with the employer's Recruitee subdomain.

Example live response from Adamsmithinternational1 on April 3, 2026:

json
{
"id": 2534691,
"title": "Team Leader - HEROS 2 Programme",
"location": "London, England, United Kingdom",
"department": "Project Positions",
"careers_url": "https://adamsmithinternational1.recruitee.com/o/team-leader-heros-2-programme",
"careers_apply_url": "https://adamsmithinternational1.recruitee.com/o/team-leader-heros-2-programme/c/new",
"employment_type_code": "contract",
"remote": false
}

Personio

Personio is the main XML-based public source worth knowing about. If your import pipeline already supports XML, it is straightforward to add.

bash
curl "https://acme.jobs.personio.de/xml?language=en"

Replace acme with the employer's Personio career-site subdomain. Some accounts use .com instead of .de, so check the live career-site hostname before hardcoding it.

Example live response from Personio on April 3, 2026:

xml
<position>
<id>1834171</id>
<subcompany>Personio SE &amp; Co. KG</subcompany>
<office>Munich</office>
<department>Product and Tech</department>
<recruitingCategory>Engineering</recruitingCategory>
<name>Staff Software Engineer, Data Platform</name>
<employmentType>permanent</employmentType>
</position>

What to do when an ATS does not have a public API

Most boards do not live on public ATS APIs alone. Once you move beyond the six sources above, you usually combine four different methods:

  • public ATS APIs like Greenhouse, Lever, or Ashby
  • public XML feeds like Personio or feed-based Recruitee setups
  • career-page extraction through job wrapping or job scraping
  • pre-built job data sources and job feeds

That is also the point where most operators should stop asking, "Can we integrate one more ATS ourselves?" and start asking, "Do we really want to own this pipeline?"

If your actual goal is to get relevant jobs onto your board, keep them fresh, deduplicate them, and get them indexed, Cavuno is the simpler path. Cavuno already pulls from public ATS APIs, career pages, feeds, and other public job sources, then handles the parts most teams underestimate:

  • deduplication by source URL
  • expiry when jobs disappear
  • company enrichment
  • search-ready normalization
  • moderated imports when you want editorial control

That is what Backfill is for. You define the kinds of jobs you want, Cavuno imports matching jobs onto the board, and you can review them through job moderation if you want tighter control. Once they are live, you can run the board on your own custom domain and speed up discovery with the Google Indexing API.

If you are building an HR tech product whose value is the integration itself, direct ATS work makes sense. If you are building a job board, the better question is usually how to get reliable job supply without turning source maintenance into your product.

Which public ATS API is best for a job board?

The better question is not which API is "best" in the abstract. It is which ATSs show up in the kinds of companies your board cares about.

  • Greenhouse is the highest-leverage place to start for startup, software, and venture-backed company coverage. If your board targets tech, product, engineering, or venture-backed hiring, Greenhouse will show up constantly.
  • Lever is common in tech as well, especially among growth-stage companies and teams that want a polished hosted careers experience. It is a good second source after Greenhouse for startup-heavy niches.
  • Ashby tends to show up in newer, high-growth startups, especially companies that care about modern recruiting workflows and salary transparency. If your niche overlaps with startup hiring or tech-forward employers, it is worth supporting.
  • Workable appears much more often outside the classic venture-backed startup world. It is common among SMBs, agencies, and operational teams that want an easy careers setup without a heavyweight recruiting stack.
  • Recruitee is common among SMB and mid-market teams, particularly in Europe. If your board skews toward smaller employers or international hiring outside the US venture ecosystem, it is a useful source.
  • Personio matters most when your target employers are in Europe, especially DACH markets. It is less about broad global coverage and more about reaching the companies that already run hiring through Personio.

For most operators, that is enough to prove the concept quickly. After that, the problem stops being "which public ATS has an API?" and becomes "how do we keep jobs clean, current, and useful at scale?" That is the part that determines whether a board feels empty and stale or alive and worth returning to.

Frequently asked questions

Related posts

Cover Image for Job Feeds for Job Boards: How to Backfill, Manage, and Monetize in 2026
Technology·

Job Feeds for Job Boards: How to Backfill, Manage, and Monetize in 2026

Learn how to source, manage, and monetize job feeds for your job board. Covers backfilling strategy, feed providers, quality control frameworks, AI-powered feed management, and real revenue math.

Cover Image for Job Wrapping Explained: How It Works, When It Fails, and How to Do It Right
Technology·

Job Wrapping Explained: How It Works, When It Fails, and How to Do It Right

Learn what job wrapping is, how it works technically, common implementation problems that damage candidate trust, Google for Jobs compliance requirements, and quality controls that separate successful...

Cover Image for What Is a Job Board Aggregator? How to Build One in 2026 (Without Code)
Technology·

What Is a Job Board Aggregator? How to Build One in 2026 (Without Code)

Learn what a job board aggregator is, how it works, and how to build one step-by-step. Covers AI-powered job processing, monetization strategies, and platform comparison.

Cover Image for How to Scrape Job Postings in 2026: Tools, Code, Legal Risks, and Smarter Alternatives
Technology·

How to Scrape Job Postings in 2026: Tools, Code, Legal Risks, and Smarter Alternatives

The complete guide to job board scraping: Python tutorials, tool comparisons, legal case law, maintenance costs, and alternatives like ATS APIs and managed aggregation.

Cover Image for Job Board Business Models: The Strategic Guide Backed by $26B in Public Company Data
Monetization·

Job Board Business Models: The Strategic Guide Backed by $26B in Public Company Data

A strategic analysis of job board business models using real financial data from Indeed ($7.4B), LinkedIn ($17.8B), ZipRecruiter ($449M), and Seek ($1.1B AUD), plus revenue benchmarks from 15+ niche o...

Cover Image for What Is Job Board Software? How It Works, What It Costs, and Who It's For
Getting Started·

What Is Job Board Software? How It Works, What It Costs, and Who It's For

A complete guide to job board software: what it does, how it works under the hood, the five ways to build a job board, who uses them, and what it costs across every approach.