Recruitee MCP by usefulapi

io.usefulapiPublished by usefulapi.ioOfficial publisherv1.41.1Updated Nov 14, 2026

Search Recruitee candidates, jobs, pipelines and interviews, and add notes, tags and tasks.

The publisher's own server: Ably MCP by usefulapi

VerifiedStreamable HTTPWeb executableProductivity & WorkflowBusiness & Commerce

Overview

AI-generated overview

Hosted Recruitee connector that lets an assistant search candidates, jobs, pipelines and interviews, and add candidates, notes, tags and tasks.

What you can do
  • Search and read candidates, including full profiles, notes, tags and disqualify reasons
  • Browse jobs (offers), pipeline templates, departments and team members
  • Review recruiting tasks, scheduled interviews and interview evaluations
  • Create and update candidates, add notes and tags, assign candidates to jobs and move them between stages
  • Create recruiting tasks assigned to team members
  • Check usage and manage the subscription plan
When to use it
Useful when a recruiter or hiring team wants to query their Recruitee data in natural language — who applied to a role, what is scheduled this week, what notes exist on a candidate — or to make small pipeline updates without opening the app.
Requirements
Remote MCP endpoint; no local install. Connect with the URL only and sign in through OAuth, then supply your Recruitee company ID and a personal API token (Settings > Apps and plugins > Personal API tokens). A free plan allows 50 tool calls per month; paid plans are billed per user.
Before you install
Seven tools write to Recruitee: creating or updating candidates, adding notes and tags, assigning candidates to jobs, moving stages and creating tasks — confirm before running them. List fields such as emails and phones are replaced, not merged, on update. Moving to a hired stage can trigger stage automations. Your Recruitee credentials are stored by the third-party host, and paid plans involve Stripe checkout charges.

Installation

In SourceWeft

  1. Open Recruitee MCP by usefulapi in the dashboard and add it to a workspace.
  2. Enable the server for the chats that should use its tools.

Web executable via Streamable HTTP. Remote servers run from the web runtime once configured in a workspace.

Use with an agent

Paste this prompt into Claude Code, Codex, Cursor or another agent — or into SourceWeft chat. The agent reads this server's install guide, shows you its publisher, endpoint and sign-in, and adds it to your client once you agree. Keys never go into a command.

Read https://sourceweft.com/mcp/io.usefulapi%2Frecruitee/install.md and connect the MCP server it describes to my client. Before changing any config, show me its publisher, endpoint and sign-in method and wait for my OK. Never put an API key in a command or in a file I would commit; ask me where it should come from.

Read the install guide the agent follows

Other MCP clients

Add this to your client's mcpServers config.

{
  "mcpServers": {
    "recruitee-by-usefulapi": {
      "type": "http",
      "url": "https://recruitee.usefulapi.io/mcp"
    }
  }
}

README

Recruitee MCP by usefulapi

Use Recruitee from Claude, Cursor, or any MCP client — search candidates, jobs, pipelines, tasks and interviews, and add candidates, notes, tags and stage moves. Hosted, no local install: connect with your own Recruitee credentials.

Live endpoint: https://recruitee.usefulapi.io/mcp · Homepage: https://usefulapi.io/recruitee

Connect

  • Claude (claude.ai, Desktop): open Customize → Connectors, click + Add → Add custom connector, and paste https://recruitee.usefulapi.io/mcp.
  • Claude Code: claude mcp add --transport http recruitee https://recruitee.usefulapi.io/mcp, then run /mcp to log in.
  • VS Code: Add to VS Code.
  • Cursor and other clients: add the URL as a remote MCP server:
json
{  "mcpServers": {    "recruitee": {      "url": "https://recruitee.usefulapi.io/mcp"    }  }}

Add only the URL. Do not add an Authorization header or an API key to the client config: the server signs you in with OAuth, and the login page asks for your Recruitee credentials.

Step-by-step setup, where to find your credentials, and FAQ: https://usefulapi.io/recruitee/

On first connect you'll provide your Recruitee company ID and personal API token (Settings > Apps and plugins > Personal API tokens). They're validated, stored per-user, and scoped to you — no keys in config files.

Tools

ToolTypeWhat it does
recruitee_get_current_userreadGet the current user
recruitee_list_team_membersreadList team members
recruitee_search_candidatesreadSearch candidates
recruitee_list_candidatesreadList candidates
recruitee_get_candidatereadGet one candidate
recruitee_list_candidate_notesreadList a candidate's notes
recruitee_list_offersreadList jobs
recruitee_get_offerreadGet one job
recruitee_get_pipeline_templatereadGet a hiring pipeline
recruitee_list_departmentsreadList departments
recruitee_list_tagsreadList candidate tags
recruitee_list_disqualify_reasonsreadList disqualify reasons
recruitee_list_tasksreadList tasks
recruitee_list_interview_eventsreadList interviews
recruitee_list_evaluationsreadList evaluations
recruitee_create_candidatewriteCreate a candidate
recruitee_update_candidatewriteUpdate a candidate
recruitee_add_candidate_notewriteAdd a note to a candidate
recruitee_add_candidate_tagswriteTag a candidate
recruitee_assign_candidate_to_offerwriteAdd a candidate to a job
recruitee_move_candidate_stagewriteMove a candidate to another stage
recruitee_create_taskwriteCreate a task
recruitee_usage_statusmetaUsage status (free-tier meter)
recruitee_request_featuremetaRequest a missing feature
recruitee_upgrademetaUpgrade to Pro or Pro+
recruitee_cancel_subscriptionmetaCancel the Pro subscription

read tools are read-only; write tools mutate data (clients should confirm them); meta tools report usage, manage your subscription or send a feature request.

Pricing

PlanPriceLimit
Free$050 tool calls / month
Pro (per user)$9/mo or $90/yr (2 months free)10,000 tool calls / month
Pro+ (per user)$39/mo or $390/yr (2 months free)100,000 tool calls / month

Each paid plan covers this server only. Ask your AI to run recruitee_upgrade and choose Pro or Pro+, billed monthly or yearly (it returns a Stripe Checkout link). If you already have Pro, ask to change it to Pro+. The change requires your confirmation, keeps your billing interval and charges the price difference for the rest of the period immediately. Cancel any time with recruitee_cancel_subscription: your paid plan continues to the end of the paid period, with no refund for the current period, and asking to resume the same plan with recruitee_upgrade before then undoes the cancel. Or write to [email protected].

License

MIT © usefulapi. Not affiliated with or endorsed by Recruitee.

Source: servers/recruitee/README.md at commit f22f848

Tools

22

recruitee_get_current_user

Get the current user

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.

Takes no parameters.

recruitee_list_team_members

List team members

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.

Parameterspagelimitqueryrole_idsort_bysort_order

recruitee_search_candidates

Search candidates

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.

Parameterspagelimitqueryfilterssort_by

recruitee_list_candidates

List candidates

List candidates, newest first, optionally filtered by job, search, qualification, ids or creation date. Default 25 per page. detail auto returns whole records where they fit; if one record or page metadata is too large, explicitly marked summaries preserve candidate ids and omit other fields/references. detail full requires whole records; summary always returns summaries. Pages can be smaller than limit: continue with pagination.next_offset as offset and the same filters; null means finished. Do not advance by limit. Recruitee: GET /c/{company_id}/candidates.

Parametersidssortlimitquerydetailoffsetoffer_idqualifieddisqualifiedcreated_after

recruitee_get_candidate

Get one candidate

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}.

Parameterscandidate_idrequired

recruitee_list_candidate_notes

List a candidate's notes

List the notes on a candidate's profile, with replies, author admin_id and visibility. Recruitee: GET /c/{company_id}/candidates/{candidate_id}/notes.

Parameterscandidate_idrequired

recruitee_list_offers

List jobs

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.

Parameterspagelimitincludetag_idsstatusesoffer_idscategorieslang_codesprioritieslocation_idsrecruiter_idsdepartment_ids+2 more

recruitee_get_offer

Get one job

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}.

Parametersoffer_idrequired

recruitee_get_pipeline_template

Get a hiring pipeline

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}.

Parameterspipeline_template_idrequired

recruitee_list_departments

List departments

List the company's departments with their ids and job counts. Recruitee: GET /c/{company_id}/departments.

Takes no parameters.

recruitee_list_tags

List candidate tags

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.

Parametersquerysort_bysort_order

recruitee_list_disqualify_reasons

List disqualify reasons

List the company's configured disqualification reasons (id, name, position). Useful for reading why candidates were disqualified. Recruitee: GET /c/{company_id}/disqualify_reasons.

Takes no parameters.

recruitee_list_tasks

List tasks

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).

Parameterspagelimitscopestatussort_byadmin_idssort_ordercandidate_id

recruitee_list_interview_events

List interviews

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.

Parameterspagelimitscopestatusend_datetimezoneadmin_idsstart_datecandidate_id

recruitee_list_evaluations

List evaluations

List interview results — evaluations (rating + note) and questionnaire scorecards — optionally for one candidate or by selected reviewers. Recruitee: GET /c/{company_id}/interview/results.

Parameterskindpagelimitscopeadmin_idscandidate_id

recruitee_create_candidate

Create a candidate

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.

Parametersnamerequiredlinksemailsphonessourcesoffer_idscover_lettersocial_linksremote_cv_url

recruitee_update_candidate

Update a candidate

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}.

Parametersnamelinksemailsphonescandidate_idrequiredcover_lettersocial_links

recruitee_add_candidate_note

Add a note to a candidate

WRITE: add a note to a candidate's profile, visible to the team. Recruitee: POST /c/{company_id}/candidates/{candidate_id}/notes.

Parametersbodyrequiredcandidate_idrequired

recruitee_add_candidate_tags

Tag a candidate

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.

Parameterstagsrequiredcandidate_idrequired

recruitee_assign_candidate_to_offer

Add a candidate to a job

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.

Parametersoffer_idcandidate_idrequiredtalent_pool_id

recruitee_move_candidate_stage

Move a candidate to another stage

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.

Parametersstage_idrequiredplacement_idrequiredwork_location_id

recruitee_create_task

Create a task

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.

Parameterstitlerequireddue_datetimezoneadmin_idsdescriptioncandidate_id

Version history

24
  1. v1.41.1LatestNov 13, 2026
  2. v1.40.0Nov 12, 2026
  3. v1.39.3Nov 11, 2026
  4. v1.37.3Nov 7, 2026
  5. v1.36.1Nov 5, 2026
  6. v1.36.0Nov 5, 2026
  7. v1.35.1Nov 4, 2026
  8. v1.35.0Nov 3, 2026
  9. v1.34.1Nov 3, 2026
  10. v1.33.0Nov 1, 2026
  11. v1.31.0Oct 31, 2026
  12. v1.30.0Oct 31, 2026
  13. v1.29.2Oct 30, 2026
  14. v1.29.0Oct 30, 2026
  15. v1.24.0Oct 26, 2026
  16. v1.21.3Oct 25, 2026
  17. v1.21.0Oct 25, 2026
  18. v1.20.0Oct 24, 2026
  19. v1.17.0Oct 23, 2026
  20. v1.16.4Oct 22, 2026
  21. v1.16.3Oct 21, 2026
  22. v1.11.1Oct 9, 2026
  23. v1.10.0Oct 9, 2026
  24. v1.0.0Sep 30, 2026

Score

100% of the applicable checks met

How complete this listing is, computed from the registry entry, the endpoint and public sources. Not a rating of the server and not a statement that it is safe or working today: reachability is a dated check, and no installs or reviews go into the score.

  • Reached in the last 30 daysRequired25 pts
  • Auth declaredRequired10 pts
  • Tools listedRequired15 pts
  • DescriptionRequired15 pts
  • Logo10 pts
  • Documentation15 pts
  • License10 pts

Other Usefulapi integrations