> ## Documentation Index
> Fetch the complete documentation index at: https://docs.atako.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Recruitee

> Connect Recruitee to your Atako agents — 10 read and 3 write actions.

Let your agents work with your Recruitee ATS — browse jobs, their pipeline stages, candidates, departments, locations, tags and team members, add candidates to a job, move them through stages and add notes.

## Connection

* **Authentication**: API key (Personal API token).
* **Required settings**:
  * **Company ID** — The company ID shown on Settings → Apps and plugins → Personal API tokens (digits), or your company subdomain (lowercase, no dots).

<Note>
  In Recruitee: Settings → Apps and plugins → Personal API tokens → "Add new token". Give it a label, click "Save" and confirm your password; copy the token. The token acts with your own role's permissions in this company, so use an account that can see the jobs and candidates the agent needs (and edit them for the write actions). Your company ID is shown on the same Personal API tokens page.

  See [Recruitee's documentation](https://docs.recruitee.com/reference/getting-started).
</Note>

## Read actions (10)

| Action | Description |
| - | - |
| `get_candidate` | Fetch one candidate by id (from list\_candidates): contact details, sources, tags, and placements (one per offer, with its id, offer\_id and stage\_id). |
| `get_offer` | Fetch one offer by id (integer, from list\_offers): description, requirements, location, department, pipeline template with its stages. |
| `list_candidates` | List candidates, 100 by default. Optional filters: offer\_id (string, offer id from list\_offers), query (search on the candidate name or offer), qualified / disqualified (booleans), created\_after (date string), ids (comma-separated candidate ids), sort ("by\_date" or "by\_last\_message"), limit (1-1000) and offset (number of candidates to skip). To filter on a pipeline stage, use list\_stage\_candidates. |
| `list_departments` | List the company departments (their id is a department\_ids filter of list\_offers). |
| `list_locations` | List the company locations (their id is a location\_ids filter of list\_offers). Optional: scope ("active", "archived", "all" — default all), query (search on name and address), view\_mode ("brief" default, "full" adds translations and active offer counters), limit, page. |
| `list_members` | List the company team members (memberships, with their role). Optional: query (search), role\_id (integer), sort\_by ("name", "role" or "email"), sort\_order ("asc" default, or "desc"), limit, page. |
| `list_offer_stages` | List the pipeline stages of an offer: pipeline\_template\_id is the offer's pipeline\_template\_id (from list\_offers or get\_offer). Returns the template with its stages (id, name, position, group, category); a stage id is the stage\_id of list\_stage\_candidates and move\_candidate\_stage. |
| `list_offers` | List the company offers (jobs and talent pools), 1000 per page by default. Optional filters, each an array: statuses (among "draft", "published", "internal", "closed", "archived"), department\_ids (from list\_departments), location\_ids (from list\_locations), tag\_ids (integers), include (extra fields among "description", "requirements", "highlight", "work\_models", "salary", "dynamic\_fields", "follower\_ids", "location\_ids", "requisition\_ids", "tags", "job\_scheduler", "issues", "counters"); limit and page (integers). Each offer carries its id and its pipeline\_template\_id (for list\_offer\_stages). |
| `list_stage_candidates` | List the candidates currently in one pipeline stage of an offer, as placements (placement id, candidate\_id, candidate, stage\_id). offer\_id = offer id or slug (from list\_offers), stage\_id = stage id (from list\_offer\_stages). Optional: qualified / disqualified (booleans), limit (1-1000, default 20), page. The placement id is the placement\_id of move\_candidate\_stage. |
| `list_tags` | List the candidate tags of the company. Optional: query (search), sort\_by ("name" or "taggings\_count"), sort\_order ("asc" default, or "desc"). |

## Write actions (3)

| Action | Description |
| - | - |
| `add_candidate_note` | Add a note to a candidate's profile. Arguments: candidate\_id (integer, candidate id from list\_candidates), text (string, plain text; each line becomes a paragraph). Sent as \{ note: \{ body\_json: \{ doc } } }. No attachment, no mention. |
| `create_candidate` | Add a candidate manually to one offer, in the offer's default stage (no confirmation email is sent to the candidate). Arguments: offer\_id (integer, offer id from list\_offers, required); name (string, full name, required); emails, phones, links, social\_links, sources (optional arrays of strings); cover\_letter (optional string); remote\_cv\_url (optional string, public URL of the CV file). Sent as \{ candidate: \{...}, offers: \[offer\_id] }. |
| `move_candidate_stage` | Move a candidate to another stage of an offer. Arguments: placement\_id (integer, placement id from list\_stage\_candidates or the placements of get\_candidate), stage\_id (integer, target stage id from list\_offer\_stages), proceed (optional boolean, true = top of the stage list), run\_actions (optional boolean, true = trigger the stage's automated actions). Moving to a hired stage may require a work location and, with requisitions enabled, an opening, which this action does not send. |

## Permissions

Every action above must be explicitly granted to an agent before it can be used. See [Permissions](/integrations/permissions) for the grant model and [Security](/integrations/security) for how credentials are protected.

***

*Last reviewed against the provider API: September 2026.*


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.