Search Recruitee candidates, jobs, pipelines and interviews, and add notes, tags and tasks.
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.
WRITE: add a note to a candidate's profile, visible to the team. Recruitee: POST /c/{company_id}/candidates/{candidate_id}/notes.
The note text.
The candidate id.
The server marks this tool as destructive. Running it may delete or overwrite data on the server or in any account you connected with your headers.
WRITE: add a note to a candidate's profile, visible to the team. Recruitee: POST /c/{company_id}/candidates/{candidate_id}/notes.
| Argument | Type | Description |
|---|---|---|
| body* | string | The note text. |
| candidate_id* | integer | The candidate id. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"candidate_id",
"body"
],
"properties": {
"body": {
"type": "string",
"maxLength": 20000,
"minLength": 1,
"description": "The note text."
},
"candidate_id": {
"type": "integer",
"maximum": 9007199254740991,
"description": "The candidate id.",
"exclusiveMinimum": 0
}
}
}WRITE: add one or more tags to a candidate (existing tags are reused by name; new names create new tags). Recruitee: POST /c/{company_id}/candidates/{candidate_id}/tags.
| Argument | Type | Description |
|---|---|---|
| tags* | array | Tag names to add, e.g. ["Python developer"]. |
| candidate_id* | integer | The candidate id. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"candidate_id",
"tags"
],
"properties": {
"tags": {
"type": "array",
"items": {
"type": "string",
"minLength": 1
},
"maxItems": 50,
"minItems": 1,
"description": "Tag names to add, e.g. [\"Python developer\"]."
},
"candidate_id": {
"type": "integer",
"maximum": 9007199254740991,
"description": "The candidate id.",
"exclusiveMinimum": 0
}
}
}WRITE: put an existing candidate on a job (or talent pool) — creates a placement in the pipeline's first stage. Pass exactly one of offer_id or talent_pool_id. Recruitee: POST /c/{company_id}/placements.
| Argument | Type | Description |
|---|---|---|
| offer_id | integer | The job id. |
| candidate_id* | integer | The candidate id. |
| talent_pool_id | integer | The talent pool id. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"candidate_id"
],
"properties": {
"offer_id": {
"type": "integer",
"maximum": 9007199254740991,
"description": "The job id.",
"exclusiveMinimum": 0
},
"candidate_id": {
"type": "integer",
"maximum": 9007199254740991,
"description": "The candidate id.",
"exclusiveMinimum": 0
},
"talent_pool_id": {
"type": "integer",
"maximum": 9007199254740991,
"description": "The talent pool id.",
"exclusiveMinimum": 0
}
}
}WRITE: add a candidate manually (as if a recruiter added them in the app — no auto-confirmation email is sent), optionally assigning them straight to one or more jobs in the job's default stage. Recruitee: POST /c/{company_id}/candidates.
| Argument | Type | Description |
|---|---|---|
| name* | string | Candidate's full name (required). |
| links | array | Other links (portfolio, website). |
| emails | array | Email addresses. |
| phones | array | Phone numbers. |
| sources | array | Source tags, e.g. ["Referral"]. |
| offer_ids | array | Jobs/talent pools to assign the candidate to (default stage). |
| cover_letter | string | Cover letter text. |
| social_links | array | Social profile URLs (e.g. LinkedIn). |
| remote_cv_url | string | Public URL of the CV file for Recruitee to fetch. |
WRITE: create a recruiting task, optionally about a candidate, assigned to team members (admin ids from recruitee_list_team_members), with an optional due date. Recruitee: POST /c/{company_id}/tasks.
| Argument | Type | Description |
|---|---|---|
| title* | string | Task title (required). |
| due_date | string | Due date/time (ISO 8601). Requires timezone. |
| timezone | string | Timezone of the due date, e.g. Europe/Amsterdam. |
| admin_ids | array | Assignees (admin ids). |
| description | string | Task details. |
| candidate_id | integer | Candidate the task is about. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"title"
],
"properties": {
"title": {
"type": "string",
"minLength": 1,
"description": "Task title (required)."
},
"due_date": {
"type": "string",
"description": "Due date/time (ISO 8601). Requires timezone."
},
"timezone": {
"type": "string",
"description": "Timezone of the due date, e.g. Europe/Amsterdam."
},
"admin_ids": {
"type": "array",
"items": {
"type": "integer",
"maximum": 9007199254740991,
"exclusiveMinimum": 0
},
"description": "Assignees (admin ids)."
},
"description": {
"type": "string",
"description": "Task details."
},
"candidate_id": {
"type": "integer",
"maximum": 9007199254740991,
"description": "Candidate the task is about.",
"exclusiveMinimum": 0
}
}
}Fetch one candidate's full profile: contact details, sources, tags, cover letter, CV URL, custom fields, ratings, and `placements` — one per job they are on, each with its placement id and current stage. The placement id is what recruitee_move_candidate_stage needs. Recruitee: GET /c/{company_id}/candidates/{id}.
| Argument | Type | Description |
|---|---|---|
| candidate_id* | integer | The candidate id. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"candidate_id"
],
"properties": {
"candidate_id": {
"type": "integer",
"maximum": 9007199254740991,
"description": "The candidate id.",
"exclusiveMinimum": 0
}
}
}Fetch the Recruitee user the API token belongs to — name, email, role, role abilities and company id. A cheap way to confirm the token and company id are right. Recruitee: GET /c/{company_id}/admin.
No arguments.
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {}
}Fetch one job or talent pool by id with its full details: description, requirements, location, salary, employment type, candidate counters and pipeline_template_id. Recruitee: GET /c/{company_id}/offers/{id}.
| Argument | Type | Description |
|---|---|---|
| offer_id* | integer | The job (offer) id. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"offer_id"
],
"properties": {
"offer_id": {
"type": "integer",
"maximum": 9007199254740991,
"description": "The job (offer) id.",
"exclusiveMinimum": 0
}
}
}Fetch a pipeline template with its ordered stages (id, name, group, category). A job's `pipeline_template_id` (from recruitee_list_offers / recruitee_get_offer) names its pipeline; the stage ids here are what recruitee_move_candidate_stage takes. Recruitee: GET /c/{company_id}/pipeline_templates/{id}.
| Argument | Type | Description |
|---|---|---|
| pipeline_template_id* | integer | The pipeline template id. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"pipeline_template_id"
],
"properties": {
"pipeline_template_id": {
"type": "integer",
"maximum": 9007199254740991,
"description": "The pipeline template id.",
"exclusiveMinimum": 0
}
}
}List the notes on a candidate's profile, with replies, author admin_id and visibility. Recruitee: GET /c/{company_id}/candidates/{candidate_id}/notes.
| Argument | Type | Description |
|---|---|---|
| candidate_id* | integer | The candidate id. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"candidate_id"
],
"properties": {
"candidate_id": {
"type": "integer",
"maximum": 9007199254740991,
"description": "The candidate id.",
"exclusiveMinimum": 0
}
}
}List candidates, newest first, optionally narrowed to one job, a name/job search, qualified or disqualified only, specific ids, or those created after a date. Paginate with limit + offset (next offset = offset + limit). Recruitee: GET /c/{company_id}/candidates.
| Argument | Type | Description |
|---|---|---|
| ids | array | Only these candidate ids. |
| sort | string | Sort order (default by_date). |
| limit | integer | Candidates per page (default 100, max 1000). |
| query | string | Search by candidate name or job. |
| offset | integer | Number of candidates to skip. |
| offer_id | integer | Only candidates on this job/talent pool. |
| qualified | boolean | true = only qualified candidates. |
| disqualified | boolean | true = only disqualified candidates. |
| created_after | string | Only candidates created after this date (ISO 8601). |
List the company's departments with their ids and job counts. Recruitee: GET /c/{company_id}/departments.
No arguments.
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {}
}List the company's configured disqualification reasons (id, name, position). Useful for reading why candidates were disqualified. Recruitee: GET /c/{company_id}/disqualify_reasons.
No arguments.
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {}
}List interview results — evaluations (rating + note) and questionnaire scorecards — optionally for one candidate or by selected reviewers. Recruitee: GET /c/{company_id}/interview/results.
| Argument | Type | Description |
|---|---|---|
| kind | string | Result kind (default all). |
| page | integer | Page number; only used together with limit. |
| limit | integer | Results per page (default unlimited). |
| scope | string | Only mine, or all (default all). |
| admin_ids | array | Only results by these admin ids. |
| candidate_id | integer | Only this candidate's evaluations. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"kind": {
"enum": [
"evaluation",
"questionnaire",
"all"
],
"type": "string",
"description": "Result kind (default all)."
},
"page": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": 1,
"description": "Page number; only used together with limit."
},
"limit": {
"type": "integer",
"maximum": 1000,
"minimum": 1,
"description": "Results per page (default unlimited)."
},
"scope": {
"enum": [
"my",
"all"
],
"type": "string",
"description": "Only mine, or all (default all)."
},
"admin_ids": {
"type": "array",
"items": {
"type": "integer",
"maximum": 9007199254740991,
"exclusiveMinimum": 0
},
"description": "Only results by these admin ids."
},
"candidate_id": {
"type": "integer",
"maximum": 9007199254740991,
"description": "Only this candidate's evaluations.",
"exclusiveMinimum": 0
}
}
}List scheduled interview events (candidate_id, offer_id, stage_id, start time, duration, location, attendees). Defaults to upcoming events for the whole company; narrow by candidate, date range or interviewer. Recruitee: GET /c/{company_id}/interview/events.
| Argument | Type | Description |
|---|---|---|
| page | integer | Page number; only used together with limit. |
| limit | integer | Events per page (default unlimited). |
| scope | string | Only mine, or all (default all). |
| status | string | Which events (default upcoming). |
| end_date | string | Range end, YYYY-MM-DD. |
| timezone | string | Timezone for the date range, e.g. Europe/Amsterdam. |
| admin_ids | array | Only events assigned to these admin ids. |
| start_date | string | Range start, YYYY-MM-DD. |
| candidate_id | integer |
List the company's jobs (Recruitee calls them offers) with id, title, status, slug, department_id, recruiter_id, hiring_manager_id and pipeline_template_id. Filter by status, department, location, recruiter, hiring manager, tag and more; add heavy fields with `include` (e.g. counters for candidate counts, description, salary, location_ids). Paginated with limit + page (default 1000 per page); `meta.total_count` gives the total. Recruitee: GET /c/{company_id}/offers.
| Argument | Type | Description |
|---|---|---|
| page | integer | Page number, starting at 1. |
| limit | integer | Jobs per page (default 1000). |
| include | array | Extra field groups to return. |
| tag_ids | array | Only jobs with these job tags. |
| statuses | array | Only jobs in these statuses. |
| offer_ids | array | Only these job ids. |
| categories | array | Only these job categories, e.g. information_technology. |
| lang_codes | array | Only jobs in these languages, e.g. en. |
List the company's candidate tags with ids and usage counts. Tag ids are used in recruitee_search_candidates filters. Recruitee: GET /c/{company_id}/tags.
| Argument | Type | Description |
|---|---|---|
| query | string | Search tags by name. |
| sort_by | string | Sort field. |
| sort_order | string | Sort direction (default asc). |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"query": {
"type": "string",
"description": "Search tags by name."
},
"sort_by": {
"enum": [
"name",
"taggings_count"
],
"type": "string",
"description": "Sort field."
},
"sort_order": {
"enum": [
"asc",
"desc"
],
"type": "string",
"description": "Sort direction (default asc)."
}
}
}List recruiting tasks (title, description, due date, completed, candidate_id). With candidate_id, lists that candidate's tasks (Recruitee: GET /c/{company_id}/candidates/{candidate_id}/tasks — only `status` applies). Otherwise lists company tasks with scope, assignee, sorting and paging (Recruitee: GET /c/{company_id}/tasks).
| Argument | Type | Description |
|---|---|---|
| page | integer | Page number, starting at 1. |
| limit | integer | Tasks per page (company list only). |
| scope | string | Whose tasks (company list only). |
| status | string | Completed or open tasks only. |
| sort_by | string | Sort field (company list only). |
| admin_ids | array | Only tasks assigned to these admin ids (company list only). |
| sort_order | string | Sort direction (company list only). |
| candidate_id | integer | Only this candidate's tasks. |
List the company's team members (memberships): admin_id, role, whether they are a recruiter or hiring manager, and the jobs they can access. Use admin_id values for task assignees and filters. User names/emails are in the `references` array. Recruitee: GET /c/{company_id}/memberships.
| Argument | Type | Description |
|---|---|---|
| page | integer | Page number, starting at 1. |
| limit | integer | Results per page. |
| query | string | Search by name or email. |
| role_id | integer | Only members with this role id. |
| sort_by | string | Sort field (default name). |
| sort_order | string | Sort direction (default asc). |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"page": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": 1,
"description": "Page number, starting at 1."
},
"limit": {
"type": "integer",
"maximum": 1000,
"minimum": 1,
"description": "Results per page."
},
"query": {
"type": "string",
"description": "Search by name or email."
},
"role_id": {
"type": "integer",
"maximum": 9007199254740991,
"description": "Only members with this role id.",
"exclusiveMinimum": 0
},
"sort_by": {
"enum": [
"name",
"role",
"email"
],
"type": "string",
"description": "Sort field (default name)."
},
"sort_order": {
"enum": [
"asc",
"desc"
],
"type": "string",
"description": "Sort direction (default asc)."
}
}
}WRITE: move a candidate to another stage of a job's pipeline. Takes the PLACEMENT id (from recruitee_get_candidate → placements[].id, one per job) and the destination stage id (from recruitee_get_pipeline_template). Moving to a 'hired' stage also requires work_location_id. Stage automations configured in Recruitee may run. Undo by moving back. Recruitee: PATCH /c/{company_id}/placements/{id}/change_stage.
| Argument | Type | Description |
|---|---|---|
| stage_id* | integer | Destination stage id. |
| placement_id* | integer | The placement id (candidate-on-job), not the candidate id. |
| work_location_id | integer | Location id — required by Recruitee when the destination is a hired stage. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"placement_id",
"stage_id"
],
"properties": {
"stage_id": {
"type": "integer",
"maximum": 9007199254740991,
"description": "Destination stage id.",
"exclusiveMinimum": 0
},
"placement_id": {
"type": "integer",
"maximum": 9007199254740991,
"description": "The placement id (candidate-on-job), not the candidate id.",
"exclusiveMinimum": 0
},
"work_location_id": {
"type": "integer",
"maximum": 9007199254740991,
"description": "Location id — required by Recruitee when the destination is a hired stage.",
"exclusiveMinimum": 0
}
}
}Search the company's candidates with Recruitee's candidate search (the same engine as the app's filters). `query` is a free-text search across name, emails, phones, tags, sources, job assignments, current stage, cover letter and CV content. `filters` accepts Recruitee filter objects verbatim, e.g. {"field":"created_at","gte":1548975600} (Unix seconds), {"field":"has_cv","eq":true}, {"filter":"tags","id":{"in":[12]}}, {"filter":"stages","name":{"in":["Phone interview"]}}. Returns `hits` (with each candidate's placements: job + current stage) and `total`. Recruitee: GET /c/{company_id}/search/new/candidates.
| Argument | Type | Description |
|---|---|---|
| page | integer | Page number, starting at 1. |
| limit | integer | Candidates per page (default 60). |
| query | string | Free-text search (adds a {"field":"all","query":...} filter). |
| filters | array | Additional Recruitee search filter objects, sent as filters_json. |
| sort_by | string | Sort key with _asc or _desc suffix, e.g. created_at_desc (default), relevance_desc, candidate_name_asc, candidate_rating_desc, candidate_stage_name_asc. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"page": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": 1,
"description": "Page number, starting at 1."
},
"limit": {
"type": "integer",
"maximum": 1000,
"minimum": 1,
"description": "Candidates per page (default 60)."
},
"query": {
"type": "string",
"description": "Free-text search (adds a {\"field\":\"all\",\"query\":...} filter)."
},
"filters": {
"type": "array",
"items": {
"type": "object",
"propertyNames": {
"type": "string"
},
"additionalProperties": {}
},
"description": "Additional Recruitee search filter objects, sent as filters_json."
},
"sort_by": {
"type": "string",
"description": "Sort key with _asc or _desc suffix, e.g. created_at_desc (default), relevance_desc, candidate_name_asc, candidate_rating_desc, candidate_stage_name_asc."
}
}
}WRITE: update a candidate's name or contact details. Only the fields you pass change; list fields (emails, phones, links) REPLACE the existing list, so pass the full list you want. Recruitee: PATCH /c/{company_id}/candidates/{id}.
| Argument | Type | Description |
|---|---|---|
| name | string | New full name. |
| links | array | Full replacement list of other links. |
| emails | array | Full replacement list of email addresses. |
| phones | array | Full replacement list of phone numbers. |
| candidate_id* | integer | The candidate id. |
| cover_letter | string | Cover letter text. |
| social_links | array | Full replacement list of social profile URLs. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"candidate_id"
],
"properties": {
"name": {
"type": "string",
"minLength": 1,
"description": "New full name."
},
"links": {
"type": "array",
"items": {
"type": "string"
},
"description": "Full replacement list of other links."
},
"emails": {
"type": "array",
"items": {
"type": "string",
"format": "email",
"pattern": "^(?:[A-Za-z0-9_'+\\-]+\\.)*[A-Za-z0-9_'+\\-]*[A-Za-z0-9_+-]@(?:[A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$"
},
"description": "Full replacement list of email addresses."
},
"phones": {
"type": "array",
"items": {
"type": "string"
},
"description": "Full replacement list of phone numbers."
},
"candidate_id": {
"type": "integer",
"maximum": 9007199254740991,
"description": "The candidate id.",
"exclusiveMinimum": 0
},
"cover_letter": {
"type": "string",
"description": "Cover letter text."
},
"social_links": {
"type": "array",
"items": {
"type": "string"
},
"description": "Full replacement list of social profile URLs."
}
}
}{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"name"
],
"properties": {
"name": {
"type": "string",
"minLength": 1,
"description": "Candidate's full name (required)."
},
"links": {
"type": "array",
"items": {
"type": "string"
},
"description": "Other links (portfolio, website)."
},
"emails": {
"type": "array",
"items": {
"type": "string",
"format": "email",
"pattern": "^(?:[A-Za-z0-9_'+\\-]+\\.)*[A-Za-z0-9_'+\\-]*[A-Za-z0-9_+-]@(?:[A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$"
},
"description": "Email addresses."
},
"phones": {
"type": "array",
"items": {
"type": "string"
},
"description": "Phone numbers."
},
"sources": {
"type": "array",
"items": {
"type": "string"
},
"description": "Source tags, e.g. [\"Referral\"]."
},
"offer_ids": {
"type": "array",
"items": {
"type": "integer",
"maximum": 9007199254740991,
"exclusiveMinimum": 0
},
"description": "Jobs/talent pools to assign the candidate to (default stage)."
},
"cover_letter": {
"type": "string",
"description": "Cover letter text."
},
"social_links": {
"type": "array",
"items": {
"type": "string"
},
"description": "Social profile URLs (e.g. LinkedIn)."
},
"remote_cv_url": {
"type": "string",
"format": "uri",
"description": "Public URL of the CV file for Recruitee to fetch."
}
}
}{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"ids": {
"type": "array",
"items": {
"type": "integer",
"maximum": 9007199254740991,
"exclusiveMinimum": 0
},
"description": "Only these candidate ids."
},
"sort": {
"enum": [
"by_date",
"by_last_message"
],
"type": "string",
"description": "Sort order (default by_date)."
},
"limit": {
"type": "integer",
"maximum": 1000,
"minimum": 1,
"description": "Candidates per page (default 100, max 1000)."
},
"query": {
"type": "string",
"description": "Search by candidate name or job."
},
"offset": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": 0,
"description": "Number of candidates to skip."
},
"offer_id": {
"type": "integer",
"maximum": 9007199254740991,
"description": "Only candidates on this job/talent pool.",
"exclusiveMinimum": 0
},
"qualified": {
"type": "boolean",
"description": "true = only qualified candidates."
},
"disqualified": {
"type": "boolean",
"description": "true = only disqualified candidates."
},
"created_after": {
"type": "string",
"description": "Only candidates created after this date (ISO 8601)."
}
}
}| Only this candidate's interviews. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"page": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": 1,
"description": "Page number; only used together with limit."
},
"limit": {
"type": "integer",
"maximum": 1000,
"minimum": 1,
"description": "Events per page (default unlimited)."
},
"scope": {
"enum": [
"my",
"all"
],
"type": "string",
"description": "Only mine, or all (default all)."
},
"status": {
"enum": [
"upcoming",
"past_due",
"all"
],
"type": "string",
"description": "Which events (default upcoming)."
},
"end_date": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$",
"description": "Range end, YYYY-MM-DD."
},
"timezone": {
"type": "string",
"description": "Timezone for the date range, e.g. Europe/Amsterdam."
},
"admin_ids": {
"type": "array",
"items": {
"type": "integer",
"maximum": 9007199254740991,
"exclusiveMinimum": 0
},
"description": "Only events assigned to these admin ids."
},
"start_date": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$",
"description": "Range start, YYYY-MM-DD."
},
"candidate_id": {
"type": "integer",
"maximum": 9007199254740991,
"description": "Only this candidate's interviews.",
"exclusiveMinimum": 0
}
}
}| priorities | array | Only jobs with these priorities. |
| location_ids | array | Only jobs at these locations. |
| recruiter_ids | array | Only jobs with these recruiters (admin ids). |
| department_ids | array | Only jobs in these departments. |
| employment_types | array | Only these employment types, e.g. fulltime. |
| hiring_manager_ids | array | Only jobs with these hiring managers (admin ids). |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"page": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": 1,
"description": "Page number, starting at 1."
},
"limit": {
"type": "integer",
"maximum": 1000,
"minimum": 1,
"description": "Jobs per page (default 1000)."
},
"include": {
"type": "array",
"items": {
"enum": [
"description",
"requirements",
"highlight",
"work_models",
"salary",
"dynamic_fields",
"follower_ids",
"location_ids",
"requisition_ids",
"tags",
"job_scheduler",
"issues",
"counters"
],
"type": "string"
},
"description": "Extra field groups to return."
},
"tag_ids": {
"type": "array",
"items": {
"type": "integer",
"maximum": 9007199254740991,
"exclusiveMinimum": 0
},
"description": "Only jobs with these job tags."
},
"statuses": {
"type": "array",
"items": {
"enum": [
"draft",
"published",
"internal",
"closed",
"archived"
],
"type": "string"
},
"description": "Only jobs in these statuses."
},
"offer_ids": {
"type": "array",
"items": {
"type": "integer",
"maximum": 9007199254740991,
"exclusiveMinimum": 0
},
"description": "Only these job ids."
},
"categories": {
"type": "array",
"items": {
"type": "string"
},
"description": "Only these job categories, e.g. information_technology."
},
"lang_codes": {
"type": "array",
"items": {
"type": "string"
},
"description": "Only jobs in these languages, e.g. en."
},
"priorities": {
"type": "array",
"items": {
"enum": [
"urgent",
"high",
"normal",
"low"
],
"type": "string"
},
"description": "Only jobs with these priorities."
},
"location_ids": {
"type": "array",
"items": {
"type": "integer",
"maximum": 9007199254740991,
"exclusiveMinimum": 0
},
"description": "Only jobs at these locations."
},
"recruiter_ids": {
"type": "array",
"items": {
"type": "integer",
"maximum": 9007199254740991,
"exclusiveMinimum": 0
},
"description": "Only jobs with these recruiters (admin ids)."
},
"department_ids": {
"type": "array",
"items": {
"type": "integer",
"maximum": 9007199254740991,
"exclusiveMinimum": 0
},
"description": "Only jobs in these departments."
},
"employment_types": {
"type": "array",
"items": {
"type": "string"
},
"description": "Only these employment types, e.g. fulltime."
},
"hiring_manager_ids": {
"type": "array",
"items": {
"type": "integer",
"maximum": 9007199254740991,
"exclusiveMinimum": 0
},
"description": "Only jobs with these hiring managers (admin ids)."
}
}
}{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"page": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": 1,
"description": "Page number, starting at 1."
},
"limit": {
"type": "integer",
"maximum": 1000,
"minimum": 1,
"description": "Tasks per page (company list only)."
},
"scope": {
"enum": [
"my",
"unassigned",
"all"
],
"type": "string",
"description": "Whose tasks (company list only)."
},
"status": {
"enum": [
"completed",
"uncompleted"
],
"type": "string",
"description": "Completed or open tasks only."
},
"sort_by": {
"enum": [
"due_date",
"created_at",
"completed_at"
],
"type": "string",
"description": "Sort field (company list only)."
},
"admin_ids": {
"type": "array",
"items": {
"type": "integer",
"maximum": 9007199254740991,
"exclusiveMinimum": 0
},
"description": "Only tasks assigned to these admin ids (company list only)."
},
"sort_order": {
"enum": [
"asc",
"desc"
],
"type": "string",
"description": "Sort direction (company list only)."
},
"candidate_id": {
"type": "integer",
"maximum": 9007199254740991,
"description": "Only this candidate's tasks.",
"exclusiveMinimum": 0
}
}
}