Official 100Hires MCP: AI ATS & Recruitment Software for candidates, jobs, applications, interviews.
Maintain this server? Claim it
Call this server's tools from your browser. Nothing to install.
Requests go through mcptry because browsers can't call most MCP servers directly. Header values are sent to the server for that request only and are never stored or logged.
Tool list from our last check. Connect live to refresh it.
Add tags to a candidate.
Candidate id or alias
This tool isn't marked read-only, so it may change something on the server or in an account you connected.
Add tags to a candidate.
| Argument | Type | Description |
|---|---|---|
| id* | string | number | Candidate id or alias |
| tags* | array |
{
"type": "object",
"required": [
"id",
"tags"
],
"properties": {
"id": {
"type": [
"string",
"number"
],
"description": "Candidate id or alias"
},
"tags": {
"type": "array",
"items": {
"type": "string"
}
}
}
}Add a company user to the job's hiring team.
| Argument | Type | Description |
|---|---|---|
| id* | string | number | Job id or alias |
| user_id* | number |
{
"type": "object",
"required": [
"id",
"user_id"
],
"properties": {
"id": {
"type": [
"string",
"number"
],
"description": "Job id or alias"
},
"user_id": {
"type": "number"
}
}
}Advance an application to the next stage in workflow order; no stage_id needed.
| Argument | Type | Description |
|---|---|---|
| id* | number | |
| include | string | Embed: candidate, cv.text, job. Pass candidate,job so the widget can link to the candidate and job pages |
{
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "number"
},
"include": {
"type": "string",
"description": "Embed: candidate, cv.text, job. Pass candidate,job so the widget can link to the candidate and job pages"
}
}
}Add tags to up to 100 candidates; returns per-item results.
| Argument | Type | Description |
|---|---|---|
| ids* | array | Candidate ids |
| tags* | array |
{
"type": "object",
"required": [
"ids",
"tags"
],
"properties": {
"ids": {
"type": "array",
"items": {
"type": "number"
},
"description": "Candidate ids"
},
"tags": {
"type": "array",
"items": {
"type": "string"
}
}
}
}Create up to 100 scheduled messages in one request; items are processed independently, one failure does not stop the others.
| Argument | Type | Description |
|---|---|---|
| messages* | array |
{
"type": "object",
"required": [
"messages"
],
"properties": {
"messages": {
"type": "array",
"items": {
"type": "object",
"required": [
"candidate_id",
"to",
"subject",
"body"
],
"properties": {
"cc": {
"type": "array",
"items": {
"type": "string"
}
},
"to": {
"type": "array",
"items": {
"type": "string"
},
"description": "Recipient emails"
},
"bcc": {
"type": "array",
"items": {
"type": "string"
}
},
"body": {
"type": "string",
"description": "HTML"
},
"subject": {
"type": "string"
},
"candidate_id": {
"type": "integer"
},
"scheduled_at": {
"anyOf": [
{
"type": "integer"
},
{
"type": "null"
}
],
"description": "Unix seconds; default now + 900"
},
"application_id": {
"anyOf": [
{
"type": "integer"
},
{
"type": "null"
}
]
},
"from_account_id": {
"anyOf": [
{
"type": "integer"
},
{
"type": "null"
}
],
"description": "Default: API key owner's default mail account"
},
"reply_to_email_id": {
"anyOf": [
{
"type": "integer"
},
{
"type": "null"
}
],
"description": "Mailbox message id to reply to"
},
"send_in_new_thread": {
"type": "boolean",
"description": "Start a new thread instead of replying"
}
}
},
"maxItems": 100
}
}
}Get board publication states for several jobs at once.
| Argument | Type | Description |
|---|---|---|
| jobs* | array | Job ids |
{
"type": "object",
"required": [
"jobs"
],
"properties": {
"jobs": {
"type": "array",
"items": {
"type": "number"
},
"description": "Job ids"
}
}
}Move up to 100 applications to a stage in one request; per-item results, partial success allowed.
| Argument | Type | Description |
|---|---|---|
| ids* | array | Max 100 |
| stage_id* | number |
{
"type": "object",
"required": [
"ids",
"stage_id"
],
"properties": {
"ids": {
"type": "array",
"items": {
"type": "number"
},
"description": "Max 100"
},
"stage_id": {
"type": "number"
}
}
}Queue several jobs for publication on the given boards.
| Argument | Type | Description |
|---|---|---|
| jobs* | array | Job ids |
| boards | array | e.g. indeed, linkedin |
{
"type": "object",
"required": [
"jobs"
],
"properties": {
"jobs": {
"type": "array",
"items": {
"type": "number"
},
"description": "Job ids"
},
"boards": {
"type": "array",
"items": {
"type": "string"
},
"description": "e.g. indeed, linkedin"
}
}
}Reject up to 100 applications in one request, optionally with a reason; per-item results, partial success allowed.
| Argument | Type | Description |
|---|---|---|
| ids* | array | Max 100 |
| rejection_reason_id | number | From hires_list_rejection_reasons |
{
"type": "object",
"required": [
"ids"
],
"properties": {
"ids": {
"type": "array",
"items": {
"type": "number"
},
"description": "Max 100"
},
"rejection_reason_id": {
"type": "number",
"description": "From hires_list_rejection_reasons"
}
}
}Deactivate publication of several jobs on the given boards.
| Argument | Type | Description |
|---|---|---|
| jobs* | array | Job ids |
| boards | array | e.g. indeed, linkedin |
{
"type": "object",
"required": [
"jobs"
],
"properties": {
"jobs": {
"type": "array",
"items": {
"type": "number"
},
"description": "Job ids"
},
"boards": {
"type": "array",
"items": {
"type": "string"
},
"description": "e.g. indeed, linkedin"
}
}
}Remove tags from up to 100 candidates; returns per-item results.
| Argument | Type | Description |
|---|---|---|
| ids* | array | Candidate ids |
| tags* | array |
{
"type": "object",
"required": [
"ids",
"tags"
],
"properties": {
"ids": {
"type": "array",
"items": {
"type": "number"
},
"description": "Candidate ids"
},
"tags": {
"type": "array",
"items": {
"type": "string"
}
}
}
}Cancel all scheduled notification emails of a candidate; sent ones are unaffected.
| Argument | Type | Description |
|---|---|---|
| candidate_id* | any | Candidate id or alias |
{
"type": "object",
"required": [
"candidate_id"
],
"properties": {
"candidate_id": {
"anyOf": [
{
"type": "integer"
},
{
"type": "string"
}
],
"description": "Candidate id or alias"
}
}
}Link an existing candidate to a job, creating an application.
| Argument | Type | Description |
|---|---|---|
| cv | object | |
| job_id* | number | |
| include | string | Embed: candidate, cv.text, job |
| stage_id | number | Defaults to the first stage |
| candidate_id* | string | number | Candidate id or alias |
{
"type": "object",
"required": [
"candidate_id",
"job_id"
],
"properties": {
"cv": {
"type": "object",
"required": [
"data",
"file_name",
"mime_type"
],
"properties": {
"data": {
"type": "string",
"description": "Base64 file content"
},
"size": {
"type": "number",
"description": "Bytes"
},
"file_name": {
"type": "string"
},
"mime_type": {
"type": "string",
"description": "e.g. application/pdf"
}
}
},
"job_id": {
"type": "number"
},
"include": {
"type": "string",
"description": "Embed: candidate, cv.text, job"
},
"stage_id": {
"type": "number",
"description": "Defaults to the first stage"
},
"candidate_id": {
"type": [
"string",
"number"
],
"description": "Candidate id or alias"
}
}
}Create a candidate, optionally with an application (job_id, stage_id) and resume text. Parse an attached resume yourself and pass the text via resume_text; never inline binary data.
| Argument | Type | Description |
|---|---|---|
| city | string | Also used to resolve timezone |
| string | Used for deduplication | |
| phone | string | |
| state | string | |
| job_id | number | Creates an application for this job |
| country | string | Name or ISO code |
| profile | object | Profile answers keyed by question text or question_id |
| stage_id | number | Initial stage; requires job_id |
| timezone | string | IANA, e.g. America/Los_Angeles; resolved from city and country if omitted |
| last_name | string | |
| company_id |
Create a client company; provisions its public career site (slug) and public branding (name, logo).
| Argument | Type | Description |
|---|---|---|
| url | string | Company profile URL |
| logo | object | |
| name* | string | |
| website | string | |
| company_owner_name* | string | |
| is_staffing_agency | boolean | |
| company_owner_email* | string | |
| company_owner_phone | string |
{
"type": "object",
"required": [
"name",
"company_owner_email",
"company_owner_name"
],
"properties": {
"url": {
"type": "string",
"description": "Company profile URL"
},
"logo": {
"type": "object",
"required": [
"data",
"file_name",
"mime_type"
],
"properties": {
"data": {
"type": "string",
"description": "Base64 file content"
},
"size": {
"type": "number",
"description": "Bytes"
},
"file_name": {
"type": "string"
},
"mime_type": {
"type": "string",
"description": "e.g. image/png"
}
}
},
"name": {
"type": "string"
},
"website": {
"type": "string"
},
"company_owner_name": {
"type": "string"
},
"is_staffing_agency": {
"type": "boolean"
},
"company_owner_email": {
"type": "string"
},
"company_owner_phone": {
"type": "string"
}
}
}Create an email template. Subject and body accept placeholders such as {{first_name}}; get the exact tags from hires_list_template_placeholders and hires_prepare_template_placeholders.
| Argument | Type | Description |
|---|---|---|
| body* | string | HTML; placeholders allowed |
| name* | string | |
| subject* | string | Placeholders allowed |
| company_id | number |
{
"type": "object",
"required": [
"name",
"subject",
"body"
],
"properties": {
"body": {
"type": "string",
"description": "HTML; placeholders allowed"
},
"name": {
"type": "string"
},
"subject": {
"type": "string",
"description": "Placeholders allowed"
},
"company_id": {
"type": "number"
}
}
}Create an application form, optionally attaching existing questions.
| Argument | Type | Description |
|---|---|---|
| name* | string | |
| questions | array | Question ids to attach |
| company_id | number |
{
"type": "object",
"required": [
"name"
],
"properties": {
"name": {
"type": "string"
},
"questions": {
"type": "array",
"items": {
"type": "number"
},
"description": "Question ids to attach"
},
"company_id": {
"type": "number"
}
}
}Schedule an interview for an application. The location is matched to an existing record or created.
| Argument | Type | Description |
|---|---|---|
| id* | number | |
| include | string | Embed: candidate, application, job |
| end_time* | number | Unix seconds, after start_time |
| location | string | Free text |
| start_time* | number | Unix seconds |
| interviewer_ids* | array | Interviewer user ids |
{
"type": "object",
"required": [
"id",
"start_time",
"end_time",
"interviewer_ids"
],
"properties": {
"id": {
"type": "number"
},
"include": {
"type": "string",
"description": "Embed: candidate, application, job"
},
"end_time": {
"type": "number",
"description": "Unix seconds, after start_time"
},
"location": {
"type": "string",
"description": "Free text"
},
"start_time": {
"type": "number",
"description": "Unix seconds"
},
"interviewer_ids": {
"type": "array",
"items": {
"type": "number"
},
"description": "Interviewer user ids"
}
}
}Create a job. Required: status, title, description, location_country; location_city unless is_remote is true.
| Argument | Type | Description |
|---|---|---|
| title* | string | |
| status* | string | From hires_list_statuses, e.g. Draft, Public |
| form_id | number | Omitted = new form named after the job |
| include | string | Embed: workflow, hiring_team, pipeline_stages |
| language | any | Job page locale, e.g. de-DE; null = follow the career site language. Values: hires_list_languages |
| is_remote | boolean | Remote job; with empty city, state and postal code Indeed posts it nationwide |
| company_id | number | |
| salary_max | number | |
| salary_min | number | |
| category_id | number | From hires_list_categories |
Register an HTTPS webhook for this job's events. Returns signing_secret once; use it to verify the x-hires-signature-v2 header.
| Argument | Type | Description |
|---|---|---|
| id* | string | number | Job id or alias |
| url* | string | HTTPS URL on a public host (no localhost, private or link-local IPs) |
{
"type": "object",
"required": [
"id",
"url"
],
"properties": {
"id": {
"type": [
"string",
"number"
],
"description": "Job id or alias"
},
"url": {
"type": "string",
"description": "HTTPS URL on a public host (no localhost, private or link-local IPs)"
}
}
}Create a discussion note for a candidate, with optional visibility (all or private) and @mentions that email the mentioned users.
| Argument | Type | Description |
|---|---|---|
| body* | string | HTML allowed |
| include | string | Embed: user (author), candidate. Pass candidate so the widget can link to the candidate profile |
| user_id | number | Author; defaults to the authenticated user |
| visibility | string | all (default) or private |
| candidate_id* | string | number | Candidate id or alias |
| mention_user_ids | array | Mentioned users get an email |
{
"type": "object",
"required": [
"candidate_id",
"body"
],
"properties": {
"body": {
"type": "string",
"description": "HTML allowed"
},
"include": {
"type": "string",
"description": "Embed: user (author), candidate. Pass candidate so the widget can link to the candidate profile"
},
"user_id": {
"type": "number",
"description": "Author; defaults to the authenticated user"
},
"visibility": {
"type": "string",
"description": "all (default) or private"
},
"candidate_id": {
"type": [
"string",
"number"
],
"description": "Candidate id or alias"
},
"mention_user_ids": {
"type": "array",
"items": {
"type": "number"
},
"description": "Mentioned users get an email"
}
}
}Create a nurture campaign with ordered steps (email, sms, voicemail, move_to_next_stage, assign_tag, assign_task), optionally triggered by a workflow stage.
| Argument | Type | Description |
|---|---|---|
| steps* | array | Executed in order. Each field names the step types that use it and whether it is required there. |
| title* | string | |
| stage_id | number | Stage that triggers the campaign |
| timezone | string | IANA timezone, e.g. America/New_York |
| company_id | number | |
| delay_time | number | Delay before the first step, seconds (max 86400); wins over relative_days + relative_time if both are sent |
| send_to_all | boolean | Send to all candidates in the stage, not only new ones (default false) |
| workflow_id | number | Workflow the campaign is bound to |
| relative_days | number | Days after the trigger for the first step; use with relative_time |
Create a reusable question; options apply to select/multiselect types.
| Argument | Type | Description |
|---|---|---|
| text* | string | |
| type* | string | From hires_list_question_types |
| options | array | Answer options for select/multiselect types |
| company_id | number |
{
"type": "object",
"required": [
"text",
"type"
],
"properties": {
"text": {
"type": "string"
},
"type": {
"type": "string",
"description": "From hires_list_question_types"
},
"options": {
"type": "array",
"items": {
"type": "string"
},
"description": "Answer options for select/multiselect types"
},
"company_id": {
"type": "number"
}
}
}Create a company-scoped webhook. signing_secret is returned once; use it to verify the x-hires-signature-v2 header on deliveries.
| Argument | Type | Description |
|---|---|---|
| id* | number | Company id |
| url* | string | HTTPS URL on a public host (no localhost, private or link-local IPs) |
{
"type": "object",
"required": [
"id",
"url"
],
"properties": {
"id": {
"type": "number",
"description": "Company id"
},
"url": {
"type": "string",
"description": "HTTPS URL on a public host (no localhost, private or link-local IPs)"
}
}
}Permanently delete an application.
| Argument | Type | Description |
|---|---|---|
| id* | number |
{
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "number"
}
}
}Permanently delete a candidate.
| Argument | Type | Description |
|---|---|---|
| id* | string | number | Candidate id or alias |
{
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": [
"string",
"number"
],
"description": "Candidate id or alias"
}
}
}Soft-delete a company; its public career site goes offline.
| Argument | Type | Description |
|---|---|---|
| id* | number |
{
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "number"
}
}
}Soft-delete an email template; automations that used it cannot pick it for new actions.
| Argument | Type | Description |
|---|---|---|
| id* | number |
{
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "number"
}
}
}Delete an application form.
| Argument | Type | Description |
|---|---|---|
| id* | number |
{
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "number"
}
}
}Delete a job.
| Argument | Type | Description |
|---|---|---|
| id* | string | number | Job id or alias |
{
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": [
"string",
"number"
],
"description": "Job id or alias"
}
}
}Delete a job webhook.
| Argument | Type | Description |
|---|---|---|
| id* | string | number | Job id or alias |
| webhook_id* | number |
{
"type": "object",
"required": [
"id",
"webhook_id"
],
"properties": {
"id": {
"type": [
"string",
"number"
],
"description": "Job id or alias"
},
"webhook_id": {
"type": "number"
}
}
}Cancel a scheduled message before it is sent.
| Argument | Type | Description |
|---|---|---|
| id* | integer |
{
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "integer"
}
}
}Delete a note.
| Argument | Type | Description |
|---|---|---|
| id* | number |
{
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "number"
}
}
}Cancel a scheduled notification email; sent messages cannot be canceled.
| Argument | Type | Description |
|---|---|---|
| id* | integer |
{
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "integer"
}
}
}Soft-delete a nurture campaign; running executions stop.
| Argument | Type | Description |
|---|---|---|
| id* | number |
{
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "number"
}
}
}Delete a reusable question from the catalog.
| Argument | Type | Description |
|---|---|---|
| id* | number |
{
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "number"
}
}
}Delete a company-scoped webhook.
| Argument | Type | Description |
|---|---|---|
| id* | number | Company id |
| webhook_id* | number |
{
"type": "object",
"required": [
"id",
"webhook_id"
],
"properties": {
"id": {
"type": "number",
"description": "Company id"
},
"webhook_id": {
"type": "number"
}
}
}Reject all active applications of a candidate; returns the affected application ids.
| Argument | Type | Description |
|---|---|---|
| id* | string | number | Candidate id or alias |
| reasons | array | Rejection reason ids from hires_list_rejection_reasons |
{
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": [
"string",
"number"
],
"description": "Candidate id or alias"
},
"reasons": {
"type": "array",
"items": {
"type": [
"number",
"string"
]
},
"description": "Rejection reason ids from hires_list_rejection_reasons"
}
}
}Download an attachment (resume, candidate or application file, mail attachment, call recording) by the url another tool returned. Returns file_name, mime_type, size and base64 data; files over 25 MB are rejected.
| Argument | Type | Description |
|---|---|---|
| url* | string | Absolute url from another tool's response; must be on the 100Hires API host |
{
"type": "object",
"required": [
"url"
],
"properties": {
"url": {
"type": "string",
"format": "uri",
"description": "Absolute url from another tool's response; must be on the 100Hires API host"
}
}
}Get the AI score of an application with per-criterion scores, justifications and follow-up questions; null score until scored.
| Argument | Type | Description |
|---|---|---|
| id* | number |
{
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "number"
}
}
}Get an application with its stage, status and rejection context.
| Argument | Type | Description |
|---|---|---|
| id* | number | |
| include | string | Embed: candidate, cv.text, job |
{
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "number"
},
"include": {
"type": "string",
"description": "Embed: candidate, cv.text, job"
}
}
}Get billing and feature flags of the current company.
No arguments.
{
"type": "object",
"properties": {}
}Get a candidate with application summaries.
| Argument | Type | Description |
|---|---|---|
| id* | string | number | Candidate id or alias |
{
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": [
"string",
"number"
],
"description": "Candidate id or alias"
}
}
}Get a candidate's primary resume: uuid, download url, file metadata, type. include=text_content adds the parsed plain text.
| Argument | Type | Description |
|---|---|---|
| id* | string | number | Candidate id or alias |
| include | string | text_content: add the parsed plain text |
{
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": [
"string",
"number"
],
"description": "Candidate id or alias"
},
"include": {
"type": "string",
"description": "text_content: add the parsed plain text"
}
}
}Get a public job with salary, education and experience levels; 404 for draft, archived or internal jobs.
| Argument | Type | Description |
|---|---|---|
| id* | number | |
| company_slug* | string |
{
"type": "object",
"required": [
"company_slug",
"id"
],
"properties": {
"id": {
"type": "number"
},
"company_slug": {
"type": "string"
}
}
}Get career site settings: language is the locale the public site renders in (null = en-US); a job may override it with its own language field.
| Argument | Type | Description |
|---|---|---|
| company_id | number | Omit for the API key's own company |
{
"type": "object",
"properties": {
"company_id": {
"type": "number",
"description": "Omit for the API key's own company"
}
}
}Get a company profile with owner details.
| Argument | Type | Description |
|---|---|---|
| id* | number |
{
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "number"
}
}
}Get an email template with its subject and body.
| Argument | Type | Description |
|---|---|---|
| id* | number |
{
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "number"
}
}
}Get a filled evaluation form: evaluator, summary score and text, answers.
| Argument | Type | Description |
|---|---|---|
| id* | number |
{
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "number"
}
}
}Get a form with its questions and their statuses.
| Argument | Type | Description |
|---|---|---|
| id* | number |
{
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "number"
}
}
}Get an interview by id.
| Argument | Type | Description |
|---|---|---|
| id* | number | |
| include | string | Embed: candidate, application, job |
{
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "number"
},
"include": {
"type": "string",
"description": "Embed: candidate, application, job"
}
}
}Get a job by id or alias.
| Argument | Type | Description |
|---|---|---|
| id* | string | number | Job id or alias |
| include | string | Embed: workflow, hiring_team, pipeline_stages |
{
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": [
"string",
"number"
],
"description": "Job id or alias"
},
"include": {
"type": "string",
"description": "Embed: workflow, hiring_team, pipeline_stages"
}
}
}Get a scheduled message with sender account, schedule timestamps and cancelability.
| Argument | Type | Description |
|---|---|---|
| id* | integer |
{
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "integer"
}
}
}Get a note with its author and visibility.
| Argument | Type | Description |
|---|---|---|
| id* | number | |
| include | string | Embed: user (author), candidate |
{
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "number"
},
"include": {
"type": "string",
"description": "Embed: user (author), candidate"
}
}
}Get a notification email (e.g. a rejection email): subject, body, sender, recipient, schedule. Ids come from hires_list_candidate_messages.
| Argument | Type | Description |
|---|---|---|
| id* | integer |
{
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "integer"
}
}
}Get a nurture campaign with all steps and schedule settings.
| Argument | Type | Description |
|---|---|---|
| id* | number |
{
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "number"
}
}
}Get a question with its type and options.
| Argument | Type | Description |
|---|---|---|
| id* | number |
{
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "number"
}
}
}Get a user by id. Its default_mail_account_id can serve as from_account_id when sending emails.
| Argument | Type | Description |
|---|---|---|
| id* | number |
{
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "number"
}
}
}Get the stages of one workflow.
| Argument | Type | Description |
|---|---|---|
| id* | number | Workflow id |
| company_id | number |
{
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "number",
"description": "Workflow id"
},
"company_id": {
"type": "number"
}
}
}Mark an application as hired: status becomes hired and hired_at is set.
| Argument | Type | Description |
|---|---|---|
| id* | number | |
| include | string | Embed: candidate, cv.text, job |
{
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "number"
},
"include": {
"type": "string",
"description": "Embed: candidate, cv.text, job"
}
}
}List an application's attachments with file metadata and download URLs.
| Argument | Type | Description |
|---|---|---|
| id* | number |
{
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "number"
}
}
}List filled evaluation forms of an application with evaluator, summary score (strong-yes to strong-no) and summary text.
| Argument | Type | Description |
|---|---|---|
| id* | number | |
| view | string | summary replaces summary_text with a 200-char summary_text_preview |
{
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "number"
},
"view": {
"enum": [
"summary",
"full"
],
"type": "string",
"default": "summary",
"description": "summary replaces summary_text with a 200-char summary_text_preview"
}
}
}Chronological stage transitions of an application, including the initial assignment: from/to stage, moved_at, moved_by_type (system, user, automation), moved_by_user_id and source. Prefer it over candidate activities for stage reports.
| Argument | Type | Description |
|---|---|---|
| id* | number |
{
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "number"
}
}
}List applications across accessible jobs with filters by candidate, job, stage, status, AI score and dates. Each item embeds its current stage, so a pipeline view needs no extra job call.
| Argument | Type | Description |
|---|---|---|
| page | number | |
| size | number | |
| sort | string | Default -created_at |
| job_id | number | |
| status | string | |
| include | string | Embed: candidate, cv.text. Pass candidate for pipeline rendering (names instead of ids) |
| stage_id | number | Best combined with job_id |
| company_id | number | |
| ai_score_max | number | |
| ai_score_min | number | |
List job boards available for publishing.
No arguments.
{
"type": "object",
"properties": {}
}List a candidate's timeline events. Prefer size <= 10. event_type values: comment, copilot_response, stage_moved, automation_action_triggered, assign_job, enrichment, call, validate_emails, profile_mutation, qualification, assign_tags, assign_sources, candidate_rate.
| Argument | Type | Description |
|---|---|---|
| id* | string | number | Candidate id or alias |
| page | number | |
| size | number | Default 20, max 100 |
| view | string | summary replaces copilot text, call transcription and comment body with 200-char *_preview fields |
| since | number | string | Inclusive; Unix seconds or ISO-8601 |
| until | number | string | Inclusive; Unix seconds or ISO-8601 |
| event_type | string | Comma-separated; values listed in the tool description |
{
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": [
"string",
"number"
],
"description": "Candidate id or alias"
},
"page": {
"type": "number"
},
"size": {
"type": "number",
"description": "Default 20, max 100"
},
"view": {
"enum": [
"summary",
"full"
],
"type": "string",
"default": "summary",
"description": "summary replaces copilot text, call transcription and comment body with 200-char *_preview fields"
},
"since": {
"type": [
"number",
"string"
],
"description": "Inclusive; Unix seconds or ISO-8601"
},
"until": {
"type": [
"number",
"string"
],
"description": "Inclusive; Unix seconds or ISO-8601"
},
"event_type": {
"type": "string",
"description": "Comma-separated; values listed in the tool description"
}
}
}List a candidate's files (resume and other documents): uuid, download url, file metadata, type.
| Argument | Type | Description |
|---|---|---|
| id* | string | number | Candidate id or alias |
{
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": [
"string",
"number"
],
"description": "Candidate id or alias"
}
}
}List a candidate's interviews across all applications.
| Argument | Type | Description |
|---|---|---|
| id* | string | number | Candidate id or alias |
| page | number | |
| size | number |
{
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": [
"string",
"number"
],
"description": "Candidate id or alias"
},
"page": {
"type": "number"
},
"size": {
"type": "number"
}
}
}List a candidate's email history; is_scheduled=1 returns only pending scheduled messages. Prefer size <= 10.
| Argument | Type | Description |
|---|---|---|
| id* | string | number | Candidate id or alias |
| page | number | |
| size | number | |
| view | string | summary omits the HTML body and attachment metadata |
| is_scheduled | number |
{
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": [
"string",
"number"
],
"description": "Candidate id or alias"
},
"page": {
"type": "number"
},
"size": {
"type": "number"
},
"view": {
"enum": [
"summary",
"full"
],
"type": "string",
"default": "summary",
"description": "summary omits the HTML body and attachment metadata"
},
"is_scheduled": {
"type": "number",
"const": 1
}
}
}List a candidate's tags.
| Argument | Type | Description |
|---|---|---|
| id* | string | number | Candidate id or alias |
{
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": [
"string",
"number"
],
"description": "Candidate id or alias"
}
}
}List candidates filtered by job, stage, email, name, LinkedIn or dates. Prefer size <= 10.
| Argument | Type | Description |
|---|---|---|
| q | string | Partial match on name or email |
| page | number | |
| size | number | |
| view | string | summary omits the profile answers array |
| string | Exact match | |
| job_id | number | |
| include | string | Embed: applications (job titles and stages) |
| string | LinkedIn profile URL or alias | |
| stage_id | number | Pipeline stage id; combine with job_id |
| full_name | string | |
| company_id |
List public jobs of a company career site, filterable by department, employment type, city and country.
| Argument | Type | Description |
|---|---|---|
| city | string | Exact match |
| page | number | |
| size | number | |
| country | string | Exact match |
| company_slug* | string | |
| department_id | number | |
| employment_type_id | number |
{
"type": "object",
"required": [
"company_slug"
],
"properties": {
"city": {
"type": "string",
"description": "Exact match"
},
"page": {
"type": "number"
},
"size": {
"type": "number"
},
"country": {
"type": "string",
"description": "Exact match"
},
"company_slug": {
"type": "string"
},
"department_id": {
"type": "number"
},
"employment_type_id": {
"type": "number"
}
}
}List global job categories.
No arguments.
{
"type": "object",
"properties": {}
}List companies accessible to the partner API key.
| Argument | Type | Description |
|---|---|---|
| page | number | |
| size | number |
{
"type": "object",
"properties": {
"page": {
"type": "number"
},
"size": {
"type": "number"
}
}
}List mail accounts of all users in a given company (own or client).
| Argument | Type | Description |
|---|---|---|
| id* | number | |
| page | number | |
| size | number |
{
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "number"
},
"page": {
"type": "number"
},
"size": {
"type": "number"
}
}
}List mail accounts of all users in the current company; use to resolve from_account_id for messages.
| Argument | Type | Description |
|---|---|---|
| page | number | |
| size | number |
{
"type": "object",
"properties": {
"page": {
"type": "number"
},
"size": {
"type": "number"
}
}
}List departments of the company.
| Argument | Type | Description |
|---|---|---|
| company_id | number |
{
"type": "object",
"properties": {
"company_id": {
"type": "number"
}
}
}List education level values.
No arguments.
{
"type": "object",
"properties": {}
}List email templates of a company.
| Argument | Type | Description |
|---|---|---|
| page | number | |
| size | number | |
| view | string | summary omits the HTML body |
| company_id | number |
{
"type": "object",
"properties": {
"page": {
"type": "number"
},
"size": {
"type": "number"
},
"view": {
"enum": [
"summary",
"full"
],
"type": "string",
"default": "summary",
"description": "summary omits the HTML body"
},
"company_id": {
"type": "number"
}
}
}List employment types (full-time, part-time, contract, etc.).
No arguments.
{
"type": "object",
"properties": {}
}List experience level values.
No arguments.
{
"type": "object",
"properties": {}
}List application forms of a company.
| Argument | Type | Description |
|---|---|---|
| page | number | |
| size | number | |
| view | string | summary omits the questions array |
| company_id | number |
{
"type": "object",
"properties": {
"page": {
"type": "number"
},
"size": {
"type": "number"
},
"view": {
"enum": [
"summary",
"full"
],
"type": "string",
"default": "summary",
"description": "summary omits the questions array"
},
"company_id": {
"type": "number"
}
}
}List users on the job's hiring team.
| Argument | Type | Description |
|---|---|---|
| id* | string | number | Job id or alias |
{
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": [
"string",
"number"
],
"description": "Job id or alias"
}
}
}List interviews filtered by job, application, candidate, interviewer, date or timestamps. Pass include=candidate so the agenda widget can link cards to candidate profiles.
| Argument | Type | Description |
|---|---|---|
| date | string | YYYY-MM-DD, UTC |
| page | number | |
| size | number | |
| job_id | number | |
| include | string | Embed: candidate, application, job |
| company_id | number | |
| candidate_id | number | |
| created_after | number | string | Unix seconds or ISO-8601 |
| updated_after | number | string | Unix seconds or ISO-8601; for incremental sync |
| application_id | number | |
List job boards the job is published to, with their state.
| Argument | Type | Description |
|---|---|---|
| id* | string | number | Job id or alias |
{
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": [
"string",
"number"
],
"description": "Job id or alias"
}
}
}List webhooks subscribed to this job's events.
| Argument | Type | Description |
|---|---|---|
| id* | string | number | Job id or alias |
{
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": [
"string",
"number"
],
"description": "Job id or alias"
}
}
}List jobs filtered by status, creation/update time, department or search query.
| Argument | Type | Description |
|---|---|---|
| q | string | Search title or internal title |
| page | number | |
| size | number | |
| view | string | |
| status | string | From hires_list_statuses, e.g. Public, Draft, Archived |
| include | string | Embed: workflow, hiring_team, pipeline_stages |
| company_id | number | |
| department_id | number | From hires_list_departments |
| updated_after | number | string | Unix seconds or ISO-8601; for incremental sync |
| created_at_end | number | string | Unix seconds or ISO-8601 |
List career site locales (e.g. de-DE) accepted by language parameters; is_default marks the one used when none is picked.
No arguments.
{
"type": "object",
"properties": {}
}List outbound messages (sent and scheduled) of one mail account; received mail is not included.
| Argument | Type | Description |
|---|---|---|
| page | integer | |
| size | integer | Default 20 |
| view | string | |
| status | string | Default: all |
| date_to | integer | Unix seconds |
| date_from | integer | Unix seconds; filters on scheduled/sent time |
| from_account_id* | integer | Mail account id from hires_list_company_mail_accounts or hires_list_user_mail_accounts |
{
"type": "object",
"required": [
"from_account_id"
],
"properties": {
"page": {
"type": "integer",
"minimum": 1
},
"size": {
"type": "integer",
"maximum": 100,
"minimum": 1,
"description": "Default 20"
},
"view": {
"enum": [
"summary",
"full"
],
"type": "string",
"default": "summary"
},
"status": {
"enum": [
"scheduled",
"sent",
"all"
],
"type": "string",
"description": "Default: all"
},
"date_to": {
"type": "integer",
"description": "Unix seconds"
},
"date_from": {
"type": "integer",
"description": "Unix seconds; filters on scheduled/sent time"
},
"from_account_id": {
"type": "integer",
"description": "Mail account id from hires_list_company_mail_accounts or hires_list_user_mail_accounts"
}
}
}List discussion notes of a candidate.
| Argument | Type | Description |
|---|---|---|
| page | number | |
| size | number | |
| view | string | summary replaces the body with a 200-char body_preview |
| include | string | Embed: user (author), candidate |
| candidate_id* | string | number | Candidate id or alias |
{
"type": "object",
"required": [
"candidate_id"
],
"properties": {
"page": {
"type": "number"
},
"size": {
"type": "number"
},
"view": {
"enum": [
"summary",
"full"
],
"type": "string",
"default": "summary",
"description": "summary replaces the body with a 200-char body_preview"
},
"include": {
"type": "string",
"description": "Embed: user (author), candidate"
},
"candidate_id": {
"type": [
"string",
"number"
],
"description": "Candidate id or alias"
}
}
}List nurture campaigns with their steps.
| Argument | Type | Description |
|---|---|---|
| page | number | |
| size | number | |
| company_id | number |
{
"type": "object",
"properties": {
"page": {
"type": "number"
},
"size": {
"type": "number"
},
"company_id": {
"type": "number"
}
}
}List candidate origin values.
No arguments.
{
"type": "object",
"properties": {}
}List supported question types.
No arguments.
{
"type": "object",
"properties": {}
}List the reusable question catalog of the company.
| Argument | Type | Description |
|---|---|---|
| page | number | |
| size | number | |
| company_id | number |
{
"type": "object",
"properties": {
"page": {
"type": "number"
},
"size": {
"type": "number"
},
"company_id": {
"type": "number"
}
}
}List rejection reasons configured for the company.
| Argument | Type | Description |
|---|---|---|
| company_id | number |
{
"type": "object",
"properties": {
"company_id": {
"type": "number"
}
}
}List candidate sources of the company.
| Argument | Type | Description |
|---|---|---|
| company_id | number |
{
"type": "object",
"properties": {
"company_id": {
"type": "number"
}
}
}List job status labels (draft, published, on_hold, closed, archived).
No arguments.
{
"type": "object",
"properties": {}
}List all tags of the company.
| Argument | Type | Description |
|---|---|---|
| company_id | number |
{
"type": "object",
"properties": {
"company_id": {
"type": "number"
}
}
}List email template placeholders; pass the chosen one to hires_prepare_template_placeholders to get its HTML tag.
| Argument | Type | Description |
|---|---|---|
| q | string | Label substring, case-insensitive |
| page | number | |
| size | number | |
| type | string | |
| company_id | number | |
| is_notification | number | 1 includes notification-only system placeholders (default 0) |
{
"type": "object",
"properties": {
"q": {
"type": "string",
"description": "Label substring, case-insensitive"
},
"page": {
"type": "number"
},
"size": {
"type": "number"
},
"type": {
"enum": [
"profile_field",
"job_variable",
"questionnaire_link",
"self_scheduling_link"
],
"type": "string"
},
"company_id": {
"type": "number"
},
"is_notification": {
"type": "number",
"description": "1 includes notification-only system placeholders (default 0)"
}
}
}List a user's connected mail accounts; use one as from_account_id when sending messages.
| Argument | Type | Description |
|---|---|---|
| id* | number | User id |
| page | number | |
| size | number |
{
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "number",
"description": "User id"
},
"page": {
"type": "number"
},
"size": {
"type": "number"
}
}
}List company users with their roles.
| Argument | Type | Description |
|---|---|---|
| page | number | |
| size | number | |
| company_id | number |
{
"type": "object",
"properties": {
"page": {
"type": "number"
},
"size": {
"type": "number"
},
"company_id": {
"type": "number"
}
}
}List company-scoped webhook subscriptions.
| Argument | Type | Description |
|---|---|---|
| id* | number | Company id |
{
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "number",
"description": "Company id"
}
}
}List pipeline stages, filtered by workflow or job.
| Argument | Type | Description |
|---|---|---|
| job_id | number | Stages of the job's assigned workflow |
| company_id | number | |
| workflow_id | number | Workflow id from hires_list_workflows |
{
"type": "object",
"properties": {
"job_id": {
"type": "number",
"description": "Stages of the job's assigned workflow"
},
"company_id": {
"type": "number"
},
"workflow_id": {
"type": "number",
"description": "Workflow id from hires_list_workflows"
}
}
}List workflows of the company with their stages.
| Argument | Type | Description |
|---|---|---|
| company_id | number |
{
"type": "object",
"properties": {
"company_id": {
"type": "number"
}
}
}Move an application to a specific pipeline stage; stage ids come from the job's pipeline_stages.
| Argument | Type | Description |
|---|---|---|
| id* | number | |
| include | string | Embed: candidate, cv.text, job |
| stage_id* | number |
{
"type": "object",
"required": [
"id",
"stage_id"
],
"properties": {
"id": {
"type": "number"
},
"include": {
"type": "string",
"description": "Embed: candidate, cv.text, job"
},
"stage_id": {
"type": "number"
}
}
}Partially update a scheduled message before it is sent.
| Argument | Type | Description |
|---|---|---|
| cc | array | |
| id* | integer | |
| to | array | Recipient emails |
| bcc | array | |
| body | string | HTML |
| subject | string | |
| scheduled_at | any | Unix seconds |
| from_account_id | any | Default: API key owner's default mail account |
| reply_to_email_id | any | Mailbox message id to reply to |
| send_in_new_thread | boolean | Send as a new thread |
Convert a placeholder reference into the HTML tag to insert into an email template body.
| Argument | Type | Description |
|---|---|---|
| type* | string | system, candidate_column, job_variable, questionnaire_link or scheduling_link |
| identifier | string | |
| job_variable_id | number | |
| form_question_id | number | |
| system_column_title | string | |
| qas_profile_question_id | number | Profile question id |
{
"type": "object",
"required": [
"type"
],
"properties": {
"type": {
"type": "string",
"description": "system, candidate_column, job_variable, questionnaire_link or scheduling_link"
},
"identifier": {
"type": "string"
},
"job_variable_id": {
"type": "number"
},
"form_question_id": {
"type": "number"
},
"system_column_title": {
"type": "string"
},
"qas_profile_question_id": {
"type": "number",
"description": "Profile question id"
}
}
}Queue the job for publication on the given boards.
| Argument | Type | Description |
|---|---|---|
| id* | string | number | Job id or alias |
| boards | array | e.g. indeed, linkedin |
{
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": [
"string",
"number"
],
"description": "Job id or alias"
},
"boards": {
"type": "array",
"items": {
"type": "string"
},
"description": "e.g. indeed, linkedin"
}
}
}Reject an application, optionally with a reason and without the rejection email.
| Argument | Type | Description |
|---|---|---|
| id* | number | |
| include | string | Embed: candidate, cv.text, job |
| rejection_reason_id | number | From hires_list_rejection_reasons |
| suppress_notification | boolean | Skip the rejection email to the candidate |
{
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "number"
},
"include": {
"type": "string",
"description": "Embed: candidate, cv.text, job"
},
"rejection_reason_id": {
"type": "number",
"description": "From hires_list_rejection_reasons"
},
"suppress_notification": {
"type": "boolean",
"description": "Skip the rejection email to the candidate"
}
}
}Remove one tag from a candidate.
| Argument | Type | Description |
|---|---|---|
| id* | string | number | Candidate id or alias |
| tag* | string |
{
"type": "object",
"required": [
"id",
"tag"
],
"properties": {
"id": {
"type": [
"string",
"number"
],
"description": "Candidate id or alias"
},
"tag": {
"type": "string"
}
}
}Deactivate the job's publication on the given boards.
| Argument | Type | Description |
|---|---|---|
| id* | string | number | Job id or alias |
| boards | array | e.g. indeed, linkedin |
{
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": [
"string",
"number"
],
"description": "Job id or alias"
},
"boards": {
"type": "array",
"items": {
"type": "string"
},
"description": "e.g. indeed, linkedin"
}
}
}Restore a soft-deleted company; its public career site comes back online.
| Argument | Type | Description |
|---|---|---|
| id* | number |
{
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "number"
}
}
}Rotate the signing secret; the new one is returned once, the old stays valid for a grace window.
| Argument | Type | Description |
|---|---|---|
| id* | string | number | Job id or alias |
| webhook_id* | number |
{
"type": "object",
"required": [
"id",
"webhook_id"
],
"properties": {
"id": {
"type": [
"string",
"number"
],
"description": "Job id or alias"
},
"webhook_id": {
"type": "number"
}
}
}Rotate a company webhook signing secret with zero downtime: the new signing_secret is returned once and the old one stays valid for a grace window.
| Argument | Type | Description |
|---|---|---|
| id* | number | Company id |
| webhook_id* | number |
{
"type": "object",
"required": [
"id",
"webhook_id"
],
"properties": {
"id": {
"type": "number",
"description": "Company id"
},
"webhook_id": {
"type": "number"
}
}
}Schedule an email to a candidate; without scheduled_at it is sent 15 minutes after creation.
| Argument | Type | Description |
|---|---|---|
| cc | array | |
| id* | string | number | Candidate id or alias |
| to* | array | Recipient emails |
| bcc | array | |
| body* | string | HTML |
| subject* | string | |
| scheduled_at | number | null | Unix seconds; default: now + 15 min |
| application_id | number | null | |
| from_account_id | number | null | Mail account id; default: the API key owner's default account |
| reply_to_email_id | number | null | Mailbox message id to reply to |
Change job status (publish, unpublish, archive).
| Argument | Type | Description |
|---|---|---|
| id* | string | number | Job id or alias |
| status* | string | From hires_list_statuses, e.g. Draft, Public, Archived |
| include | string | Embed: workflow, hiring_team, pipeline_stages |
{
"type": "object",
"required": [
"id",
"status"
],
"properties": {
"id": {
"type": [
"string",
"number"
],
"description": "Job id or alias"
},
"status": {
"type": "string",
"description": "From hires_list_statuses, e.g. Draft, Public, Archived"
},
"include": {
"type": "string",
"description": "Embed: workflow, hiring_team, pipeline_stages"
}
}
}Submit a career site application: creates the candidate and runs the pipeline automation.
| Argument | Type | Description |
|---|---|---|
| email* | string | |
| phone | string | null | |
| job_id* | number | |
| resume | any | |
| source | string | null | Source identifier |
| answers | any | Form answer objects |
| last_name* | string | |
| first_name* | string | |
| company_slug* | string | |
| linkedin_url | string | null |
{
"type": "object",
"required": [
"company_slug",
"job_id",
"first_name",
"last_name",
"email"
],
"properties": {
"email": {
"type": "string"
},
"phone": {
"type": [
"string",
"null"
]
},
"job_id": {
"type": "number"
},
"resume": {
"anyOf": [
{
"type": "object",
"required": [
"data",
"file_name",
"mime_type"
],
"properties": {
"data": {
"type": "string",
"description": "Base64 file content"
},
"file_name": {
"type": "string"
},
"mime_type": {
"type": "string",
"description": "e.g. application/pdf"
}
}
},
{
"type": "null"
}
]
},
"source": {
"type": [
"string",
"null"
],
"description": "Source identifier"
},
"answers": {
"anyOf": [
{
"type": "array",
"items": {
"type": "object"
}
},
{
"type": "null"
}
],
"description": "Form answer objects"
},
"last_name": {
"type": "string"
},
"first_name": {
"type": "string"
},
"company_slug": {
"type": "string"
},
"linkedin_url": {
"type": [
"string",
"null"
]
}
}
}Submit feedback about the API: missing features, issues, improvements. Rate limit: 5 per hour.
| Argument | Type | Description |
|---|---|---|
| context | object | Any JSON, max 4 KB |
| endpoint | string | e.g. /v2/candidates |
| issue_type | string | |
| description* | string | Max 2000 chars |
| suggested_improvement | string | Max 2000 chars |
{
"type": "object",
"required": [
"description"
],
"properties": {
"context": {
"type": "object",
"description": "Any JSON, max 4 KB"
},
"endpoint": {
"type": "string",
"description": "e.g. /v2/candidates"
},
"issue_type": {
"enum": [
"missing_filter",
"pagination",
"performance",
"missing_field",
"bulk_operation",
"other"
],
"type": "string"
},
"description": {
"type": "string",
"description": "Max 2000 chars"
},
"suggested_improvement": {
"type": "string",
"description": "Max 2000 chars"
}
}
}Transfer an application to another job by creating a new application there, optionally at a given stage.
| Argument | Type | Description |
|---|---|---|
| id* | number | |
| job_id* | number | Target job |
| include | string | Embed: candidate, cv.text, job |
| stage_id | number | Stage on the target job; defaults to its first stage |
{
"type": "object",
"required": [
"id",
"job_id"
],
"properties": {
"id": {
"type": "number"
},
"job_id": {
"type": "number",
"description": "Target job"
},
"include": {
"type": "string",
"description": "Embed: candidate, cv.text, job"
},
"stage_id": {
"type": "number",
"description": "Stage on the target job; defaults to its first stage"
}
}
}Reopen a rejected application: status returns to active and rejected_at is cleared.
| Argument | Type | Description |
|---|---|---|
| id* | number | |
| include | string | Embed: candidate, cv.text, job |
{
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "number"
},
"include": {
"type": "string",
"description": "Embed: candidate, cv.text, job"
}
}
}Update application fields. stage_id performs a full stage transition with the target stage's automation, like hires_move_application.
| Argument | Type | Description |
|---|---|---|
| cv | object | Replace or attach a CV |
| id* | number | |
| include | string | Embed: candidate, cv.text, job |
| stage_id | number | Target stage; runs its workflow automation |
| is_disqualified | boolean |
{
"type": "object",
"required": [
"id"
],
"properties": {
"cv": {
"type": "object",
"required": [
"data",
"file_name",
"mime_type"
],
"properties": {
"data": {
"type": "string",
"description": "Base64 file content"
},
"size": {
"type": "number",
"description": "Bytes"
},
"file_name": {
"type": "string"
},
"mime_type": {
"type": "string",
"description": "e.g. application/pdf"
}
},
"description": "Replace or attach a CV"
},
"id": {
"type": "number"
},
"include": {
"type": "string",
"description": "Embed: candidate, cv.text, job"
},
"stage_id": {
"type": "number",
"description": "Target stage; runs its workflow automation"
},
"is_disqualified": {
"type": "boolean"
}
}
}Update candidate fields, profile answers or resume text. For an attached resume pass the parsed text via resume_text; never inline binary data.
| Argument | Type | Description |
|---|---|---|
| id* | string | number | Candidate id or alias |
| city | string | Also used to resolve timezone |
| string | ||
| phone | string | |
| state | string | |
| job_id | number | Creates a new application for this job |
| country | string | Name or ISO code |
| profile | object | Profile answers keyed by question text or question_id |
| stage_id | number | Stage for that application; requires job_id |
| timezone | string | IANA, e.g. America/Los_Angeles; resolved from city and country if omitted |
Set the public career site language; job and company pages follow it unless a job overrides it.
| Argument | Type | Description |
|---|---|---|
| language | any | Locale, e.g. de-DE; values from hires_list_languages. Omit to keep, null to reset to en-US |
| company_id | number | Omit for the API key's own company |
{
"type": "object",
"properties": {
"language": {
"anyOf": [
{
"type": "string",
"maxLength": 35,
"minLength": 1
},
{
"type": "null"
}
],
"description": "Locale, e.g. de-DE; values from hires_list_languages. Omit to keep, null to reset to en-US"
},
"company_id": {
"type": "number",
"description": "Omit for the API key's own company"
}
}
}Update a company profile, owner contacts or logo; name, slug and logo changes alter the public career site.
| Argument | Type | Description |
|---|---|---|
| id* | number | |
| url | string | Company profile URL |
| logo | object | |
| name | string | |
| website | string | |
| company_owner_name | string | |
| is_staffing_agency | boolean | |
| company_owner_email | string | |
| company_owner_phone | string |
{
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "number"
},
"url": {
"type": "string",
"description": "Company profile URL"
},
"logo": {
"type": "object",
"required": [
"data",
"file_name",
"mime_type"
],
"properties": {
"data": {
"type": "string",
"description": "Base64 file content"
},
"size": {
"type": "number",
"description": "Bytes"
},
"file_name": {
"type": "string"
},
"mime_type": {
"type": "string",
"description": "e.g. image/png"
}
}
},
"name": {
"type": "string"
},
"website": {
"type": "string"
},
"company_owner_name": {
"type": "string"
},
"is_staffing_agency": {
"type": "boolean"
},
"company_owner_email": {
"type": "string"
},
"company_owner_phone": {
"type": "string"
}
}
}Update an email template; omitted fields keep their values.
| Argument | Type | Description |
|---|---|---|
| id* | number | |
| body | string | HTML; placeholders allowed |
| name | string | |
| subject | string | Placeholders allowed |
{
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "number"
},
"body": {
"type": "string",
"description": "HTML; placeholders allowed"
},
"name": {
"type": "string"
},
"subject": {
"type": "string",
"description": "Placeholders allowed"
}
}
}Update a form's name and question composition.
| Argument | Type | Description |
|---|---|---|
| id* | number | |
| name* | string | |
| questions | array | Question ids to attach |
{
"type": "object",
"required": [
"id",
"name"
],
"properties": {
"id": {
"type": "number"
},
"name": {
"type": "string"
},
"questions": {
"type": "array",
"items": {
"type": "number"
},
"description": "Question ids to attach"
}
}
}Set a question's status (required, optional, hidden) on a form.
| Argument | Type | Description |
|---|---|---|
| status* | string | |
| form_id* | number | |
| question_id* | number |
{
"type": "object",
"required": [
"form_id",
"question_id",
"status"
],
"properties": {
"status": {
"enum": [
"required",
"optional",
"hidden"
],
"type": "string"
},
"form_id": {
"type": "number"
},
"question_id": {
"type": "number"
}
}
}Update a job. Send only the fields to change.
| Argument | Type | Description |
|---|---|---|
| id* | string | number | Job id or alias |
| title | string | |
| status | string | From hires_list_statuses, e.g. Draft, Public |
| form_id | number | Application form to assign |
| include | string | Embed: workflow, hiring_team, pipeline_stages |
| language | any | Job page locale, e.g. de-DE; null = follow the career site language, omit = keep current. Values: hires_list_languages |
| is_remote | boolean | Remote job; with empty city, state and postal code Indeed posts it nationwide |
| salary_max | number | |
| salary_min | number | |
| category_id | number |
Replace a scheduled message before it is sent; all required fields must be provided.
| Argument | Type | Description |
|---|---|---|
| cc | array | |
| id* | integer | |
| to* | array | Recipient emails |
| bcc | array | |
| body* | string | HTML |
| subject* | string | |
| scheduled_at | any | Unix seconds |
| from_account_id | any | Default: API key owner's default mail account |
| reply_to_email_id | any | Mailbox message id to reply to |
| send_in_new_thread | boolean | Send as a new thread |
Update a note's body or visibility in place, without a new timeline item.
| Argument | Type | Description |
|---|---|---|
| id* | number | |
| body | string | HTML allowed |
| include | string | Embed: user (author), candidate |
| visibility | string | all (default) or private |
{
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "number"
},
"body": {
"type": "string",
"description": "HTML allowed"
},
"include": {
"type": "string",
"description": "Embed: user (author), candidate"
},
"visibility": {
"type": "string",
"description": "all (default) or private"
}
}
}Update the subject, body or send time of a scheduled notification email; sent messages cannot be changed.
| Argument | Type | Description |
|---|---|---|
| id* | integer | |
| body* | string | HTML |
| subject* | string | |
| scheduled_at | any | Unix seconds; omit to keep the current schedule |
{
"type": "object",
"required": [
"id",
"subject",
"body"
],
"properties": {
"id": {
"type": "integer"
},
"body": {
"type": "string",
"description": "HTML"
},
"subject": {
"type": "string"
},
"scheduled_at": {
"anyOf": [
{
"type": "integer"
},
{
"type": "null"
}
],
"description": "Unix seconds; omit to keep the current schedule"
}
}
}Update a nurture campaign. Send the full steps list: existing steps with their id, removed steps with is_deleted=true.
| Argument | Type | Description |
|---|---|---|
| id* | number | |
| steps* | array | Executed in order. Each field names the step types that use it and whether it is required there. |
| title* | string | |
| stage_id | number | Stage that triggers the campaign |
| timezone | string | IANA timezone, e.g. America/New_York |
| delay_time | number | Delay before the first step, seconds (max 86400); wins over relative_days + relative_time if both are sent |
| send_to_all | boolean | Send to all candidates in the stage, not only new ones (default false) |
| workflow_id | number | Workflow the campaign is bound to |
| relative_days |
Update the text, type or options of a question.
| Argument | Type | Description |
|---|---|---|
| id* | number | |
| text* | string | |
| type* | string | From hires_list_question_types |
| options | array | Answer options for select/multiselect types |
{
"type": "object",
"required": [
"id",
"text",
"type"
],
"properties": {
"id": {
"type": "number"
},
"text": {
"type": "string"
},
"type": {
"type": "string",
"description": "From hires_list_question_types"
},
"options": {
"type": "array",
"items": {
"type": "string"
},
"description": "Answer options for select/multiselect types"
}
}
}Upload a base64-encoded file as an application attachment.
| Argument | Type | Description |
|---|---|---|
| id* | number | |
| file* | object |
{
"type": "object",
"required": [
"id",
"file"
],
"properties": {
"id": {
"type": "number"
},
"file": {
"type": "object",
"required": [
"data",
"file_name",
"mime_type"
],
"properties": {
"data": {
"type": "string",
"description": "Base64 file content"
},
"size": {
"type": "number",
"description": "Bytes"
},
"file_name": {
"type": "string"
},
"mime_type": {
"type": "string",
"description": "e.g. application/pdf"
}
}
}
}
}Upload a base64 file as an attachment. voicemail: wav/mp3, max 20 MB, no object_id, the returned uuid serves as attachment_uuid in nurture voicemail steps. Returns uuid, url, file, relative_time.
| Argument | Type | Description |
|---|---|---|
| file* | object | |
| category* | string | Determines allowed extensions and the object_id owner type |
| object_id | number | null | Owner id per category: candidate, application, comment, job note or company; omit for voicemail |
| company_id | number | null | Company that owns object_id; default: the authenticated company |
{
"type": "object",
"required": [
"category",
"file"
],
"properties": {
"file": {
"type": "object",
"required": [
"data",
"file_name",
"mime_type"
],
"properties": {
"data": {
"type": "string",
"description": "Base64 content"
},
"size": {
"type": "number",
"description": "Bytes"
},
"file_name": {
"type": "string",
"description": "With extension, e.g. greeting.mp3"
},
"mime_type": {
"type": "string",
"description": "e.g. audio/mpeg, application/pdf"
}
}
},
"category": {
"enum": [
"voicemail",
"candidate",
"application",
"candidate_comment",
"job_note",
"company_favicon",
"company_header",
"company_link_preview"
],
"type": "string",
"description": "Determines allowed extensions and the object_id owner type"
},
"object_id": {
"type": [
"number",
"null"
],
"description": "Owner id per category: candidate, application, comment, job note or company; omit for voicemail"
},
"company_id": {
"type": [
"number",
"null"
],
"description": "Company that owns object_id; default: the authenticated company"
}
}
}Upload a base64 file to a candidate. Hosts truncate tool arguments above ~20 KB, so for resumes prefer resume_text in hires_create_candidate or hires_update_candidate.
| Argument | Type | Description |
|---|---|---|
| id* | string | number | Candidate id or alias |
| file* | object |
{
"type": "object",
"required": [
"id",
"file"
],
"properties": {
"id": {
"type": [
"string",
"number"
],
"description": "Candidate id or alias"
},
"file": {
"type": "object",
"required": [
"data",
"file_name",
"mime_type"
],
"properties": {
"data": {
"type": "string",
"description": "Base64 content"
},
"size": {
"type": "number",
"description": "Bytes"
},
"file_name": {
"type": "string"
},
"mime_type": {
"type": "string",
"description": "e.g. application/pdf"
}
}
}
}
}| number |
| first_name | string |
| resume_text | string | Plain text extracted from the resume; stored as a text/plain attachment. No binary or base64. |
{
"type": "object",
"properties": {
"city": {
"type": "string",
"description": "Also used to resolve timezone"
},
"email": {
"type": "string",
"description": "Used for deduplication"
},
"phone": {
"type": "string"
},
"state": {
"type": "string"
},
"job_id": {
"type": "number",
"description": "Creates an application for this job"
},
"country": {
"type": "string",
"description": "Name or ISO code"
},
"profile": {
"type": "object",
"description": "Profile answers keyed by question text or question_id"
},
"stage_id": {
"type": "number",
"description": "Initial stage; requires job_id"
},
"timezone": {
"type": "string",
"description": "IANA, e.g. America/Los_Angeles; resolved from city and country if omitted"
},
"last_name": {
"type": "string"
},
"company_id": {
"type": "number"
},
"first_name": {
"type": "string"
},
"resume_text": {
"type": "string",
"description": "Plain text extracted from the resume; stored as a text/plain attachment. No binary or base64."
}
}
}| description* | string | HTML allowed |
| workflow_id | number | Omitted = new workflow named after the job |
| department_id | number | From hires_list_departments |
| location_city | string | Required unless is_remote; empty = nationwide remote posting on Indeed |
| parent_job_id | number | Parent job; makes this a satellite job |
| salary_period | string |
| internal_title | string | Hiring team only |
| location_state | string |
| internal_job_id | string | External reference id |
| salary_currency | string | ISO code, e.g. USD |
| location_country* | string |
| education_level_id | number | From hires_list_education_levels |
| employment_type_id | number | From hires_list_employment_types |
| knockout_questions | array | Yes/No screening questions added to the application form |
| ai_scoring_criteria | array | AI scoring criteria for ranking applicants |
| experience_level_id | number | From hires_list_experience_levels |
| resume_field_status | string |
| location_postal_code | string |
| location_full_address | string |
| location_street_address | string |
{
"type": "object",
"required": [
"status",
"title",
"description",
"location_country"
],
"properties": {
"title": {
"type": "string"
},
"status": {
"type": "string",
"description": "From hires_list_statuses, e.g. Draft, Public"
},
"form_id": {
"type": "number",
"description": "Omitted = new form named after the job"
},
"include": {
"type": "string",
"description": "Embed: workflow, hiring_team, pipeline_stages"
},
"language": {
"anyOf": [
{
"type": "string",
"maxLength": 35,
"minLength": 1
},
{
"type": "null"
}
],
"description": "Job page locale, e.g. de-DE; null = follow the career site language. Values: hires_list_languages"
},
"is_remote": {
"type": "boolean",
"description": "Remote job; with empty city, state and postal code Indeed posts it nationwide"
},
"company_id": {
"type": "number"
},
"salary_max": {
"type": "number"
},
"salary_min": {
"type": "number"
},
"category_id": {
"type": "number",
"description": "From hires_list_categories"
},
"description": {
"type": "string",
"description": "HTML allowed"
},
"workflow_id": {
"type": "number",
"description": "Omitted = new workflow named after the job"
},
"department_id": {
"type": "number",
"description": "From hires_list_departments"
},
"location_city": {
"type": "string",
"description": "Required unless is_remote; empty = nationwide remote posting on Indeed"
},
"parent_job_id": {
"type": "number",
"description": "Parent job; makes this a satellite job"
},
"salary_period": {
"enum": [
"annually",
"monthly",
"daily",
"hourly"
],
"type": "string"
},
"internal_title": {
"type": "string",
"description": "Hiring team only"
},
"location_state": {
"type": "string"
},
"internal_job_id": {
"type": "string",
"description": "External reference id"
},
"salary_currency": {
"type": "string",
"description": "ISO code, e.g. USD"
},
"location_country": {
"type": "string"
},
"education_level_id": {
"type": "number",
"description": "From hires_list_education_levels"
},
"employment_type_id": {
"type": "number",
"description": "From hires_list_employment_types"
},
"knockout_questions": {
"type": "array",
"items": {
"type": "object",
"required": [
"text",
"expected_answer",
"disqualify_on_wrong_answer"
],
"properties": {
"text": {
"type": "string",
"description": "Shown to the applicant"
},
"expected_answer": {
"enum": [
"Yes",
"No"
],
"type": "string"
},
"disqualify_on_wrong_answer": {
"type": "boolean",
"description": "Disqualify on wrong answer"
}
}
},
"description": "Yes/No screening questions added to the application form"
},
"ai_scoring_criteria": {
"type": "array",
"items": {
"type": "object",
"required": [
"text",
"weight"
],
"properties": {
"id": {
"type": "integer",
"description": "Existing criterion id; omit to create",
"exclusiveMinimum": 0
},
"text": {
"type": "string",
"description": "What to evaluate"
},
"title": {
"type": "string"
},
"weight": {
"type": "integer",
"maximum": 10,
"minimum": 1,
"description": "Relative importance"
}
}
},
"description": "AI scoring criteria for ranking applicants"
},
"experience_level_id": {
"type": "number",
"description": "From hires_list_experience_levels"
},
"resume_field_status": {
"enum": [
"required",
"optional",
"hidden"
],
"type": "string"
},
"location_postal_code": {
"type": "string"
},
"location_full_address": {
"type": "string"
},
"location_street_address": {
"type": "string"
}
}
}| relative_time | number | Time of day for the first step, seconds from midnight |
| response_move_to_stage_id | number | Stage to move a candidate to when they reply |
{
"type": "object",
"required": [
"title",
"steps"
],
"properties": {
"steps": {
"type": "array",
"items": {
"type": "object",
"required": [
"type",
"delay_days",
"send_condition"
],
"properties": {
"id": {
"type": "number",
"description": "Existing step id (update only)"
},
"type": {
"enum": [
"email",
"sms",
"voicemail",
"move_to_next_stage",
"assign_tag",
"assign_task"
],
"type": "string"
},
"sender": {
"type": "object",
"required": [
"type",
"id"
],
"properties": {
"id": {
"type": "number"
},
"type": {
"type": "string",
"description": "account or user"
}
},
"description": "email (required)"
},
"tag_id": {
"type": "number",
"description": "assign_tag (required)"
},
"priority": {
"type": "number",
"description": "assign_task"
},
"stage_id": {
"type": "number",
"description": "move_to_next_stage (required)"
},
"assignees": {
"type": "array",
"items": {
"type": "number"
},
"description": "assign_task (required): user ids"
},
"delay_days": {
"type": "number",
"minimum": 0,
"description": "Days to wait before this step"
},
"is_deleted": {
"type": "boolean",
"description": "Update only: true removes the step"
},
"schedule_id": {
"type": "number",
"description": "email, sms, voicemail: sending schedule id"
},
"template_id": {
"type": "number",
"description": "email, sms (required)"
},
"is_new_thread": {
"type": "boolean",
"description": "email: send as a new thread"
},
"send_condition": {
"enum": [
"if_no_reply",
"if_no_reply_but_opened"
],
"type": "string"
},
"sender_user_id": {
"type": "number",
"description": "sms (required)"
},
"attachment_uuid": {
"type": "string",
"format": "uuid",
"description": "voicemail (required): uuid from hires_upload_attachment, category voicemail"
},
"due_in_interval": {
"type": "string",
"description": "assign_task: ISO-8601 duration, e.g. P3D"
},
"task_template_id": {
"type": "number",
"description": "assign_task (required)"
},
"is_send_by_carousel": {
"type": "boolean",
"description": "email, sms: rotate sender accounts"
}
}
},
"description": "Executed in order. Each field names the step types that use it and whether it is required there."
},
"title": {
"type": "string"
},
"stage_id": {
"type": "number",
"description": "Stage that triggers the campaign"
},
"timezone": {
"type": "string",
"description": "IANA timezone, e.g. America/New_York"
},
"company_id": {
"type": "number"
},
"delay_time": {
"type": "number",
"description": "Delay before the first step, seconds (max 86400); wins over relative_days + relative_time if both are sent"
},
"send_to_all": {
"type": "boolean",
"description": "Send to all candidates in the stage, not only new ones (default false)"
},
"workflow_id": {
"type": "number",
"description": "Workflow the campaign is bound to"
},
"relative_days": {
"type": "number",
"description": "Days after the trigger for the first step; use with relative_time"
},
"relative_time": {
"type": "number",
"description": "Time of day for the first step, seconds from midnight"
},
"response_move_to_stage_id": {
"type": "number",
"description": "Stage to move a candidate to when they reply"
}
}
}| candidate_id |
| number |
| created_after | number | string | Unix seconds or ISO-8601 |
| updated_after | number | string | Unix seconds or ISO-8601; for incremental sync |
{
"type": "object",
"properties": {
"page": {
"type": "number"
},
"size": {
"type": "number"
},
"sort": {
"enum": [
"created_at",
"-created_at",
"ai_score",
"-ai_score",
"last_message_at",
"-last_message_at"
],
"type": "string",
"description": "Default -created_at"
},
"job_id": {
"type": "number"
},
"status": {
"enum": [
"pending",
"hired",
"rejected"
],
"type": "string"
},
"include": {
"type": "string",
"description": "Embed: candidate, cv.text. Pass candidate for pipeline rendering (names instead of ids)"
},
"stage_id": {
"type": "number",
"description": "Best combined with job_id"
},
"company_id": {
"type": "number"
},
"ai_score_max": {
"type": "number"
},
"ai_score_min": {
"type": "number"
},
"candidate_id": {
"type": "number"
},
"created_after": {
"type": [
"number",
"string"
],
"description": "Unix seconds or ISO-8601"
},
"updated_after": {
"type": [
"number",
"string"
],
"description": "Unix seconds or ISO-8601; for incremental sync"
}
}
}| number |
| created_after | number | string | Unix seconds or ISO-8601 |
| updated_after | number | string | Unix seconds or ISO-8601; for incremental sync |
{
"type": "object",
"properties": {
"q": {
"type": "string",
"description": "Partial match on name or email"
},
"page": {
"type": "number"
},
"size": {
"type": "number"
},
"view": {
"enum": [
"summary",
"full"
],
"type": "string",
"default": "summary",
"description": "summary omits the profile answers array"
},
"email": {
"type": "string",
"description": "Exact match"
},
"job_id": {
"type": "number"
},
"include": {
"type": "string",
"description": "Embed: applications (job titles and stages)"
},
"linkedin": {
"type": "string",
"description": "LinkedIn profile URL or alias"
},
"stage_id": {
"type": "number",
"description": "Pipeline stage id; combine with job_id"
},
"full_name": {
"type": "string"
},
"company_id": {
"type": "number"
},
"created_after": {
"type": [
"number",
"string"
],
"description": "Unix seconds or ISO-8601"
},
"updated_after": {
"type": [
"number",
"string"
],
"description": "Unix seconds or ISO-8601; for incremental sync"
}
}
}| interviewer_user_id |
| number |
{
"type": "object",
"properties": {
"date": {
"type": "string",
"description": "YYYY-MM-DD, UTC"
},
"page": {
"type": "number"
},
"size": {
"type": "number"
},
"job_id": {
"type": "number"
},
"include": {
"type": "string",
"description": "Embed: candidate, application, job"
},
"company_id": {
"type": "number"
},
"candidate_id": {
"type": "number"
},
"created_after": {
"type": [
"number",
"string"
],
"description": "Unix seconds or ISO-8601"
},
"updated_after": {
"type": [
"number",
"string"
],
"description": "Unix seconds or ISO-8601; for incremental sync"
},
"application_id": {
"type": "number"
},
"interviewer_user_id": {
"type": "number"
}
}
}| created_at_start |
| number | string |
| Unix seconds or ISO-8601 |
{
"type": "object",
"properties": {
"q": {
"type": "string",
"description": "Search title or internal title"
},
"page": {
"type": "number"
},
"size": {
"type": "number"
},
"view": {
"enum": [
"summary",
"full"
],
"type": "string",
"default": "summary"
},
"status": {
"type": "string",
"description": "From hires_list_statuses, e.g. Public, Draft, Archived"
},
"include": {
"type": "string",
"description": "Embed: workflow, hiring_team, pipeline_stages"
},
"company_id": {
"type": "number"
},
"department_id": {
"type": "number",
"description": "From hires_list_departments"
},
"updated_after": {
"type": [
"number",
"string"
],
"description": "Unix seconds or ISO-8601; for incremental sync"
},
"created_at_end": {
"type": [
"number",
"string"
],
"description": "Unix seconds or ISO-8601"
},
"created_at_start": {
"type": [
"number",
"string"
],
"description": "Unix seconds or ISO-8601"
}
}
}{
"type": "object",
"required": [
"id"
],
"properties": {
"cc": {
"type": "array",
"items": {
"type": "string"
}
},
"id": {
"type": "integer"
},
"to": {
"type": "array",
"items": {
"type": "string"
},
"description": "Recipient emails"
},
"bcc": {
"type": "array",
"items": {
"type": "string"
}
},
"body": {
"type": "string",
"description": "HTML"
},
"subject": {
"type": "string"
},
"scheduled_at": {
"anyOf": [
{
"type": "integer"
},
{
"type": "null"
}
],
"description": "Unix seconds"
},
"from_account_id": {
"anyOf": [
{
"type": "integer"
},
{
"type": "null"
}
],
"description": "Default: API key owner's default mail account"
},
"reply_to_email_id": {
"anyOf": [
{
"type": "integer"
},
{
"type": "null"
}
],
"description": "Mailbox message id to reply to"
},
"send_in_new_thread": {
"type": "boolean",
"description": "Send as a new thread"
}
}
}| send_in_new_thread |
| boolean |
| Start a new thread instead of replying |
{
"type": "object",
"required": [
"id",
"to",
"subject",
"body"
],
"properties": {
"cc": {
"type": "array",
"items": {
"type": "string"
}
},
"id": {
"type": [
"string",
"number"
],
"description": "Candidate id or alias"
},
"to": {
"type": "array",
"items": {
"type": "string"
},
"description": "Recipient emails"
},
"bcc": {
"type": "array",
"items": {
"type": "string"
}
},
"body": {
"type": "string",
"description": "HTML"
},
"subject": {
"type": "string"
},
"scheduled_at": {
"type": [
"number",
"null"
],
"description": "Unix seconds; default: now + 15 min"
},
"application_id": {
"type": [
"number",
"null"
]
},
"from_account_id": {
"type": [
"number",
"null"
],
"description": "Mail account id; default: the API key owner's default account"
},
"reply_to_email_id": {
"type": [
"number",
"null"
],
"description": "Mailbox message id to reply to"
},
"send_in_new_thread": {
"type": "boolean",
"description": "Start a new thread instead of replying"
}
}
}| last_name | string |
| first_name | string |
| resume_text | string | Plain text extracted from the resume; stored as a text/plain attachment. No binary or base64. |
{
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": [
"string",
"number"
],
"description": "Candidate id or alias"
},
"city": {
"type": "string",
"description": "Also used to resolve timezone"
},
"email": {
"type": "string"
},
"phone": {
"type": "string"
},
"state": {
"type": "string"
},
"job_id": {
"type": "number",
"description": "Creates a new application for this job"
},
"country": {
"type": "string",
"description": "Name or ISO code"
},
"profile": {
"type": "object",
"description": "Profile answers keyed by question text or question_id"
},
"stage_id": {
"type": "number",
"description": "Stage for that application; requires job_id"
},
"timezone": {
"type": "string",
"description": "IANA, e.g. America/Los_Angeles; resolved from city and country if omitted"
},
"last_name": {
"type": "string"
},
"first_name": {
"type": "string"
},
"resume_text": {
"type": "string",
"description": "Plain text extracted from the resume; stored as a text/plain attachment. No binary or base64."
}
}
}| From hires_list_categories |
| description | string | HTML allowed |
| workflow_id | number | Workflow to assign |
| department_id | number | From hires_list_departments |
| location_city | string | Empty string clears it; remote without city = nationwide posting on Indeed |
| parent_job_id | number | Parent job; makes this a satellite job |
| salary_period | string |
| internal_title | string | Hiring team only |
| location_state | string |
| internal_job_id | string | External reference id |
| salary_currency | string | ISO code, e.g. USD |
| location_country | string |
| education_level_id | number | From hires_list_education_levels |
| employment_type_id | number | From hires_list_employment_types |
| knockout_questions | array | Yes/No screening questions added to the application form |
| ai_scoring_criteria | array | Diff-replace by id: with id update, without id create, absent ones are removed; [] detaches all; omit to keep |
| experience_level_id | number | From hires_list_experience_levels |
| resume_field_status | string |
| location_postal_code | string |
| location_full_address | string |
| location_street_address | string |
{
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": [
"string",
"number"
],
"description": "Job id or alias"
},
"title": {
"type": "string"
},
"status": {
"type": "string",
"description": "From hires_list_statuses, e.g. Draft, Public"
},
"form_id": {
"type": "number",
"description": "Application form to assign"
},
"include": {
"type": "string",
"description": "Embed: workflow, hiring_team, pipeline_stages"
},
"language": {
"anyOf": [
{
"type": "string",
"maxLength": 35,
"minLength": 1
},
{
"type": "null"
}
],
"description": "Job page locale, e.g. de-DE; null = follow the career site language, omit = keep current. Values: hires_list_languages"
},
"is_remote": {
"type": "boolean",
"description": "Remote job; with empty city, state and postal code Indeed posts it nationwide"
},
"salary_max": {
"type": "number"
},
"salary_min": {
"type": "number"
},
"category_id": {
"type": "number",
"description": "From hires_list_categories"
},
"description": {
"type": "string",
"description": "HTML allowed"
},
"workflow_id": {
"type": "number",
"description": "Workflow to assign"
},
"department_id": {
"type": "number",
"description": "From hires_list_departments"
},
"location_city": {
"type": "string",
"description": "Empty string clears it; remote without city = nationwide posting on Indeed"
},
"parent_job_id": {
"type": "number",
"description": "Parent job; makes this a satellite job"
},
"salary_period": {
"enum": [
"annually",
"monthly",
"daily",
"hourly"
],
"type": "string"
},
"internal_title": {
"type": "string",
"description": "Hiring team only"
},
"location_state": {
"type": "string"
},
"internal_job_id": {
"type": "string",
"description": "External reference id"
},
"salary_currency": {
"type": "string",
"description": "ISO code, e.g. USD"
},
"location_country": {
"type": "string"
},
"education_level_id": {
"type": "number",
"description": "From hires_list_education_levels"
},
"employment_type_id": {
"type": "number",
"description": "From hires_list_employment_types"
},
"knockout_questions": {
"type": "array",
"items": {
"type": "object",
"required": [
"text",
"expected_answer",
"disqualify_on_wrong_answer"
],
"properties": {
"text": {
"type": "string",
"description": "Shown to the applicant"
},
"expected_answer": {
"enum": [
"Yes",
"No"
],
"type": "string"
},
"disqualify_on_wrong_answer": {
"type": "boolean",
"description": "Disqualify on wrong answer"
}
}
},
"description": "Yes/No screening questions added to the application form"
},
"ai_scoring_criteria": {
"type": "array",
"items": {
"type": "object",
"required": [
"text",
"weight"
],
"properties": {
"id": {
"type": "integer",
"description": "Existing criterion id; omit to create",
"exclusiveMinimum": 0
},
"text": {
"type": "string",
"description": "What to evaluate"
},
"title": {
"type": "string"
},
"weight": {
"type": "integer",
"maximum": 10,
"minimum": 1,
"description": "Relative importance"
}
}
},
"description": "Diff-replace by id: with id update, without id create, absent ones are removed; [] detaches all; omit to keep"
},
"experience_level_id": {
"type": "number",
"description": "From hires_list_experience_levels"
},
"resume_field_status": {
"enum": [
"required",
"optional",
"hidden"
],
"type": "string"
},
"location_postal_code": {
"type": "string"
},
"location_full_address": {
"type": "string"
},
"location_street_address": {
"type": "string"
}
}
}{
"type": "object",
"required": [
"id",
"to",
"subject",
"body"
],
"properties": {
"cc": {
"type": "array",
"items": {
"type": "string"
}
},
"id": {
"type": "integer"
},
"to": {
"type": "array",
"items": {
"type": "string"
},
"description": "Recipient emails"
},
"bcc": {
"type": "array",
"items": {
"type": "string"
}
},
"body": {
"type": "string",
"description": "HTML"
},
"subject": {
"type": "string"
},
"scheduled_at": {
"anyOf": [
{
"type": "integer"
},
{
"type": "null"
}
],
"description": "Unix seconds"
},
"from_account_id": {
"anyOf": [
{
"type": "integer"
},
{
"type": "null"
}
],
"description": "Default: API key owner's default mail account"
},
"reply_to_email_id": {
"anyOf": [
{
"type": "integer"
},
{
"type": "null"
}
],
"description": "Mailbox message id to reply to"
},
"send_in_new_thread": {
"type": "boolean",
"description": "Send as a new thread"
}
}
}| number |
| Days after the trigger for the first step; use with relative_time |
| relative_time | number | Time of day for the first step, seconds from midnight |
| response_move_to_stage_id | number | Stage to move a candidate to when they reply |
{
"type": "object",
"required": [
"id",
"title",
"steps"
],
"properties": {
"id": {
"type": "number"
},
"steps": {
"type": "array",
"items": {
"type": "object",
"required": [
"type",
"delay_days",
"send_condition"
],
"properties": {
"id": {
"type": "number",
"description": "Existing step id (update only)"
},
"type": {
"enum": [
"email",
"sms",
"voicemail",
"move_to_next_stage",
"assign_tag",
"assign_task"
],
"type": "string"
},
"sender": {
"type": "object",
"required": [
"type",
"id"
],
"properties": {
"id": {
"type": "number"
},
"type": {
"type": "string",
"description": "account or user"
}
},
"description": "email (required)"
},
"tag_id": {
"type": "number",
"description": "assign_tag (required)"
},
"priority": {
"type": "number",
"description": "assign_task"
},
"stage_id": {
"type": "number",
"description": "move_to_next_stage (required)"
},
"assignees": {
"type": "array",
"items": {
"type": "number"
},
"description": "assign_task (required): user ids"
},
"delay_days": {
"type": "number",
"minimum": 0,
"description": "Days to wait before this step"
},
"is_deleted": {
"type": "boolean",
"description": "Update only: true removes the step"
},
"schedule_id": {
"type": "number",
"description": "email, sms, voicemail: sending schedule id"
},
"template_id": {
"type": "number",
"description": "email, sms (required)"
},
"is_new_thread": {
"type": "boolean",
"description": "email: send as a new thread"
},
"send_condition": {
"enum": [
"if_no_reply",
"if_no_reply_but_opened"
],
"type": "string"
},
"sender_user_id": {
"type": "number",
"description": "sms (required)"
},
"attachment_uuid": {
"type": "string",
"format": "uuid",
"description": "voicemail (required): uuid from hires_upload_attachment, category voicemail"
},
"due_in_interval": {
"type": "string",
"description": "assign_task: ISO-8601 duration, e.g. P3D"
},
"task_template_id": {
"type": "number",
"description": "assign_task (required)"
},
"is_send_by_carousel": {
"type": "boolean",
"description": "email, sms: rotate sender accounts"
}
}
},
"description": "Executed in order. Each field names the step types that use it and whether it is required there."
},
"title": {
"type": "string"
},
"stage_id": {
"type": "number",
"description": "Stage that triggers the campaign"
},
"timezone": {
"type": "string",
"description": "IANA timezone, e.g. America/New_York"
},
"delay_time": {
"type": "number",
"description": "Delay before the first step, seconds (max 86400); wins over relative_days + relative_time if both are sent"
},
"send_to_all": {
"type": "boolean",
"description": "Send to all candidates in the stage, not only new ones (default false)"
},
"workflow_id": {
"type": "number",
"description": "Workflow the campaign is bound to"
},
"relative_days": {
"type": "number",
"description": "Days after the trigger for the first step; use with relative_time"
},
"relative_time": {
"type": "number",
"description": "Time of day for the first step, seconds from midnight"
},
"response_move_to_stage_id": {
"type": "number",
"description": "Stage to move a candidate to when they reply"
}
}
}