canonical: https://jentic.com/apis/jobadder.com/jobadder

# JobAdder API

The JobAdder API is the integration surface for JobAdder's applicant tracking system (ATS), used by recruitment agencies and in-house talent teams. Its 19 endpoints cover the core recruiting workflow: jobs, candidates, applications, interviews, placements, companies, contacts, and notes. Authentication is OAuth 2.0 against the JobAdder identity service, and resources scope automatically to the authenticated account. The spec mirrors JobAdder's published v2 production API.

## For AI agents

Drive a JobAdder ATS: list and post jobs, search and submit candidates, schedule interviews, log placements, and read company and contact records.

## Scope

Does not run payroll, post to job boards directly, or perform candidate sourcing - use for ATS pipeline operations on JobAdder records only.

## Capabilities

- List and post job openings via /jobs and `/jobs/{jobId}`
- Search candidates and read full candidate profiles through /candidates
- Submit candidates to jobs and progress them through stages with /applications
- Schedule and read interview events via /interviews
- Record placements (hires) for billing and pipeline reporting via /placements
- Manage client companies and contact records through /companies and /contacts
- Attach notes to jobs, candidates, or companies for audit trail via /notes

## Use cases

### Sourcing-Tool to ATS Sync

Recruiters source candidates from LinkedIn, job boards, and outbound campaigns then need them inside JobAdder to track them against jobs. An automation creates the matching JobAdder candidate via POST /candidates and submits them to the right job via /applications, eliminating manual rekeying for agencies that touch hundreds of candidates per week.

Example prompt: POST /candidates with the sourced candidate's name, email, and CV URL, then POST /applications linking the new candidateId to the target jobId at submitted stage.

### Job Distribution to Job Boards

When a recruiter posts a new role in JobAdder, an integration listens for the new /jobs record and pushes it to LinkedIn, Indeed, and Adzuna. The reverse direction - applications received on those boards - flows back into /applications so recruiters work in JobAdder while jobs reach a wider audience.

Example prompt: GET /jobs filtered to status=open and posted within the last 24 hours, then for each job push a normalised payload to the configured downstream job board.

### Placement Reporting and Billing

Recruitment agencies bill clients on placement (start) and need a real-time view of placements per consultant per month. An automation pulls /placements weekly, joins the consultant and company references, and writes a placement-by-consultant report to a finance system without touching the JobAdder UI.

Example prompt: GET /placements with createdFrom={start_of_month} and groupBy=consultant, then write the totals to the finance system for commission calculation.

### AI Agent Integration via Jentic

A recruiting copilot uses Jentic to discover JobAdder operations by intent. The agent searches for 'submit a candidate to a job' and Jentic returns the /applications operation with its required candidateId, jobId, and stage parameters, so the agent makes the right call without scraping vendor docs. The OAuth token stays in your Jentic One instance.

Example prompt: Search Jentic for 'submit a candidate to a job', load the POST /applications schema, and execute it for the chosen candidate and job.

## Key endpoints

| Method | Path | Description |
| --- | --- | --- |
| GET | `/jobs` | List jobs |
| GET | `/jobs/{jobId}` | Read a single job |
| GET | `/candidates` | Search candidates |
| GET | `/candidates/{candidateId}` | Read a single candidate |
| GET | `/placements` | List placements |
| GET | `/companies` | List client companies |

## Key resources

- **Jobs** — List, create, and read open job records.
- **Candidates** — Search and manage candidate profiles.
- **Applications** — Submit candidates to jobs and track their pipeline stage.
- **Interviews** — Schedule and read interview events.
- **Placements** — Record completed hires for billing and reporting.
- **Companies** — Manage client company records.
- **Contacts** — Manage hiring-manager contact records on client companies.
- **Notes** — Attach notes to jobs, candidates, and companies for audit trail.

## Why Jentic

- **Setup:** Wiring the JobAdder API by hand means running its OAuth flow and paging jobs, candidates, and placements across endpoints yourself. Through Jentic you install once, import JobAdder from the API Directory, store the token once, and your agent calls it.
- **Permission scoping:** The JobAdder operations here are read-only pipeline lookups, so scope by operation: allow the agent only the reads it needs, such as listing jobs, candidates, placements, or companies. You pick the allowed set, so it stays within ATS pipeline reads and reaches nothing else.
- **Credential handling:** Your JobAdder OAuth token 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 'find a candidate for a job' or 'list open jobs', and Jentic returns the matching JobAdder operation with its input schema so the agent calls the right endpoint without browsing the reference docs.

## Related APIs

- **Greenhouse API** — Greenhouse is an alternative ATS aimed at in-house talent teams with deeper structured-interview tooling
- **Lever API** — Lever is an in-house ATS with strong CRM-style sourcing pipeline support
- **Adzuna API** — Source job-market data and post jobs to Adzuna alongside running JobAdder as the ATS

## FAQ

### What authentication does the JobAdder API use?

OAuth 2.0 against id.jobadder.com. Apps obtain client credentials in the JobAdder partner portal, complete the authorization-code flow per JobAdder account, and send the access token as Authorization: Bearer <token>. Through Jentic the OAuth flow is brokered and tokens are kept in the vault.

### Can I submit a candidate to a specific job with the JobAdder API?

Yes. POST /applications with candidateId, jobId, and the desired stage. JobAdder creates the application and progresses it as you POST further updates with new stages or PATCH it as the candidate moves through the pipeline.

### What are the rate limits for the JobAdder API?

JobAdder applies per-account rate limits (the spec does not pin a fixed number; the developer portal documents the current values). Treat 429 responses as the trigger to back off; for large candidate or jobs syncs, paginate through resources rather than fetching everything at once.

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

Run pip install jentic, search for 'post a new job to jobadder', then load and execute POST /jobs with the title, company reference, and description. Jentic injects the OAuth token automatically.

### Can I read placements for billing reporting with the JobAdder API?

Yes. GET /placements returns each placement with the candidate, job, company, consultant, and start date references needed to calculate commissions or send invoices. Filter by date range to scope to a billing period.

### Is the JobAdder API free?

API access is included with paid JobAdder accounts. Partner integrations may have additional review or commercial steps documented in the JobAdder partner portal.

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

Yes. Because you run Jentic One yourself, your own rules decide which JobAdder operations and credentials the agent may use. The operations here are read-only pipeline lookups, so you can allow only the reads the agent needs, such as GET /jobs, GET /candidates, GET /placements, or GET /companies, and withhold the rest. You pick the allowed set, so the agent stays within ATS pipeline reads and reaches nothing else.
