NewSearch millions of jobs from your AI agent with MCP
All posts
GuideATS
Guide·Feb 15, 2026·6 min read

ATS API: one integration for 30+ applicant tracking systems

Workday, Greenhouse, Lever, Ashby, BambooHR, SmartRecruiters, iCIMS, Workable - each has a different API shape. Here's how a unified ATS API replaces 30 integrations with one.

Dvir Atias

Dvir Atias

Founder, JobsPipe

ATS API” is one of the highest-intent developer search terms in HR tech ($29 CPC), and it’s asked by two completely different audiences: builders who want to read jobs out of every ATS (job boards, sourcing tools, AI recruiters) and builders who want to write applications into every ATS (apply-on-behalf-of-candidate workflows).

This post is about the first kind. If you want to read jobs from Workday, Greenhouse, Lever, Ashby, BambooHR, SmartRecruiters, iCIMS, and 20+ more without writing 27 separate integrations, here’s how it works in 2026.

The 30-ATS integration problem

Each ATS has its own auth model, its own JSON shape, its own field naming, and its own freshness guarantees. Pulling jobs from all of them is genuinely 30 separate integrations:

  • Workday - JSON feed per tenant, Akamai bot management, 10k result cap per query.
  • Greenhouse - free public REST API per board, but you need the board_token.
  • Lever - public postings endpoint at api.lever.co/v0/postings/{company}; no auth, simple JSON.
  • Ashby - public jobs JSON at jobs.ashbyhq.com/{company}.
  • BambooHR, SmartRecruiters, iCIMS, Workable - each has its own endpoint shape, its own auth requirements (some require partner keys), and its own field IDs.

JobsPipe’s unified shape

Every job from every source returns the same fields:

{
  "id": "jp_8KQv2nT0pX",
  "title": "Senior Backend Engineer",
  "company": "Northwind Labs",
  "source": "greenhouse",
  "source_refs": [
    { "source": "greenhouse", "id": "gh_8KQv2nT0pX" },
    { "source": "indeed", "id": "in_3741290021" }
  ],
  "location": {
    "city": "Berlin", "country": "DE",
    "lat": 52.52, "lng": 13.40, "remote": true
  },
  "compensation": {
    "min": 95000, "max": 135000, "currency": "EUR"
  },
  "posted_at": "2026-05-16T08:14:00Z",
  "apply_url": "https://boards.greenhouse.io/...",
  "description_md": "..."
}

What you save

A team building this from scratch typically commits 2 engineers for ~6 months, then ongoing maintenance forever as ATSs change. Most JobsPipe customers replace 3-8 in-house scrapers with one integration in an afternoon.

Try the unified ATS API - free tier, self-serve signup.

Get a free API key
FAQs

Frequently Asked Questions

What is an ATS API?

An ATS API lets you read data out of, or write data into, applicant tracking systems programmatically. The term covers two different audiences: builders who want to read jobs out of every ATS for job boards, sourcing tools, and AI recruiters, and builders who want to write applications into every ATS for apply-on-behalf-of-candidate workflows. Those are separate problems and generally need separate integrations.

How many integrations does it take to pull jobs from every ATS?

Pulling jobs from all the major systems is genuinely 30 separate integrations, because each ATS has its own auth model, JSON shape, field naming, and freshness guarantees. Workday uses a JSON feed per tenant with Akamai bot management and a 10k result cap. Greenhouse has a free public REST API per board but needs the board_token. Lever and Ashby are open, while BambooHR, SmartRecruiters, iCIMS, and Workable differ again.

Is it cheaper to build ATS integrations in-house or use a unified API?

Building from scratch typically commits 2 engineers for around 6 months, plus ongoing maintenance forever as ATSs change. A unified ATS API replaces that with one integration where every job returns the same fields: id, title, company, source, source_refs, normalized location with coordinates and a remote flag, compensation, posted_at, apply_url, and description_md. Most JobsPipe customers replace 3 to 8 in-house scrapers with one integration in an afternoon.