Skip to main content
Glama
ebragas

Recruit CRM MCP

by ebragas

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault
SENTRY_DSNNoFallback DSN if you already export it globally. RECRUIT_CRM_MCP_SENTRY_DSN takes precedence.
RECRUIT_CRM_API_KEYYesRecruit CRM API token
RECRUIT_CRM_MCP_ENVNoSentry environment tag.production
RECRUIT_CRM_MCP_SENTRY_DSNNoYour own Sentry project DSN. If set, tool-call exceptions and per-tool usage telemetry are auto-reported to that project.
RECRUIT_CRM_MCP_SENTRY_TRACES_RATENoSentry trace sample rate (0.0–1.0).1.0

Capabilities

Features and capabilities supported by this server

CapabilityDetails
tools
{
  "listChanged": true
}
prompts
{
  "listChanged": false
}
resources
{
  "subscribe": false,
  "listChanged": false
}
extensions
{
  "io.modelcontextprotocol/ui": {}
}
experimental
{}

Tools

Functions exposed to the LLM to take actions

NameDescription
pingA

Check that the Recruit CRM MCP server is running and configured.

search_candidatesA

Search for candidates by name, email, location, or date range.

Provide at least one filter for targeted results. Filters are combined with AND logic. With no filters, returns a paginated list of recent candidates. Date params use YYYY-MM-DD format. Returns a list of matching candidate summaries.

get_candidateB

Get full profile details for a specific candidate by slug or ID.

list_jobsA

List job requisitions without any filters.

Returns jobs in reverse chronological order. Use search_jobs instead when you need to filter by status or other fields.

search_jobsA

Search for jobs by status, name, location, company, date range, or owner.

Filters are optional and combined with AND logic. Status accepts a label: 'Open', 'On Hold', 'Closed', 'Placed', 'Canceled', 'Refill'. Date params use YYYY-MM-DD format. Use list_users to find valid owner_id values. With no filters, returns an empty list.

get_jobA

Get full details for a specific job by slug or ID.

get_assigned_candidatesA

Get candidates assigned to a specific job and their hiring stage.

Returns candidate summaries with their current hiring status for the given job. Use status_id to filter by a specific hiring stage.

get_contactA

Get full details for a specific contact by slug.

search_contactsA

Search for contacts by name, email, company, or date range.

Provide at least one filter for targeted results. Filters are combined with AND logic. With no filters, returns a paginated list of recent contacts. Date params use YYYY-MM-DD format.

get_companyA

Get full details for a specific company by slug.

search_companiesA

Search for companies by name, date range, or owner.

Provide at least one filter for targeted results. Filters are combined with AND logic. With no filters, returns a paginated list of recent companies. Date params use YYYY-MM-DD format. sort_by accepts 'createdon' or 'updatedon'. sort_order accepts 'asc' or 'desc'. Set exact_search=True for exact name matching (default is fuzzy/like matching). Use list_users to find valid owner_id values.

get_noteA

Get full details for a specific note by ID.

The description field is normalized from the CRM's stored HTML to Markdown before being returned to the model.

search_notesA

Search for notes by date range.

Provide at least one filter for targeted results. Filters are combined with AND logic. With no filters, returns a paginated list of recent notes. Date params use YYYY-MM-DD format.

get_taskA

Get full details for a specific task by ID.

The description field is normalized from the CRM's stored HTML to Markdown before being returned to the model.

search_tasksA

Search for tasks by title, date range, or owner.

Provide at least one filter for targeted results. Filters are combined with AND logic. With no filters, returns a paginated list of recent tasks. Date params use YYYY-MM-DD format. Use list_users to find valid owner_id values.

get_meetingA

Get full details for a specific meeting by ID.

The description field is normalized from the CRM's stored HTML to Markdown before being returned to the model.

search_meetingsA

Search for meetings by title, date range, or owner.

Provide at least one filter for targeted results. Filters are combined with AND logic. With no filters, returns a paginated list of recent meetings. Date params use YYYY-MM-DD format. Use list_users to find valid owner_id values.

list_usersA

List all team members/users.

Useful for discovering owner IDs to use with the search_jobs owner_id filter. Returns id, name, email, and role for each user.

list_note_typesA

List all note types available in the account.

Returns {id, label} pairs suitable for passing as note_type_id on note writes.

list_meeting_typesA

List all meeting types available in the account.

Returns {id, label} pairs suitable for passing as meeting_type_id on meeting writes.

list_task_typesA

List all task types available in the account.

Returns {id, label} pairs suitable for passing as task_type_id on task writes.

list_hiring_pipelinesA

List all hiring pipelines configured in the account.

Pipeline ID 0 is the master hiring pipeline. Use list_hiring_pipeline_stages with the returned id to inspect stages for a specific pipeline.

list_hiring_pipeline_stagesA

List hiring pipeline stages for a given pipeline.

Use pipeline_id=0 for the master hiring pipeline. Returns {id, label} stage entries suitable for filtering assigned candidates by hiring stage.

list_contact_stagesA

List sales pipeline stages (contact stages).

Returns {id, label} pairs for each stage in the sales pipeline.

list_industriesA

List all industries available in the account.

Returns {id, label} pairs suitable for populating a company's industry_id.

list_company_custom_fieldsA

List all company custom fields defined in the account.

Returns {id, label} pairs where id is the field_id and label is the field name.

list_contact_custom_fieldsA

List all contact custom fields defined in the account.

Returns {id, label} pairs where id is the field_id and label is the field name.

list_job_custom_fieldsA

List all job custom fields defined in the account.

Returns {id, label} pairs where id is the field_id and label is the field name.

list_candidate_custom_fieldsA

List all candidate custom fields defined in the account.

Returns {id, label} pairs where id is the field_id and label is the field name.

log_meetingA

Log a meeting via POST /v1/meetings.

Dates use ISO 8601 (e.g. 2025-04-29T18:30:00Z). related_to is the primary anchor entity. Use associated to cross-link the meeting to additional candidates/companies/contacts/jobs/deals. attendee_users expects integer user IDs; attendee_contacts and attendee_candidates expect slug strings. reminder accepts: -1 (no reminder), 0, 15, 30, 60, 120, 1440 (minutes before). do_not_send_calendar_invites defaults to True — safe for historical logging; set False to actually send invites to attendees. description accepts Markdown — converted to HTML before POST so the Recruit CRM UI renders bullets/bold/links correctly.

create_noteA

Create a note via POST /v1/notes.

description accepts Markdown — paragraphs, - bullets, **bold**, *italic*, and [links](url) render correctly in the Recruit CRM UI. The MCP layer converts to HTML before posting and back to Markdown on read.

related_to is the primary anchor entity. Use associated to cross-link the note to additional candidates/companies/contacts/jobs/deals.

update_noteA

Update an existing note via POST /v1/notes/{id} — partial update.

Only provided fields are sent; omitted fields are preserved server-side.

description accepts Markdown (see create_note). Use associated to add cross-links to additional candidates/companies/ contacts/jobs/deals.

create_taskB

Create a task via POST /v1/tasks.

start_date uses ISO 8601 (e.g. 2025-04-29T18:30:00Z). related_to is optional but recommended for easy discovery. reminder accepts: -1 (no reminder), 0, 15, 30, 60, 1440 (minutes before); defaults to 1440 (1 day before). description accepts Markdown — converted to HTML before POST so the Recruit CRM UI renders bullets/bold/links correctly.

update_taskA

Update an existing task via partial POST to /v1/tasks/{id}.

Only non-None fields are forwarded; omitted fields are preserved. task_type_id is the integer ID from list_task_types; omit to keep current type. description accepts Markdown. NOTE: marking a task complete is not supported by the Recruit CRM API on this endpoint — the status field is silently ignored (see CLAUDE.md). Delete the task or use the RCRM UI instead.

create_companyA

Create a company via POST /v1/companies.

company_name is the only required field. Use list_industries to resolve industry_id and list_company_custom_fields to discover valid custom_fields field_ids.

update_companyA

Update a company via partial POST to /v1/companies/{slug}.

Only non-None fields are forwarded; omitted fields are preserved server-side (the API's required company_name is kept automatically).

set_company_custom_fieldsA

Set custom-field values on a company without touching any standard fields.

Thin wrapper over update_company — the edit endpoint accepts custom_fields inline (there is no separate associated-fields endpoint for companies).

create_contactA

Create a contact via POST /v1/contacts.

first_name and last_name are required. company_slug accepts a comma-separated string for multi-company associations. Use list_contact_stages to resolve stage_id.

update_contactA

Update a contact via partial POST to /v1/contacts/{slug}.

Only non-None fields are forwarded; omitted fields are preserved server-side.

set_contact_custom_fieldsB

Set custom-field values on a contact without touching any standard fields.

create_jobA

Create a job requisition via POST /v1/jobs.

Seven fields are required: name, company_slug, contact_slug, number_of_openings, currency_id, enable_job_application_form, job_description_text.

job_status codes: 0=Closed, 1=Open, 2=On Hold, 3=Cancelled. job_location_type codes: 0=On-site, 1=Remote, 2=Hybrid.

Use list_hiring_pipelines for hiring_pipeline_id and list_job_custom_fields for custom_fields.

update_jobA

Update a job requisition via partial POST to /v1/jobs/{slug}.

Only non-None fields are forwarded; omitted fields are preserved server-side.

Only the fields most commonly edited are exposed; use the full create_job surface area if you need to change other fields.

set_job_custom_fieldsA

Set custom-field values on a job without touching any standard fields.

create_candidateC

Create a candidate via POST /v1/candidates.

first_name is the only required field. current_organization_slug links the candidate to an existing company record; current_organization is the free-text fallback.

update_candidateB

Update a candidate via partial POST to /v1/candidates/{slug}.

Only non-None fields are forwarded; omitted fields are preserved server-side (the API's required first_name is kept automatically).

set_candidate_custom_fieldsB

Set custom-field values on a candidate without touching any standard fields.

update_meetingA

Update a meeting via partial POST to /v1/meetings/{id}.

Only non-None fields are forwarded; omitted fields are preserved server-side. Attendee and association lists are joined into comma-separated strings to match the create-endpoint shape. description accepts Markdown.

delete_noteA

Delete a note via DELETE /v1/notes/{id}.

Returns a WriteResult with the deleted id for trace.

assign_candidateB

Assign a candidate to a job via POST /v1/candidates/{slug}/assign.

The target job is passed as a query param. No body is needed.

unassign_candidateB

Unassign a candidate from a job via POST /v1/candidates/{slug}/unassign.

update_hiring_stageA

Update a candidate's hiring stage for a specific job.

POST /v1/candidates/{candidate_slug}/hiring-stages/{job_slug}. Use list_hiring_pipeline_stages to resolve status_id for the correct pipeline.

upload_fileA

Upload a file to Recruit CRM via POST /v1/files (multipart).

file_url must be a publicly reachable URL — the Recruit CRM backend fetches the bytes itself. folder is the destination folder name (a sensible default is Uploads). related_to anchors the file to a specific CRM entity.

report_issueA

Build a prefilled GitHub issue URL the user can click to report a bug.

Use when the user wants to flag unexpected behavior in this MCP server (not a Recruit CRM data issue). Returns a URL that opens the public repo's new-issue form pre-populated with the summary, last error, and environment details — the user clicks it and submits in their browser.

Pass any recent exception text via last_error so the report includes triage detail. Long inputs are truncated to fit GitHub's URL length limit.

Prompts

Interactive templates invoked by user choice

NameDescription

No prompts

Resources

Contextual data attached and managed by the client

NameDescription

No resources

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/ebragas/recruitcrm-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server