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

# Crelate Recruiting CRM API

Jentic publishes the only available OpenAPI specification for Crelate Recruiting CRM API, keeping it validated and agent-ready. Crelate is a recruiting CRM and applicant tracking system used by staffing agencies and corporate recruiters to manage the full hiring lifecycle, from sourcing through placement. The API exposes the core recruiting objects - contacts, companies, jobs, candidates, pipelines, placements, tasks, notes, activities - through a consistent REST surface backed by an X-API-Key header, so an integration can keep an external system synchronised with the Crelate workspace.

## For AI agents

Read and write Crelate's recruiting data - contacts, companies, jobs, pipelines, placements, tasks, notes, and activities - to keep an applicant tracking system in sync with another tool or to drive recruiter workflows from an agent.

## Scope

Does not handle payroll, employee onboarding after hire, or job board posting - use for recruiting CRM and ATS data inside Crelate only.

## Capabilities

- Search and filter the contacts list and create or update individual contact records by ID
- Create company records, fetch them by ID, and update or remove them as account data changes
- Open new jobs, update their state, and pull a job's detail by ID for downstream syncing
- Move candidates through hiring pipelines by reading and writing pipeline records on jobs
- Log placements when a candidate is hired and update or remove placement records as deals settle
- Capture recruiter activity by creating tasks, notes, and activities tied to contacts, companies, or jobs

## Use cases

### Sync a sourcing tool with Crelate

Push candidates surfaced by an external sourcing or LinkedIn-extraction tool into Crelate as contacts, attaching them to the right company and job. POST /contacts creates the record, POST /companies (or a search-then-link flow) keeps the account graph clean, and POST /activities lets the integration record where the candidate came from for later reporting.

Example prompt: For each new sourced profile, call POST /contacts with the candidate fields, then POST /activities tying the activity to the new contactId with type 'Sourced'.

### Pipeline progression from a chat assistant

Let recruiters update Crelate from a chat or voice assistant rather than the desktop UI by mapping commands like 'move Jane to Onsite' to a PUT against the relevant pipeline record. The agent looks up the contact and the job, finds the pipeline entry, and patches its stage in place without leaving the conversation.

Example prompt: Look up the candidate via GET /contacts with a name filter, fetch the matching pipeline via GET `/pipelines/{pipelineId}`, then PUT `/pipelines/{pipelineId}` with the new stage.

### Placement and reporting export

Pull placements, jobs, and contacts into a data warehouse for billing or commission reporting by paging through GET /placements, GET /jobs, and GET /contacts on a schedule. The integration maps Crelate IDs to the warehouse keys and writes back placement events as they close.

Example prompt: Run a daily job that pages GET /placements, GET /jobs, and GET /contacts since the last sync timestamp and writes the records into a Snowflake staging table.

### Agent-driven recruiter copilot via Jentic

A Jentic-orchestrated agent can act as a recruiter copilot: a recruiter says 'log a screening with Sam and book a follow-up task' and the agent calls POST /notes and POST /tasks against the right contactId. Jentic handles the X-API-Key injection, so the recruiter does not paste credentials into the chat tool.

Example prompt: Through Jentic, run search('log a recruiter activity in Crelate'), load POST /notes, then POST /tasks, and execute both against the contactId returned from a prior GET /contacts query.

## Key endpoints

| Method | Path | Description |
| --- | --- | --- |
| GET | `/contacts` | List contacts |
| POST | `/contacts` | Create a contact |
| POST | `/jobs` | Create a job |
| GET | `/pipelines` | List pipelines |
| PUT | `/pipelines/{pipelineId}` | Update a pipeline record |
| POST | `/placements` | Create a placement |
| POST | `/notes` | Create a note |
| POST | `/activities` | Create an activity |

## Key resources

- **Contacts** — Candidates and other people; full list, create, get, update, delete via /contacts and `/contacts/{contactId}.`
- **Companies** — Account records linked to contacts and jobs; CRUD via /companies and `/companies/{companyId}.`
- **Jobs** — Roles being recruited for; CRUD via /jobs and `/jobs/{jobId}.`
- **Pipelines** — Stage progression for candidates against jobs; CRUD via /pipelines and `/pipelines/{pipelineId}.`
- **Placements** — Hire records; CRUD via /placements and `/placements/{placementId}.`
- **Tasks, notes, activities** — Recruiter actions logged against records; CRUD via /tasks, /notes, /activities and their {id} counterparts.

## Why Jentic

- **Setup:** Wiring Crelate by hand means managing its X-API-Key header against app.crelate.com and mapping contact, job, pipeline, and placement calls across a 42-endpoint recruiting surface. Through Jentic you install once, import Crelate from the API Directory, store the key once, and your agent calls it.
- **Permission scoping:** Crelate puts the pipeline id in the URL path (`/pipelines/{pipelineId}`), so a rule can pin the agent to the pipelines you allow. You choose the operations it may call, so creating contacts or placements is not included unless you add those operations.
- **Credential handling:** Your Crelate X-API-Key is stored once, encrypted, by your own Jentic One instance and added to every outbound call 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 Crelate' or 'move a candidate to the next stage', and Jentic returns the matching Crelate operation with its input schema so the agent calls the right endpoint without browsing the reference docs.

## Related APIs

- **Greenhouse Harvest** — Greenhouse's well-documented ATS API targeting in-house corporate recruiting teams.
- **Lever** — Recruiting platform API covering candidates, opportunities, and stages.
- **BambooHR** — Core HRIS API used to push hires from an ATS into employee records.

## FAQ

### Why is there no official OpenAPI spec for Crelate Recruiting CRM API?

Crelate documents its API in its developer guide but does not publish an OpenAPI specification. Jentic generates and maintains this spec so that AI agents and developers can call Crelate Recruiting CRM 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 Crelate Recruiting CRM API use?

The API uses an X-API-Key header on every request. The key is created in the Crelate application settings and is per workspace. Through Jentic the key is stored encrypted in the vault and applied at execution time so it never enters the agent's prompt or logs.

### Can I create candidates in Crelate through the API?

Yes. POST /contacts creates a contact record that represents a candidate. You can then attach them to jobs via the pipeline endpoints and log activity with POST /activities, POST /notes, or POST /tasks.

### How do I move a candidate to the next pipeline stage with the Crelate API?

Pipeline membership is exposed as records under /pipelines. Fetch the relevant pipeline record with GET `/pipelines/{pipelineId}`, change the stage value, and PUT `/pipelines/{pipelineId}` to persist the move.

### What are the rate limits for the Crelate Recruiting CRM API?

The published OpenAPI spec does not declare rate limits. Limits are configured per Crelate tenant, so confirm them with your Crelate admin and build retry-with-backoff around HTTP 429 responses, especially on bulk GET /contacts and GET /placements pulls.

### How do I keep Crelate in sync with my data warehouse via Jentic?

Install Jentic with pip install jentic, then async-search for 'list crelate contacts' or 'list crelate placements'. Load the matching list operations and execute them on a schedule with paging parameters; Jentic injects the X-API-Key automatically and returns paged contacts, jobs, and placements ready for warehouse load.

### Can I limit what my agent is allowed to do with the Crelate Recruiting CRM API?

Yes. Because you run Jentic One yourself, your own rules decide which of Crelate's 42 operations the agent may call, so it can read contacts, jobs, and pipelines without being allowed to create placements or delete records unless you add those operations. Crelate puts the pipeline id in the URL path (`/pipelines/{pipelineId}`), so a rule can pin the agent to only the pipelines you permit. Your X-API-Key is held by your own instance and applied at execution time, so the agent never sees the credential and can only reach the endpoints you have scoped.
