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

# Localapi Jobadder JobAdder API

Jentic publishes the only available OpenAPI specification for JobAdder API, keeping it validated and agent-ready. JobAdder is a recruitment platform used by agencies and in-house recruiters to manage candidates, jobs, applications, placements, and submissions across the hiring pipeline. The API exposes the full ATS data model including candidates, companies, contacts, jobs, applications, interviews, placements, custom fields, and reference data lists. It supports OAuth 2.0 authorization code flow with read, write, and offline_access scopes.

## For AI agents

Read candidates, jobs, applications, placements, companies, and contacts from JobAdder, and look up reference data like statuses and custom fields, all over OAuth 2.0.

## Scope

Does not handle payroll, background checks, or candidate sourcing from external job boards - use for read access to the JobAdder ATS data model only.

## Capabilities

- Read candidate profiles, applications, placements, submissions, and notes from the recruitment database
- Pull jobs, companies, and contacts with their custom fields and address records
- Look up reference data lists like candidate ratings, sources, statuses, and salutations
- Filter applications by status using the application status reference list
- Authenticate via OAuth 2.0 authorization code flow with read, write, and offline_access scopes
- Refresh long-lived sessions for ongoing recruitment automations using offline_access tokens

## Use cases

### Candidate Pipeline Reporting

Recruitment agencies need daily reporting on the candidate pipeline: how many candidates are at each status, which jobs are stuck, which placements closed. The JobAdder API exposes candidates, applications, placements, and reference status lists, so a reporting job can pull each collection and join them into the agency's BI tool. OAuth 2.0 with offline_access keeps the integration running without re-authentication.

Example prompt: Page through GET /candidates and GET /applications, join against GET /candidates/lists/status, and load into the warehouse for a daily pipeline dashboard.

### Custom Career Site Backend

Recruitment teams that build their own career site can read open jobs and submit candidate enquiries against JobAdder's data model. The API exposes jobs, companies, contacts, candidates, and applications with custom fields, so the site can surface live JobAdder data without copying it into a separate database.

Example prompt: Call GET /candidates/{candidate_id}/applications/active to surface a candidate's live applications back on a self-service portal.

### Recruiter CRM Sync

Agencies often run a separate CRM for client and contact relationships. The companies, contacts, and notes endpoints in JobAdder let an integration push activity from the CRM into the ATS, keeping recruiter activity logs in a single system. Custom fields are exposed so the agency's bespoke data model is preserved.

Example prompt: Call GET /companies/{company_id}/contacts and POST notes against the matching candidate or application from the CRM update.

### AI Agent Recruitment Assistant

An AI agent assisting recruiters can answer questions like 'show me all candidates submitted for this job last week' by calling JobAdder via Jentic. The agent finds the right operation through Jentic's intent search, loads the schema, and executes - without holding the OAuth token or browsing JobAdder's docs.

Example prompt: Use Jentic to call GET /candidates/{candidate_id}/submissions for a named candidate and summarise the submission history for the recruiter.

## Key endpoints

| Method | Path | Description |
| --- | --- | --- |
| GET | /candidates | List candidates |
| GET | /candidates/{candidate_id}/applications | Applications for a candidate |
| GET | /applications | List applications |
| GET | /companies | List companies |
| GET | /candidates/{candidate_id}/placements | Placements for a candidate |
| GET | /candidates/lists/status | Reference list of candidate statuses |

## Key resources

- **Candidates** — Read candidate profiles, applications, placements, submissions, and notes
- **Jobs** — Read open and historical jobs and their custom fields
- **Applications** — Read applications with status, notes, and custom fields
- **Companies** — Read company records, addresses, and contacts
- **Placements** — Read approved and historical placements per candidate
- **Reference Lists** — Look up statuses, ratings, sources, and salutations used across the data model

## Why Jentic

- **Setup:** Wiring the JobAdder API by hand means running its OAuth 2.0 authorization-code flow, refreshing access tokens as they expire, and handling retries yourself against localapi.jobadder.com. Through Jentic you install once, import the JobAdder API from the API Directory, store the credentials once, and your agent calls it.
- **Permission scoping:** JobAdder puts the candidate id in the URL path (/candidates/{candidate_id}/applications), so a rule can pin your agent to reads for one candidate, such as their applications or placements. Every operation here is a GET, so the agent reads the ATS data model and performs no writes.
- **Credential handling:** Your JobAdder access and refresh tokens are stored once, encrypted, by your own Jentic One instance, which refreshes the access token automatically and injects it at execution time. The refresh token and client secret never enter the agent's prompt, logs, or context.
- **Discovery method:** Agents search Jentic by intent such as 'list a candidate's applications', 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 Harvest API** — Alternative ATS API focused on in-house corporate recruiting workflows
- **Lever API** — Alternative recruiting CRM and ATS with strong sourcing and pipeline coverage
- **BambooHR API** — Pair JobAdder's hiring data with BambooHR's employee records once a placement converts to a hire

## FAQ

### Why is there no official OpenAPI spec for JobAdder API?

JobAdder does not publish an OpenAPI specification. Jentic generates and maintains this spec so that AI agents and developers can call JobAdder API via structured tooling. It is validated against the live API and kept up to date. Get started with Jentic One, the self-hosted execution layer.

### What authentication does the JobAdder API use?

JobAdder uses OAuth 2.0 authorization code flow against id.jobadder.com/connect/authorize. Access tokens last 60 minutes; request the offline_access scope to receive a refresh token. Through Jentic, the access and refresh tokens are stored encrypted and rotated automatically, so the agent never holds either.

### Can I list all applications for a specific job?

Yes. JobAdder models applications as a top-level resource. Call GET /applications and filter by job and status reference list values from /applications/lists/status to narrow the results to a particular job and pipeline stage.

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

Rate limits are not stated in the spec. JobAdder applies per-account limits at the contract level; agencies on higher tiers have higher quotas. Implement client-side backoff on 429 responses regardless.

### How do I retrieve a candidate's submission history through Jentic?

Search Jentic for 'list a candidate's submission history'. Jentic returns the GET /candidates/{candidate_id}/submissions operation. Load the schema, supply the candidate ID, and execute. The response is the submission collection ready to render.

### Does the API expose custom fields defined in JobAdder?

Yes. Candidates, applications, companies, and other major resources have dedicated custom fields endpoints (e.g. /candidates/fields/custom) that return both the field definitions and values, so an integration can preserve the agency's bespoke data model.

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

Yes. Because your Jentic One instance is self-hosted, your own rules decide which JobAdder operations and credentials the agent may use. Every JobAdder operation exposed here is a GET, so the agent only reads the ATS data model and can never write to it. Since the candidate id sits in the URL path, such as GET /candidates/{candidate_id}/applications and GET /candidates/{candidate_id}/placements, you can pin the agent to reads for a single candidate rather than the whole account.
