canonical: https://jentic.com/apis/100hires.com/100hires

# 100Hires API

Jentic publishes the only available OpenAPI specification for 100Hires API, keeping it validated and agent-ready. The 100Hires API connects to the 100Hires applicant tracking system, exposing endpoints to create candidate profiles, attach them to job openings or talent pools, and inspect the workflow stages defined in a hiring pipeline. It is a focused integration surface intended for syncing candidate data from external sources such as job boards, sourcing tools, and Zapier-style automations into a 100Hires workspace. Authentication is handled with an API key passed in the Authorization header, and all four endpoints exchange JSON payloads under the /zapier base path.

## For AI agents

Create candidates in 100Hires, assign them to job openings or talent pools, and look up the available jobs and pipeline stages so an agent can route applicants into the right workflow.

## Scope

Does not handle interview scheduling, offer letters, payroll, employee onboarding, or analytics dashboards - use only for creating candidates in 100Hires and assigning them to jobs, talent pools, and pipeline stages.

## Capabilities

- Create candidate records with first name, last name, email, and phone via /candidates/create
- Assign an existing candidate to a specific job opening or talent pool through /candidates/assign-job
- Place a candidate into a chosen pipeline stage by passing stage_id when assigning to a job
- List all open jobs in the workspace via /jobs to resolve job aliases before assignment
- Retrieve the workflow stages configured for the recruiting pipeline via /jobs/stages
- Sync candidates sourced from job boards, LinkedIn outreach, or referral pipelines into 100Hires

## Use cases

### Sourcing-to-ATS sync

Push candidates collected from outreach tools, referral spreadsheets, or LinkedIn sourcing sessions into 100Hires without manual re-entry. The API accepts a candidate's name, email, and phone via /candidates/create and returns an alias that can be reused to attach the candidate to a job. Recruiting operations teams use this to keep 100Hires as the single source of truth while sourcing happens in other tools.

Example prompt: Call POST /candidates/create with first_name 'Ada', last_name 'Lovelace', email 'ada@example.com', phone '+15551234567', then store the returned alias for the next assignment step

### Job board intake automation

When a candidate applies through an external job board or careers form, an automation can create the candidate in 100Hires and immediately attach them to the matching job posting. The flow uses /jobs to resolve the job alias, /jobs/stages to choose the initial pipeline stage such as 'Applied', and /candidates/assign-job to wire the candidate into the pipeline with the correct stage_id.

Example prompt: List jobs via GET /jobs, find the job whose title is 'Senior Backend Engineer', list stages via GET /jobs/stages to find stage_id for 'Applied', then POST /candidates/assign-job with the candidate_alias, job_alias, and stage_id

### Talent pool routing

Not every promising candidate matches an active opening. The 100Hires API lets recruiters route those candidates to a talent pool by calling /candidates/assign-job with a talent pool alias instead of a job alias, keeping the contact warm for future requisitions. This avoids losing relationships built during sourcing campaigns.

Example prompt: Create the candidate via POST /candidates/create, then POST /candidates/assign-job with the returned candidate_alias and the talent pool's job_alias

### AI agent recruiting assistant via Jentic

An AI recruiting assistant uses Jentic to discover the 100Hires operations it needs without browsing docs. The agent searches Jentic for 'create a candidate in 100Hires', loads the input schema, executes /candidates/create, then chains /jobs and /candidates/assign-job to place the candidate into the right pipeline. Jentic isolates the 100Hires API key in its credential vault so the agent never handles the raw secret.

Example prompt: Search Jentic for 'create a candidate in 100Hires', load the schema for createCandidate, execute it with the candidate's contact details, then call assignCandidateToJob with the returned alias and the target job_alias

## Key endpoints

| Method | Path | Description |
| --- | --- | --- |
| POST | /candidates/create | Create a candidate |
| POST | /candidates/assign-job | Assign a candidate to a job opening or talent pool |
| GET | /jobs | List job openings |
| GET | /jobs/stages | List workflow stages |

## Key resources

- **Candidates** — Create candidate records and assign them to job openings, talent pools, and pipeline stages
- **Jobs** — List job openings and the workflow stages configured for the recruiting pipeline

## Why Jentic

- **Setup:** Wiring the 100Hires API by hand means managing its API key, targeting the Zapier base path, and shaping candidate payloads yourself. Through Jentic you install once, import the 100Hires API from the API Directory, store the API key once, and your agent calls it.
- **Permission scoping:** The 100Hires API identifies its targets in the request body rather than the URL path, so limit the agent to the operations it needs, such as listing jobs and reading pipeline stages, and leave out candidate creation or job assignment unless you add them. You choose the allowed set, so only the operations you pick can run.
- **Credential handling:** Your 100Hires 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 'create a candidate in 100Hires' or 'assign a candidate to a job', and Jentic returns the matching 100Hires operation with its input schema so the agent calls the right endpoint without browsing the reference docs.

## Related APIs

- **Greenhouse Harvest API** — Mature ATS with deep candidate, application, and scorecard endpoints used by larger recruiting teams
- **Lever API** — ATS and CRM hybrid covering candidates, opportunities, and nurture campaigns
- **Workable API** — ATS focused on small and midmarket hiring, similar scope to 100Hires
- **Ashby API** — Recruiting platform with analytics, scheduling, and sourcing - pairs well for teams migrating to a more analytics-heavy ATS

## FAQ

### Why is there no official OpenAPI spec for 100Hires API?

100Hires does not publish an OpenAPI specification. Jentic generates and maintains this spec so that AI agents and developers can call 100Hires 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 100Hires API use?

The 100Hires API uses an API key passed in the Authorization header. When you call it through Jentic, the key is stored encrypted in the Jentic credential vault and injected at execution time, so the secret never enters the agent's prompt or logs.

### Can I assign a candidate to a specific pipeline stage with the 100Hires API?

Yes. Call GET /jobs/stages to retrieve the configured workflow stages and their integer stage_id values, then pass the chosen stage_id in the body of POST /candidates/assign-job alongside candidate_alias and job_alias. If stage_id is omitted the candidate lands in the default stage for that job.

### How many endpoints does the 100Hires API expose?

Four: POST /candidates/create, POST /candidates/assign-job, GET /jobs, and GET /jobs/stages. They cover candidate creation, candidate-to-job assignment, listing open jobs, and listing pipeline stages - the minimum surface needed to wire 100Hires into an external sourcing or intake flow.

### How do I create a candidate and place them in a job opening through Jentic?

Run pip install jentic, then search for 'create a candidate in 100Hires' to load createCandidate, execute it with first_name, last_name, email, and phone, capture the returned alias, and then call assignCandidateToJob with that candidate_alias and the target job_alias from GET /jobs.

### Are there rate limits on the 100Hires API?

The OpenAPI specification does not declare explicit rate limits. The endpoints live under the /zapier base path, which is intended for integration traffic, so design your agent to back off on 429 responses and to batch candidate creation rather than firing per-row requests from a sourcing list.

### Can the 100Hires API list candidates that already exist in the workspace?

No. The current spec only exposes candidate creation and job assignment - there is no GET endpoint for candidates. If your agent needs to deduplicate, store the alias returned by POST /candidates/create at write time and key off that, or maintain an external index of candidates the agent has already pushed.

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

Yes. Because you run Jentic One yourself, your own rules decide which 100Hires operations and credentials the agent can use. You can allow read-only calls like GET /jobs and GET /jobs/stages so the agent only lists openings and inspects pipeline stages, while leaving out POST /candidates/create and POST /candidates/assign-job unless you explicitly permit them. Since 100Hires names its targets in the request body rather than the URL path, only the operations you pick are exposed to the agent.
