canonical: https://jentic.com/apis/apideck.com/apideck-ats

# Apideck ATS API

Apideck ATS is a unified API that maps a single schema for jobs, applicants, applications, offers, and activities onto downstream applicant tracking systems such as Greenhouse, Lever, Workable, SmartRecruiters, and BambooHR. The 12 operations cover the recruiting hand-off most apps need: read open roles, read candidate records, post applications, and write offers. Apideck routes each call through Apideck Vault, so per-customer ATS credentials stay in Apideck's vault rather than being passed to the calling app.

## For AI agents

Read jobs, applicants, applications, and offers across Greenhouse, Lever, Workable, and other ATS platforms through one unified schema.

## Scope

Does not handle payroll, performance reviews, or HRIS employee records - use for recruiting hand-off (jobs, applicants, applications, offers) only.

## Capabilities

- List open job requisitions across many ATS platforms with consistent fields for title, department, and status
- Read and write applicant records including name, contact, source, and resume URL
- Post applications linking an applicant to a job with stage and source metadata
- Read offers attached to an application with salary and start date
- Read recruiting activities (notes, interviews, calls) attached to applicants
- Filter and paginate the same way across every connected ATS connector

## Use cases

### Sourcing-Tool to ATS Hand-Off

Push candidates from a sourcing or LinkedIn outreach tool into whichever ATS the customer uses. Apideck's /ats/applicants and /ats/applications endpoints accept the unified candidate payload and create the applicant on the connected ATS - Greenhouse, Lever, Workable, or SmartRecruiters. Sourcing vendors typically replace 4+ direct ATS integrations with a single Apideck contract this way.

Example prompt: POST a new applicant to /ats/applicants with name and email, then POST to /ats/applications linking that applicant to the open job_id

### Job Distribution

Read open requisitions from a customer's ATS and republish them to a careers site, job board, or referral platform. /ats/jobs returns the unified job payload with department, location, and status, so a job-board syndication tool builds one integration that works against every supported ATS.

Example prompt: GET /ats/jobs?status=open and republish each open requisition to a careers microsite via the site's CMS

### Recruiting Analytics

Pull applications, applicants, and offers from many customers' ATS instances into a single recruiting analytics warehouse. Apideck normalises the stage and status fields, so a funnel report (applied, screened, interviewed, offered, hired) works identically whether the underlying ATS is Greenhouse or Lever. Useful for talent-intelligence vendors and HR analytics tools.

Example prompt: GET /ats/applications with cursor pagination and store stage transitions so a downstream funnel report can render time-to-hire by source

### AI Agent Recruiter Assistant

Give an AI agent a tool to find candidates, post applications, and check offer status across whichever ATS a customer uses. Through Jentic, the agent searches for an intent like 'create an applicant in customer ats' and gets the matching Apideck operation with its input schema. The agent does not need a per-ATS adapter.

Example prompt: Search Jentic for 'create ats applicant', load the /ats/applicants schema, and execute with the candidate's name and email captured from the conversation

## Key endpoints

| Method | Path | Description |
| --- | --- | --- |
| GET | /ats/jobs | List open requisitions on the connected ATS |
| GET | /ats/jobs/{id} | Read a single requisition by id |
| GET | /ats/applicants | List applicants on the connected ATS |
| POST | /ats/applicants | Create an applicant record |
| GET | /ats/applications | List applications with stage and source filters |
| POST | /ats/applications | Post a new application linking an applicant to a job |

## Key resources

- **Jobs** — List and read open requisitions on the connected ATS
- **Applicants** — Create, list, update, and delete applicant records
- **Applications** — Link an applicant to a job with stage and source metadata
- **Offers** — Read offer details attached to an application
- **Activities** — Read recruiting activities such as interviews, notes, and calls

## Why Jentic

- **Setup:** Wiring the Apideck ATS API by hand means setting up its API key plus consumer and service headers, learning the unified job and applicant shapes, and normalising across recruiting platforms yourself. Through Jentic you install once, import Apideck ATS from the API Directory, store the key once, and your agent calls it.
- **Permission scoping:** The Apideck ATS API puts the job id in the URL path (/ats/jobs/{id}) while applicants and applications are created via the request body, so scope the agent to the operations it needs, such as listing jobs and reading a job, and leave out creating applicants unless you add it. You choose the allowed operations, so the agent only calls what you list.
- **Credential handling:** Your Apideck API key is stored once, encrypted, by your own Jentic One instance and injected at execution time. It never enters the agent's prompt, logs, or context.
- **Discovery method:** Agents search Jentic by intent such as 'list open jobs' or 'read an applicant's applications', and Jentic returns the matching Apideck ATS operation with its input schema so the agent calls the right endpoint without browsing the reference docs.

## Related APIs

- **Greenhouse Harvest API** — Native Greenhouse Harvest API for customers who only run on Greenhouse
- **Lever API** — Native Lever API for customers who only run on Lever
- **Workable API** — Native Workable API for customers who only run on Workable
- **Apideck CRM API** — Apideck CRM unified API for syncing candidate sources from a CRM

## FAQ

### What authentication does the Apideck ATS API use?

Apideck requires Authorization with a bearer API key, x-apideck-app-id with your Unify application id, and x-apideck-consumer-id with the end-customer reference stored in Apideck Vault. Through Jentic all three values are stored encrypted in the vault and injected at execution time.

### Which ATS platforms does the Apideck ATS API cover?

Apideck Unify routes ATS calls to connectors including Greenhouse, Lever, Workable, SmartRecruiters, BambooHR, and JazzHR. Use the x-apideck-service-id header to pin the call to a specific connector when a consumer has more than one connected.

### Can I create an applicant with the Apideck ATS API?

Yes. POST to /ats/applicants with the unified applicant payload (first_name, last_name, emails, phone_numbers). Apideck translates the call into the native applicant on the connected ATS and returns the created record with the connector's id.

### What are the rate limits for the Apideck ATS API?

Apideck enforces limits at both the Unify layer and the underlying connector. Greenhouse, Lever, and Workable each have their own per-token quotas, so an /ats/applicants call ultimately respects the downstream connector's limits. Expect ConnectorRateLimitError on connector throttling and HTTP 429 on Unify throttling - retry with backoff.

### How do I post a new application through Jentic?

Search Jentic for 'post ats application', load the /ats/applications schema, and execute with applicant_id and job_id. The response returns the created application id from the connected ATS.

### Is the Apideck ATS API free?

Apideck Unify offers a free tier with capped requests; production use is billed per consumer connection. See https://www.apideck.com/pricing for current tiers.

### Can I limit what my agent is allowed to do with the Apideck ATS API?

Yes. Because you run Jentic One yourself, your own rules decide which Apideck ATS operations and credentials the agent may use. You can allow read-only calls such as listing jobs (GET /ats/jobs) and reading a single requisition (GET /ats/jobs/{id}) while leaving out write operations like creating an applicant (POST /ats/applicants) or posting an application (POST /ats/applications) unless you add them. The agent can only call the operations you list, and your Apideck key stays with your instance rather than the agent's context.
