Recruit CRM MCP Server
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| RECRUITCRM_BASE_URL | No | Base URL for the Recruit CRM API | https://api.recruitcrm.io/v1 |
| RECRUITCRM_API_TOKEN | Yes | Your Recruit CRM API token | |
| RECRUITCRM_TIMEOUT_MS | No | Timeout in milliseconds for API requests | 10000 |
| RECRUITCRM_DEBUG_SCHEMA_ERRORS | No | Enable debug schema error logging | false |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": true
} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| search_candidatesA | Search Recruit CRM candidates and return compact summaries designed for large result sets. Filter by owner_id to scope results to a specific user; resolve user IDs with list_users. Returns candidate slug values that can be used with get_candidate_details or to open Recruit CRM app links like https://app.recruitcrm.io/candidate/{slug}. |
| list_candidatesA | Lists all candidates in the account, most-recently updated first. Returns compact summaries with slug values for candidate detail lookup. Use search_candidates for filtered queries. |
| create_candidateA | Creates one Recruit CRM candidate, then optionally creates up to 10 work history rows and 10 education history rows. Requires at least one of first_name or last_name, plus owner_id and created_by. Checks duplicates by email, contact_number, or linkedin unless allow_duplicate=true; duplicate errors include candidate_slug and candidate_id when available. Resolve user IDs with list_users, currency_id with list_currencies, language_skills with list_languages_and_proficiencies, company slugs with search_companies, and custom field IDs with list_custom_fields. The resume field accepts a publicly accessible HTTPS direct download URL or a base64-encoded file string. File-type custom fields accept a direct download URL only. Returns a compact summary with the candidate slug and partial-success details for history operations. |
| update_candidateA | Updates one existing Recruit CRM candidate by candidate_slug, then optionally creates up to 10 work history rows and 10 education history rows. Requires candidate_slug, updated_by, and at least one of first_name or last_name. Resolve user IDs with list_users, currency_id with list_currencies, language_skills with list_languages_and_proficiencies, company slugs with search_companies, and custom field IDs with list_custom_fields. The resume field accepts a publicly accessible HTTPS direct download URL or a base64-encoded file string. File-type custom fields accept a direct download URL only. Returns a compact summary with the candidate slug and partial-success details for history operations. |
| search_jobsA | Search Recruit CRM jobs and return compact summaries designed for large result sets. Filter by owner_id to scope results to a specific user; resolve user IDs with list_users. Returns slug, company_slug, contact_slug, and hiring_pipeline_id values; use hiring_pipeline_id with list_candidate_hiring_stages for job-specific stage lookup. Slugs can be used to open Recruit CRM app URLs like https://app.recruitcrm.io/job/{slug}, https://app.recruitcrm.io/company/{company_slug}, and https://app.recruitcrm.io/contact/{contact_slug}. |
| list_jobsA | Lists all jobs in the account, most-recently updated first. Returns compact summaries with slug, company_slug, contact_slug, and hiring_pipeline_id. Use search_jobs for filtered queries; use hiring_pipeline_id with list_candidate_hiring_stages for job-specific stage lookup. |
| create_jobA | Creates one Recruit CRM job. Requires name, company_slug, contact_slug, enable_job_application_form, owner_id, and created_by. job_description_text and currency_id are optional per live API verification. Use list_users for user IDs, search_companies or list_companies for company slugs, search_contacts or list_contacts for contact slugs, list_job_statuses for job status IDs, list_currencies for currency_id, list_qualifications for qualification_id, list_teams for collaborator_team_ids, list_candidate_questions for job_questions, list_xml_jobboards for xml_feeds, list_hiring_pipelines for hiring_pipeline_id, and list_custom_fields for entity_type=jobs. Defaults enable_auto_populate_teams to true and show_company_logo to 2. Returns a compact summary with the job slug. |
| update_jobA | Updates one existing Recruit CRM job by job_slug. Requires job_slug, updated_by, and at least one field to update. Use list_users for user IDs, search_companies or list_companies for company slugs, search_contacts or list_contacts for contact slugs, list_job_statuses for job status IDs, list_currencies for currency_id, list_qualifications for qualification_id, list_teams for collaborator_team_ids, list_candidate_questions for job_questions, list_xml_jobboards for xml_feeds, list_hiring_pipelines for hiring_pipeline_id, and list_custom_fields for entity_type=jobs. Returns a compact summary with the job slug. |
| search_companiesA | Search Recruit CRM companies and return compact summaries designed for large result sets. Filter by owner_id to scope results to a specific user; resolve user IDs with list_users. Returns company slug values for Recruit CRM company links like https://app.recruitcrm.io/company/{slug} and contact_slugs values for contact links like https://app.recruitcrm.io/contact/{contact_slug}. |
| list_companiesA | Lists all companies in the account, most-recently updated first. Returns compact summaries with slug and contact_slugs values. Use search_companies for filtered queries. |
| create_companyA | Creates one Recruit CRM company. Requires company_name, owner_id, and created_by. Checks duplicates by company_name unless allow_duplicate=true. Resolve user IDs with list_users and custom field IDs with list_custom_fields for entity_type=companies. Returns a compact summary with the company slug. |
| update_companyA | Updates one existing Recruit CRM company by company_slug. Requires company_slug and updated_by. Resolve user IDs with list_users and custom field IDs with list_custom_fields for entity_type=companies. Returns a compact summary with the company slug. |
| search_contactsA | Search Recruit CRM contacts with filters and return compact summaries for large result sets. Filter by owner_id to scope results to a specific user; resolve user IDs with list_users. At least one real filter is required; sort_by, sort_order, page, exact_search, and include_contact_info do not count independently. |
| list_contactsA | Lists all contacts in the account, most-recently updated first. Returns compact summaries with slug values for contact detail lookup. Use search_contacts for filtered queries. |
| create_contactA | Creates one Recruit CRM contact. Requires first_name, last_name, owner_id, and created_by. Resolve user IDs with list_users, company slugs with search_companies or list_companies, stage IDs with list_contact_stages, and custom field IDs with list_custom_fields for entity_type=contacts. Returns a compact summary with the contact slug. |
| update_contactA | Updates one existing Recruit CRM contact by contact_slug. Requires contact_slug and at least one field to update. Resolve user IDs with list_users, company slugs with search_companies or list_companies, stage IDs with list_contact_stages, and custom field IDs with list_custom_fields for entity_type=contacts. Returns a compact summary with the contact slug. |
| list_usersA | Lists all Recruit CRM users and returns compact summaries of each user's id, first_name, last_name, and status. User IDs from this tool are used as owner_id, created_by, updated_by, attendee_users, and collaborator_user_ids on candidates, jobs, companies, contacts, tasks, meetings, notes, and call logs. Enable include_teams to include team memberships per user; enable include_contact_info to also include email and contact_number. Returns all users in a single response with no pagination. |
| list_teamsA | Lists Recruit CRM teams with MCP-side pagination. By default returns team IDs, names, and user IDs. Pass expand=user to return user summaries; include_user_contact_info=true adds user email, contact_number, and avatar. |
| list_candidate_questionsA | Lists Recruit CRM candidate questions with MCP-side pagination. Returns compact id and question rows for resolving candidate question IDs. |
| list_hiring_pipelinesA | Lists Recruit CRM hiring pipelines with MCP-side pagination. Returns hiring_pipeline_id and name rows for selecting a job hiring pipeline or listing candidate hiring stages. |
| list_languages_and_proficienciesA | Lists Recruit CRM languages with MCP-side pagination and returns the standard proficiency IDs. Use language_id and proficiency_id for candidate language_skills. |
| list_currenciesA | Lists Recruit CRM currencies with MCP-side pagination. Returns currency_id, code, country, currency, and symbol rows for candidate and job currency_id fields. |
| list_qualificationsA | Lists Recruit CRM qualifications with MCP-side pagination. Returns qualification_id and label rows for job qualification_id fields. |
| list_xml_jobboardsA | Lists Recruit CRM XML job boards for jobs. Returns default_xml_feeds and custom_xml_feeds rows with id and label for job xml_feeds. |
| search_hotlistsA | Search Recruit CRM hotlists by related_to_type and optional name/shared filters. related_to_type is required. Does not support owner filtering. Broad searches return compact hotlist summaries with related_count only. When name is provided, results also include related_slugs for follow-up workflows. |
| create_hotlistA | Creates one Recruit CRM hotlist. Requires name, related_to_type, shared (true for team-shared, false for private), and created_by user id. Resolve user IDs with list_users. |
| add_records_to_hotlistA | Adds up to 10 Recruit CRM record slugs to an existing hotlist. Duplicate input slugs are ignored. Returns partial-success details with added_slugs and an errors array for any failed additions. |
| search_tasksA | Search Recruit CRM tasks and return compact summaries designed for large result sets. Filter by owner_id to scope results to a specific user; resolve user IDs with list_users. Returns related_to and related_to_type values that can be used to open related entities in Recruit CRM app URLs like https://app.recruitcrm.io/{related_to_type}/{related_to}. |
| list_task_typesA | Lists Recruit CRM task types, returning compact id/label rows. Use task_type_id in create_task. |
| create_taskA | Creates one Recruit CRM task. Requires task_type_id, title, description, reminder, start_date, owner_id, and created_by. Resolve task type IDs with list_task_types and user IDs with list_users. Description supports basic HTML/rich text. Returns a compact task summary. |
| update_taskA | Updates one existing Recruit CRM task by task_id. Requires task_id, updated_by, and at least one field to update. Resolve task type IDs with list_task_types and user IDs with list_users. Description supports basic HTML/rich text. Returns a compact task summary. |
| search_meetingsA | Search Recruit CRM meetings and return compact summaries designed for large result sets. Filter by owner_id to scope results to a specific user; resolve user IDs with list_users. Returns related_to and related_to_type values that can be used to open related entities in Recruit CRM app URLs like https://app.recruitcrm.io/{related_to_type}/{related_to}. |
| list_meeting_typesA | Lists Recruit CRM meeting types, returning compact id/label rows. Use meeting_type_id in create_meeting. |
| create_meetingA | Creates one Recruit CRM meeting. Requires title, reminder, start_date, end_date, owner_id, and created_by. Resolve meeting type IDs with list_meeting_types and user IDs with list_users. Calendar invites are not sent by default; set do_not_send_calendar_invites to false to send external calendar invites to attendees. Returns a compact meeting summary. |
| update_meetingA | Updates one existing Recruit CRM meeting by meeting_id. Requires meeting_id, updated_by, and at least one field to update. Resolve meeting type IDs with list_meeting_types and user IDs with list_users. Calendar invites are not sent by default; set do_not_send_calendar_invites to false to send external calendar invites to attendees. Returns a compact meeting summary. |
| search_notesA | Search Recruit CRM notes and return compact summaries designed for large result sets. Does not support owner filtering. Returns related_to and related_to_type values that can be used to open related entities in Recruit CRM app URLs like https://app.recruitcrm.io/{related_to_type}/{related_to}. |
| list_note_typesA | Lists Recruit CRM note types, returning compact id/label rows. Use note_type_id in create_note. |
| create_noteA | Creates one Recruit CRM note. Requires note_type_id, description, related_to, related_to_type, and created_by user id. Resolve note type IDs with list_note_types and user IDs with list_users. Description supports basic HTML/rich text. Returns a compact note summary. |
| update_noteA | Updates one existing Recruit CRM note by note_id. Requires note_id, updated_by, and at least one field to update. Resolve note type IDs with list_note_types and user IDs with list_users. Description supports basic HTML/rich text. Returns a compact note summary. |
| search_call_logsA | Search Recruit CRM call logs and return compact summaries designed for large result sets. Does not support owner filtering. Returns related_to and related_to_type values that can be used to open related entities in Recruit CRM app URLs like https://app.recruitcrm.io/{related_to_type}/{related_to}. |
| list_call_typesA | Lists Recruit CRM custom call types, returning compact id/label rows. Use custom_call_type_id in create_call_log. |
| create_call_logA | Creates one Recruit CRM call log. Requires call_type, custom_call_type_id, call_started_on, related_to_type, created_by, and updated_by. Resolve call type IDs with list_call_types and user IDs with list_users. related_to_type must be candidate, contact, or company. Returns a compact call log summary with duration in seconds. |
| update_call_logA | Updates one existing Recruit CRM call log by call_log_id. Requires call_log_id, updated_by, and at least one field to update. Resolve call type IDs with list_call_types and user IDs with list_users. related_to_type must be candidate, contact, or company. Returns a compact call log summary with duration in seconds. |
| get_candidate_detailsA | Fetches full details for up to 10 candidates in parallel by slug. Suitable for retrieving specific candidate records after slug resolution from search_candidates. Not intended for bulk database scans. Returns partial results: failures are reported in the errors array with status_code. |
| get_job_detailsA | Fetches full details for up to 10 Recruit CRM jobs in parallel by slug. Suitable for retrieving specific job records after slug resolution from search_jobs. Returns full Recruit CRM job payloads with partial results: failures are reported in the errors array with status_code. |
| get_company_detailsA | Fetches full details for up to 10 companies in parallel by slug. Suitable for retrieving specific company records after slug resolution from search_companies. Not intended for bulk database scans. Returns partial results: failures are reported in the errors array with status_code. |
| get_contact_detailsA | Fetches full details for up to 10 contacts in parallel by slug. Suitable for retrieving specific contact records after slug resolution from search_contacts. Not intended for bulk database scans. Returns partial results: failures are reported in the errors array with status_code. |
| get_job_assigned_candidatesA | Fetches assigned candidates for one Recruit CRM job and returns compact assignment summaries. Filter by status_id to narrow to a specific hiring stage; resolve stage IDs with list_candidate_hiring_stages (use the job's hiring_pipeline_id for job-specific stages, or 0 for global stages). Returns candidate_slug values for Recruit CRM candidate links like https://app.recruitcrm.io/candidate/{candidate_slug}. |
| list_candidate_hiring_stagesA | Lists Recruit CRM candidate hiring stages for a hiring pipeline, returning compact stage rows for resolving labels to stage IDs. Pass hiring_pipeline_id 0 (default) for the Master Hiring Pipeline; for job-specific stages, use the hiring_pipeline_id returned by search_jobs or list_jobs. Stage IDs are used by get_job_assigned_candidates.status_id and update_candidate_hiring_stage.status_id. |
| list_pitch_stagesA | Lists Recruit CRM pitch pipeline stages with status_id and label values for resolving stage names used by update_candidate_pitch_stage. |
| pitch_candidate_to_contactA | Marks one Recruit CRM candidate as pitched to one contact. Requires candidate_slug, contact_slug, and created_by. Checks existing candidate/contact pitch records unless allow_duplicate=true. This records the pitch in Recruit CRM; the API does not send an email to the candidate or contact. |
| update_candidate_pitch_stageA | Updates the pitch stage for one candidate/contact pitch record. Requires candidate_slug, contact_slug, status_id, stage_date, and updated_by. Resolve status_id with list_pitch_stages. remark is optional text. |
| get_pitch_historyA | Fetches pitch history for one Recruit CRM candidate or contact by slug. Set entity_type to candidate for candidate pitch history, or contact for contact pitch history. Returns compact pitch entries without email, phone, resume, or profile image fields. |
| get_pitched_recordsA | Fetches contacts where a candidate is pitched or candidates pitched to a contact. Set entity_type to candidate to return contacts for a candidate slug, or contact to return candidates for a contact slug. Returns compact records without email, phone, resume, or profile image fields. |
| assign_candidate_to_jobA | Assigns one Recruit CRM candidate to one job at the default Assigned hiring stage. Requires candidate_slug, job_slug, and updated_by. Does not support remarks, explicit stage selection, stage_date, or create_placement; use update_candidate_hiring_stage afterward when a non-default stage or remark is needed. |
| update_candidate_hiring_stageA | Updates one candidate's hiring stage for a specific Recruit CRM job. Requires candidate_slug, job_slug, status_id, stage_date, and updated_by. By default this only changes the hiring stage. When create_placement=true, Recruit CRM also creates a placement record in the dedicated placements section. Resolve status_id with list_candidate_hiring_stages (use hiring_pipeline_id 0 for master stages, or the job's hiring_pipeline_id for job-specific stages). remark supports basic HTML/rich text. |
| list_job_statusesA | Lists Recruit CRM job pipeline statuses (e.g. Open, Closed, On Hold, plus any custom statuses configured for the account). Returns compact rows with id and label for resolving a status name to the numeric job_status_id used in search_jobs.job_status. |
| list_contact_stagesA | Lists Recruit CRM contact pipeline stages (the sales pipeline). Returns compact rows with stage_id and label for resolving a stage name to the numeric stage_id used in create_contact and update_contact. |
| list_off_limit_statusesA | Lists Recruit CRM off-limit statuses configured for the account. Returns compact rows with id, label, sequence_no, and default for resolving status_id values used by the off-limit mark tools. |
| mark_candidate_off_limitA | Marks up to 25 Recruit CRM candidates as off-limit. Requires candidate_slugs, status_id, and end_date in DD-MM-YYYY format; reason is optional. Returns the updated slug list, status_id, end_date, reason, and API remark. |
| mark_contact_off_limitA | Marks up to 25 Recruit CRM contacts as off-limit. Requires contact_slugs, status_id, and end_date in DD-MM-YYYY format; reason is optional. Returns the updated slug list, status_id, end_date, reason, and API remark. |
| mark_company_off_limitA | Marks up to 25 Recruit CRM companies as off-limit. Requires company_slugs, status_id, end_date in DD-MM-YYYY format, mark_contact_off_limit, and mark_candidate_off_limit; reason is optional. The mark_contact_off_limit and mark_candidate_off_limit booleans control whether Recruit CRM also marks related records off-limit. Returns the updated slug list, status_id, end_date, reason, and API remark. |
| mark_records_availableA | Marks Recruit CRM candidates, contacts, or companies as available, which removes their off-limit state. Requires record_type and up to 25 slugs. For record_type=company, mark_contact_available and mark_candidate_available are required and control whether Recruit CRM also marks related contacts or candidates available. Returns record_type, updated slugs, requested_count, cascade flags when returned by the API, and API remark. |
| get_candidate_job_assignment_hiring_stage_historyA | Fetch one candidate's job assignment hiring stage history by candidate slug. Returns compact entries with job, company, stage, remark, and update metadata. |
| list_custom_fieldsA | List curated custom field metadata for a specific entity type (candidates, contacts, companies, jobs, deals). Returns searchable fields by default; set include_non_searchable=true to also include non-searchable types. |
| get_custom_field_detailsA | Fetch curated details for one custom field by field_id and entity_type, including dropdown or multiselect option values. |
| get_custom_field_dependenciesA | Fetches parent-child dependency relationships for custom fields of a given entity type (candidates, contacts, companies, jobs, deals). Optionally narrow to a specific field's subtree via field_id (pass the parent or child field_id). When setting a child custom field, the parent field_id and its value must also be included in the custom_fields array. |
| prepare_client_briefA | Prepares a client/account briefing for recruiters before a client call, client meeting, hiring-manager check-in, account review, business-development outreach, or client follow-up. Produces talking points, account health, open jobs, primary and secondary client contacts, assigned-candidate pipeline status, client-feedback blockers, candidates waiting on feedback, recent notes / meetings / tasks / call logs, pitched candidates for the contact, relationship risks, and recommended follow-ups. Inputs are exact Recruit CRM contact_slug or company_slug; display names are not accepted as slug values. Returns summaries and recommended follow-ups only. |
| analyze_job_pipelineA | Diagnoses a single Recruit CRM job's hiring pipeline: stage-by-stage candidate distribution, days_in_current_stage per active candidate (sourced from assignment-level stage_date — ~7 API calls), idle and at-risk candidates, bottleneck stage verdict, recent notes / meetings / tasks tied to the job, and suggested next actions. Set include_time_metrics=true to add time-to-hire, time-to-stage, and time-to-first-action metrics (fetches per-candidate history for capped active and Placed candidates, typically +25–55 extra calls). Requires a job_slug; resolve from search_jobs if only a job name is available. Candidate slugs in the response can be linked as https://app.recruitcrm.io/candidate/{candidate_slug}. Call logs are not included because the Recruit CRM API does not support filtering call logs by job. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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/Workforce-Cloud-Tech/mcp-recruitcrm'
If you have feedback or need assistance with the MCP directory API, please join our Discord server