Skip to main content

MCP server for Recruit CRM

Project description

Recruit CRM MCP

CI

MCP (Model Context Protocol) server for Recruit CRM, enabling AI assistants to search candidates, view jobs, and manage recruiting workflows.

Quick Start

One-Click Install (recommended)

macOS / Linux — run in Terminal:

curl -LsSf https://raw.githubusercontent.com/ebragas/recruitcrm-mcp/main/install.sh | bash

Windows — run in PowerShell:

powershell -ExecutionPolicy Bypass -c "irm https://raw.githubusercontent.com/ebragas/recruitcrm-mcp/main/install.ps1 | iex"

The installer will:

  • Install uv if you don't have it
  • Prompt for your Recruit CRM API key
  • Back up your existing Claude Desktop config
  • Add the Recruit CRM MCP server entry
Want to review the script first?

macOS / Linux:

curl -LsSf https://raw.githubusercontent.com/ebragas/recruitcrm-mcp/main/install.sh -o install.sh
cat install.sh   # review the script
bash install.sh

Windows:

Invoke-WebRequest -Uri https://raw.githubusercontent.com/ebragas/recruitcrm-mcp/main/install.ps1 -OutFile install.ps1
Get-Content install.ps1   # review the script
powershell -ExecutionPolicy Bypass -File .\install.ps1

Already have uv? You can skip the bootstrap and run the installer directly:

uvx --from recruit-crm-mcp recruit-crm-mcp-install

Manual Setup

If you prefer to configure manually, add to your claude_desktop_config.json:

{
  "mcpServers": {
    "recruit-crm": {
      "command": "uvx",
      "args": ["recruit-crm-mcp"],
      "env": {
        "RECRUIT_CRM_API_KEY": "your-api-key-here"
      }
    }
  }
}

Installing a pre-release (test) build

Pre-release builds (e.g. 0.16.0rc1) are published to PyPI for internal testing. They are not picked up by the default installer or by a bare uvx recruit-crm-mcp — you have to pin them explicitly.

To run a pre-release once from the command line:

uvx recruit-crm-mcp@0.16.0rc1

To use a pre-release with Claude Desktop, edit claude_desktop_config.json and change the args entry to include the version pin:

{
  "mcpServers": {
    "recruit-crm": {
      "command": "uvx",
      "args": ["recruit-crm-mcp@0.16.0rc1"],
      "env": {
        "RECRUIT_CRM_API_KEY": "your-api-key-here"
      }
    }
  }
}

Fully quit and reopen Claude Desktop (the app keeps running in the dock after closing the window).

To roll back to stable, set args back to ["recruit-crm-mcp"] (or pin a specific stable like ["recruit-crm-mcp@0.15.0"]) and restart Claude Desktop.

Why other users are safe. uvx's default resolver strategy is --prerelease=if-necessary: pre-releases are skipped unless no stable version satisfies the spec. Because recruit-crm-mcp has a stable release on PyPI, the unpinned uvx recruit-crm-mcp in the default installer's config resolves to the latest stable and never picks up a pre-release. Only an explicit pin like @0.16.0rc1 opts in.

Development

uv sync              # install dependencies
make test            # run tests
make lint            # run linter
make check           # run lint + tests

Tools

Tool Description
ping Health check — verify the server is running and API key is configured

Candidates

Tool Description
search_candidates Search candidates by name, email, LinkedIn, phone, state, country, or created/updated date range
get_candidate Get full profile details for a candidate by slug/ID
create_candidate Create a new candidate record
update_candidate Update standard fields on an existing candidate
set_candidate_custom_fields Set custom-field values on a candidate without touching standard fields

Jobs

Tool Description
list_jobs List job requisitions in reverse chronological order
search_jobs Search jobs by status, name, city, country, company, owner, or created/updated date range
get_job Get full details for a job by slug/ID
create_job Create a new job requisition (requires name, openings, company_slug, contact_slug, description, currency, application form flag)
update_job Update standard fields on an existing job
set_job_custom_fields Set custom-field values on a job without touching standard fields
get_assigned_candidates List candidates assigned to a job (optionally filtered by hiring stage)

Contacts

Tool Description
search_contacts Search contacts by name, email, LinkedIn, phone, company_slug, owner, or date range
get_contact Get full details for a contact by slug
create_contact Create a new contact record
update_contact Update standard fields on an existing contact
set_contact_custom_fields Set custom-field values on a contact without touching standard fields

Companies

Tool Description
search_companies Search companies by name, owner, off-limit flag, or date range (supports sort and exact match)
get_company Get full details for a company by slug
create_company Create a new company record
update_company Update standard fields on an existing company
set_company_custom_fields Set custom-field values on a company without touching standard fields

Notes / Tasks / Meetings

Tool Description
search_notes Search notes by added_from/to and updated_from/to
get_note Get a note by ID
create_note Create a note attached to a candidate, job, contact, or company
delete_note Delete a note by ID
search_tasks Search tasks by title, owner, and created/updated/starting date ranges
get_task Get a task by ID
create_task Create a task attached to a related entity, with optional reminder
update_task Update fields on an existing task
search_meetings Search meetings by title, owner, and created/updated/starting date ranges
get_meeting Get a meeting by ID
log_meeting Log (create) a meeting against a related entity with attendees and timing
update_meeting Update fields on an existing meeting

Assignments

Tool Description
assign_candidate Assign a candidate to a job
unassign_candidate Remove a candidate-job assignment
update_hiring_stage Move a candidate's hiring stage on a job

Files

Tool Description
upload_file Attach a public-URL file to a candidate, company, contact, or job

Users / Lookups

Tool Description
list_users List team members/users
list_note_types Enumerate note type IDs and labels
list_meeting_types Enumerate meeting type IDs and labels
list_task_types Enumerate task type IDs and labels
list_hiring_pipelines List hiring pipelines configured in the account
list_hiring_pipeline_stages Stages for a hiring pipeline (pipeline_id=0 = master)
list_contact_stages List sales pipeline stages (contact stages)
list_industries List industries available in the account
list_company_custom_fields Custom-field definitions for companies
list_contact_custom_fields Custom-field definitions for contacts
list_job_custom_fields Custom-field definitions for jobs
list_candidate_custom_fields Custom-field definitions for candidates

Resources

Resource Description
recruitcrm://candidate/{id}/resume Get resume URL for a candidate
recruitcrm://job/{id}/description Get full job description

Configuration

Set the RECRUIT_CRM_API_KEY environment variable with your Recruit CRM API token.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

recruit_crm_mcp-0.16.1.tar.gz (317.5 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

recruit_crm_mcp-0.16.1-py3-none-any.whl (24.9 kB view details)

Uploaded Python 3

File details

Details for the file recruit_crm_mcp-0.16.1.tar.gz.

File metadata

  • Download URL: recruit_crm_mcp-0.16.1.tar.gz
  • Upload date:
  • Size: 317.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for recruit_crm_mcp-0.16.1.tar.gz
Algorithm Hash digest
SHA256 b06d36dfcb876c0089f4efd0e1346c0d1c0baece87b46fafe30ea2bca463327e
MD5 62b5d30a259f483f04f0fb423562a27b
BLAKE2b-256 49ca0ec337a9982cd0681939fb529bad1ae6d94cf099f8b58539c1a71f54bf9b

See more details on using hashes here.

Provenance

The following attestation bundles were made for recruit_crm_mcp-0.16.1.tar.gz:

Publisher: publish.yml on ebragas/recruitcrm-mcp

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file recruit_crm_mcp-0.16.1-py3-none-any.whl.

File metadata

File hashes

Hashes for recruit_crm_mcp-0.16.1-py3-none-any.whl
Algorithm Hash digest
SHA256 7c0e4a57bc8dc3a7af681e632c7a5d7be0cfb3e4ea1e7359bc2e351ba230f72b
MD5 453ccbe5d955993b94199b44f0342756
BLAKE2b-256 4392a45d32e4240e8c28bf13bb080180514c7adb5126c4b1aeca4b4a3db4cd9d

See more details on using hashes here.

Provenance

The following attestation bundles were made for recruit_crm_mcp-0.16.1-py3-none-any.whl:

Publisher: publish.yml on ebragas/recruitcrm-mcp

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page