MCP App Store
by KeenEthics

Overview

Work with your Recruit CRM data directly from ChatGPT. Search, analyze, create, and update candidates, jobs, companies, contacts, tasks, meetings, notes, call logs, hotlists, hiring stages, pitch activity, and custom fields. Prepare client briefs, analyze job pipelines, assign candidates to jobs, update hiring stages, log recruiting activity, create follow-up tasks, and review account details before meetings. Use it for quick CRM updates or deeper recruiting workflow management, with answers and actions based on the records in your Recruit CRM account.

Tools

add_records_to_hotlist

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

analyze_job_pipeline

ChatGPT
Diagnoses a single Recruit CRM job's hiring pipeline: stage-by-stage candidate distribution, days_in_current_stage per active candidate, 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); with it, days_in_current_stage counts from when the candidate entered the current stage rather than from the last remark edit, and time-to-stage counts only the first arrival at each stage. The recent-activity window starts 30 days before today in the user's time zone. History timestamps are save times, so a manually back-dated stage date is not reflected in the time metrics. Requires a job_slug; resolve from search_jobs if only a job name is available. Candidate slugs can be linked as https://app.recruitcrm.io/v1/candidate/{candidate_slug}. Call logs are not included because the Recruit CRM API cannot filter call logs by job.

assign_candidate_to_job

ChatGPT
Assigns one candidate to one job at the default Assigned hiring stage. Requires candidate_slug and job_slug; updated_by defaults to the authenticated user if omitted. Does not accept remarks, stage selection, stage_date, or create_placement; use update_candidate_hiring_stage afterward.

count_candidates

ChatGPT
Returns the total number of Recruit CRM candidate records matching the given filters without fetching any records. All parameters are optional — omit all to count the full candidate database. Accepts the same filter_search_list, boolean_keyword, boolean_search_scopes, and off_limit_behavior as search_candidates. off_limit_behavior defaults to exclusion, so the count may be lower than expected because off-limit candidates are excluded; retry with off_limit_behavior=inclusion/bypass to include them. To count candidates with zero job assignments (the in-app All Unassigned dashboard total), add the Assignment Status filter: searchField assignment_exists with filterType no and no value; with that filter present, off-limit candidates are INCLUDED by default to match the in-app page — pass off_limit_behavior explicitly to override.

count_companies

ChatGPT
Returns the total number of Recruit CRM company records matching the given filters without fetching any records. All parameters are optional — omit all to count the full company database. Accepts the same filter_search_list, boolean_keyword, boolean_search_scopes, and off_limit_behavior as search_companies. off_limit_behavior defaults to exclusion, so the count may be lower than expected because off-limit companies are excluded; retry with off_limit_behavior=inclusion/bypass to include them.

count_contacts

ChatGPT
Returns the total number of Recruit CRM contact records matching the given filters without fetching any records. All parameters are optional — omit all to count the full contact database. Accepts the same filter_search_list, boolean_keyword, boolean_search_scopes, and off_limit_behavior as search_contacts. off_limit_behavior defaults to exclusion, so the count may be lower than expected because off-limit contacts are excluded; retry with off_limit_behavior=inclusion/bypass to include them.

count_jobs

ChatGPT
Returns the total number of Recruit CRM job records matching the given filters without fetching any records. All parameters are optional — omit all to count the full job database. Accepts filter_search_list, boolean_keyword, boolean_search_scopes, and off_limit_behavior as filters.

create_call_log

ChatGPT
Creates one Recruit CRM call log. Requires call_type, call_started_on, related_to_type, and related_to. Optional: custom_call_type_id, created_by, and updated_by (created_by and updated_by default to the authenticated user). Resolve call type IDs with list_call_types and user IDs with list_users. related_to_type must be candidate, contact, or company. To link the call log to jobs or deals (or additional candidates, contacts, or companies), use associated_jobs, associated_deals, associated_candidates, associated_contacts, and associated_companies. An identical call log created moments earlier is returned instead of duplicated unless allow_duplicate=true. Returns a compact call log summary with duration in seconds.

create_candidate

ChatGPT
Creates one Recruit CRM candidate with optional work and education history rows (max 10 each). At least one of first_name or last_name is required; all other fields are optional. owner_id and created_by default to the authenticated user when omitted. Performs duplicate checks on email, contact_number, and linkedin unless allow_duplicate=true. Resolve user IDs with list_users.

create_company

ChatGPT
Creates one Recruit CRM company. Only company_name is required; all other fields are optional. owner_id and created_by default to the authenticated user when omitted. Performs duplicate check on company_name unless allow_duplicate=true. Resolve user IDs with list_users.

create_contact

ChatGPT
Creates one Recruit CRM contact. At least one of first_name or last_name is required; all other fields are optional. owner_id and created_by default to the authenticated user when omitted. Performs duplicate checks on email, contact_number, and linkedin unless allow_duplicate=true. Resolve user IDs with list_users and contact stage IDs with list_contact_stages.

create_hotlist

ChatGPT
Creates one Recruit CRM hotlist. Requires name, related_to_type, and shared (1 for team-shared, 0 for private); created_by defaults to the authenticated user if omitted. Resolve user IDs with list_users.

create_job

ChatGPT
Creates one Recruit CRM job. Requires name and company_slug; all other fields are optional. contact_slug and enable_job_application_form are optional, and owner_id and created_by default to the authenticated user when omitted. Resolve user IDs with list_users, job status IDs with list_job_statuses, and hiring pipeline IDs with list_hiring_pipelines. An identical job created moments earlier is returned instead of duplicated unless allow_duplicate=true.

create_meeting

ChatGPT
Creates one Recruit CRM meeting. Requires title, reminder, start_date, and end_date. Optional: owner_id and created_by (both default to the authenticated user). 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. An identical meeting created moments earlier is returned instead of duplicated unless allow_duplicate=true. Returns a compact meeting summary.

create_note

ChatGPT
Creates one Recruit CRM note. Requires description, related_to, and related_to_type. Optional: note_type_id and created_by (created_by defaults to the authenticated user). Resolve note type IDs with list_note_types and user IDs with list_users. Description supports basic HTML/rich text. An identical note created moments earlier is returned instead of duplicated unless allow_duplicate=true. Returns a compact note summary.

create_task

ChatGPT
Creates one Recruit CRM task. Requires title, reminder, and start_date. Optional: task_type_id, description, owner_id, and created_by (owner_id and created_by default to the authenticated user). Resolve task type IDs with list_task_types and user IDs with list_users. Description supports basic HTML/rich text. An identical task created moments earlier is returned instead of duplicated unless allow_duplicate=true. Returns a compact task summary.

enrich_email

ChatGPT
Finds and writes the email address for one Recruit CRM candidate or contact using paid data-enrichment credits (candidate personal email = 3 credits, contact work email = 1 credit, consumed only when a value is written). Requires entity_type (candidate or contact) and exactly one entity_slug — resolve slugs with search_candidates or search_contacts; bulk enrichment is not supported. Runs only when the target field is empty. status=completed means the value was written to the record and credits were consumed. status=in_progress means an extended background search is running: the record updates automatically, no credits are consumed yet, and there is nothing to poll — check the record again later instead of retrying. Blocked outcomes (feature disabled, missing permission, terms not accepted, field already populated, missing identity data, insufficient credits) return a status and message with zero credits consumed; relay the message to the user.

enrich_phone

ChatGPT
Finds and writes the phone number for one Recruit CRM candidate or contact using paid data-enrichment credits (4 credits, consumed only when a value is written). Requires entity_type (candidate or contact) and exactly one entity_slug — resolve slugs with search_candidates or search_contacts; bulk enrichment is not supported. Runs only when the target field is empty. status=completed means the value was written to the record and credits were consumed. status=in_progress means an extended background search is running: the record updates automatically, no credits are consumed yet, and there is nothing to poll — check the record again later instead of retrying. Blocked outcomes (feature disabled, missing permission, terms not accepted, field already populated, missing identity data, insufficient credits) return a status and message with zero credits consumed; relay the message to the user.

execute_tool

ChatGPT
Executes a specific internal tool discovered from search_tools. Call get_tool_schema first to learn required arguments. Arguments are validated server-side against the target tool JSON schema before execution.

get_advanced_search_field_details

ChatGPT
Get detailed advanced-search metadata for one field identified by entity_type, group_type, and field. Returns supported filter operators, per-operator filter_value shape hints, value_resolver_tool, and an example filter object for filter_search_list. Combine multiple example filters using group_filter_join_operator within a group and group_join_operator between groups (default AND).

get_candidate_details

ChatGPT
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_candidate_job_assignment_hiring_stage_history

ChatGPT
Fetches a candidate's job assignment hiring stage history by candidate slug. Returns compact entries with job, company, stage, remark, and update metadata. Entries are snapshots of the assignment, newest first: a new entry is also written when only the remark or stage date changes, so consecutive entries with the same stage are one stay in that stage and its entry time is the oldest of them. updated_on is when each change was saved, as an ISO 8601 timestamp in UTC; it is not the user-entered stage date.

get_company_details

ChatGPT
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_details

ChatGPT
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_current_user

ChatGPT
Returns the authenticated Recruit CRM user and their account: user id, name, email, role, and the account id, account name, and account owner. Also returns the user's configured time_zone (IANA name) and utc_offset; read them before calling date-filtered tools and build day boundaries for relative dates such as "last week" or "this month" in that zone. Use this to answer who the current user is or which account they belong to.

get_custom_field_dependencies

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

get_custom_field_details

ChatGPT
Fetch curated details for one custom field by field_id and entity_type, including dropdown or multiselect option values. Set for_advanced_search=true to return advanced-search filter operator names for search_* filter_search_list.

get_job_assigned_candidates

ChatGPT
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. Each row's stage_date is the date the candidate entered their current hiring stage and updated_on is the last edit to the assignment, both ISO 8601 timestamps in UTC.

get_job_details

ChatGPT
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_off_limit_status

ChatGPT
Returns the current off-limit status (status label, reason, and end date) of up to 25 candidate, contact, or company records identified by slug. Slugs that do not resolve to an existing record are listed in not_found_slugs.

get_pitch_history

ChatGPT
Fetches pitch history for one Recruit CRM candidate or contact by slug using entity_type candidate or contact. Returns compact pitch entries with updated_by, without created_by, email, phone, resume, or profile image fields.

get_pitched_records

ChatGPT
Fetches contacts where a candidate is pitched or candidates pitched to a contact. Set entity_type to candidate or contact. Returns compact records without email, phone, resume, or profile image fields.

get_search_columns

ChatGPT
Returns the searchable column metadata for an entity type (candidates, companies, contacts, or jobs) — the same source the RecruitCRM webapp uses to populate search filter dropdowns. Each column entry includes: field (the key to use in filter expressions), label (display name), type (text/number/dropdown/multiselect/date/checkbox), filter_type (the operator such as is/contains/range/and_search), is_custom_field (true for user-defined custom fields), and options (pre-loaded dropdown values for dropdown and multiselect fields, e.g. industry names, job statuses, employment types). Use this tool before building filter search queries to discover which fields are searchable and what valid option ids to use for dropdown filters.

get_tool_schema

ChatGPT
Returns the full description, input JSON schema, output JSON schema (when defined), and MCP hints for one internal tool discovered via search_tools. Call this before execute_tool to learn required arguments and response shape. When a task may require multiple tool calls, call this for every candidate tool you discovered up front, before executing any of them, so you eagerly understand the full set of inputs and outputs and can prefetch all information needed to plan the complete sequence of calls.

list_advanced_search_fields

ChatGPT
List searchable advanced-search fields for candidates, companies, contacts, jobs, or assigned_candidates (candidate-job assignments — the catalog behind search_assigned_candidates). Returns group_type, field, field_type, supported_filter_types, filter_types_requiring_value, and value_resolver_tool hints (list_search_users, list_search_industries, get_custom_field_details, etc.) naming the tool that returns valid filter values for each field. Includes activity, cross-entity, and candidate work/education fields by default. The full field catalog can be large, so results are paginated (page, limit; max 500 per page, default 100) — check has_more and total_count to page through the rest. Use with get_advanced_search_field_details for value-shape examples.

list_assigned_candidates

ChatGPT
List all Recruit CRM candidate-job assignments via unfiltered advanced search — the "All Assigned" dashboard view, one row per candidate-job assignment. Returns assignment-row summaries sorted by updatedon desc by default. Use search_assigned_candidates when filter criteria are needed. Results are account-wide and always include off-limit candidates' rows. Set include_contact_info=true to also return email, contact_number, and linkedin. Max 50 rows per page.

list_boolean_search_scopes

ChatGPT
List boolean-search scopes for candidates, companies, contacts, jobs, or assigned_candidates. Workflow: list scopes for the entity, build boolean_keyword (uppercase AND/OR/NOT, quotes, wildcards, parentheses — see boolean_keyword param on search_), validate with validate_boolean_search, then call search_ with boolean_keyword and boolean_search_scopes.

list_call_types

ChatGPT
Lists Recruit CRM custom call types, returning compact id/label rows. Use custom_call_type_id in create_call_log.

list_candidate_hiring_stages

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

list_candidate_hotlists

ChatGPT
List all candidate hotlists via unfiltered advanced search. Returns hotlist catalog entries (id, name, metadata). Use search_candidate_hotlists when filtering by name.

list_candidate_questions

ChatGPT
Lists Recruit CRM candidate questions with MCP-side pagination. Returns compact id and question rows for resolving candidate question IDs.

list_candidates

ChatGPT
List all Recruit CRM candidates via unfiltered advanced search. Returns compact summaries sorted by updatedon desc by default. Use search_candidates when filter criteria are needed. Set include_contact_info=true to also return email, contact_number, and linkedin.

list_companies

ChatGPT
List all Recruit CRM companies via unfiltered advanced search. Returns compact summaries sorted by updatedon desc by default. Use search_companies when filter criteria are needed.

list_company_hotlists

ChatGPT
List all company hotlists via unfiltered advanced search. Returns hotlist catalog entries (id, name, metadata). Use search_company_hotlists when filtering by name.

list_contact_hotlists

ChatGPT
List all contact hotlists via unfiltered advanced search. Returns hotlist catalog entries (id, name, metadata). Use search_contact_hotlists when filtering by name.

list_contact_stages

ChatGPT
Lists Recruit CRM contact sales pipeline stages. Returns stage_id and label rows for create_contact and update_contact.

list_contacts

ChatGPT
List all Recruit CRM contacts via unfiltered advanced search. Returns compact summaries sorted by updatedon desc by default. Use search_contacts when filter criteria are needed. Set include_contact_info=true to also return email, contact_number, and linkedin.

list_currencies

ChatGPT
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_custom_fields

ChatGPT
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. Set for_advanced_search=true to return advanced-search filter operator names (is, contains, radius_search, etc.) for use in search_* filter_search_list.

list_employment_types

ChatGPT
Lists Recruit CRM employment types with MCP-side pagination. Returns employment_type_id and label rows for resolving employment_type in candidate work-history advanced-search filters.

list_hiring_pipelines

ChatGPT
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_industries

ChatGPT
Lists Recruit CRM industries (default and custom) with MCP-side pagination. Returns industry_id and name rows for resolving industry_id in candidate work-history and company industry_id advanced-search filters.

list_job_hotlists

ChatGPT
List all job hotlists via unfiltered advanced search. Returns hotlist catalog entries (id, name, metadata). Use search_job_hotlists when filtering by name.

list_job_statuses

ChatGPT
Lists Recruit CRM job pipeline statuses such as Open, Closed, On Hold, and custom statuses. Returns id and label rows for resolving job_status_id in search_jobs and create_job.

list_jobs

ChatGPT
List all Recruit CRM jobs via unfiltered advanced search. Returns compact summaries sorted by updatedon desc by default. Use search_jobs when filter criteria are needed.

list_languages_and_proficiencies

ChatGPT
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_meeting_types

ChatGPT
Lists Recruit CRM meeting types, returning compact id/label rows. Use meeting_type_id in create_meeting.

list_note_types

ChatGPT
Lists Recruit CRM note types, returning compact id/label rows. Use note_type_id in create_note.

list_off_limit_statuses

ChatGPT
Lists Recruit CRM off-limit statuses. Returns id, label, sequence_no, and default rows for resolving status_id in mark-off-limit tools.

list_pitch_stages

ChatGPT
Lists Recruit CRM pitch pipeline stages with status_id and label values for resolving stage names used by update_candidate_pitch_stage.

list_qualifications

ChatGPT
Lists Recruit CRM qualifications with MCP-side pagination. Returns qualification_id and label rows for job qualification_id fields.

list_search_call_types

ChatGPT
Returns all call log types available in the account — the same source the RecruitCRM webapp uses to populate the call type filter dropdown in advanced search. Use the returned ids as filter values when building call log type filters.

list_search_contact_stages

ChatGPT
Returns all contact stages — the same source the RecruitCRM webapp uses to populate the contact stage filter dropdown in advanced search. Use the returned ids as filter values when building contact stage filters.

list_search_currencies

ChatGPT
Returns all currencies — the same source the RecruitCRM webapp uses to populate the currency filter dropdown in advanced search. Each currency entry includes id, code (ISO 4217), symbol, name, and country. Use the returned ids as filter values when building currency filters.

list_search_employment_types

ChatGPT
Returns all employment types — the same source the RecruitCRM webapp uses to populate the employment type filter dropdown in advanced search. Each entry includes id and label. Use the returned ids as filter values when building candidate employment type filters.

list_search_genders

ChatGPT
Returns all gender types available in the account — the same source the RecruitCRM webapp uses to populate the gender filter dropdown in advanced search. Use the returned ids as filter values when building candidate gender filters.

list_search_hiring_pipelines

ChatGPT
Returns all hiring pipelines — the same source the RecruitCRM webapp uses to populate the hiring pipeline filter dropdown in advanced search. Each entry includes id, name, and primary (true for the master pipeline). Use the returned ids as filter values when building hiring pipeline filters.

list_search_hotlists

ChatGPT
Returns all hotlists for a given entity type — the same source the RecruitCRM webapp uses to populate the hotlist filter dropdown in advanced search. Each hotlist entry includes id, name, entity_name, shared (true/false), and owned_by_user_id. Use the returned ids as filter values when building hotlist membership filters.

list_search_industries

ChatGPT
Returns all industries — the same source the RecruitCRM webapp uses to populate the industry filter dropdown in advanced search. Each entry includes id, label, and is_custom (true for account-specific custom industries). Use the returned ids as filter values when building candidate or company industry filters.

list_search_job_statuses

ChatGPT
Returns all job statuses available for the account — the same source the RecruitCRM webapp uses to populate the job status filter dropdown in advanced search. Use the returned ids as filter values when building job status filters.

list_search_meeting_types

ChatGPT
Returns all meeting types available in the account — the same source the RecruitCRM webapp uses to populate the meeting type filter dropdown in advanced search. Use the returned ids as filter values when building meeting type filters.

list_search_note_types

ChatGPT
Returns all note types available in the account — the same source the RecruitCRM webapp uses to populate the note type filter dropdown in advanced search. Use the returned ids as filter values when building note type filters.

list_search_off_limit_statuses

ChatGPT
Returns all off-limit statuses — the same source the RecruitCRM webapp uses to populate the off-limit status filter dropdown in advanced search. Use the returned ids as filter values when building off-limit status filters.

list_search_qualifications

ChatGPT
Returns all qualifications — the same source the RecruitCRM webapp uses to populate the qualification filter dropdown in job advanced search. Use the returned ids as filter values when building the job qualification filter.

list_search_task_types

ChatGPT
Returns all task types available in the account — the same source the RecruitCRM webapp uses to populate the task type filter dropdown in advanced search. Use the returned ids as filter values when building task type filters.

list_search_users

ChatGPT
Returns all account users and teams in a single call — the same source the RecruitCRM webapp uses to populate the owner and team filter dropdowns in advanced search. Users include id, name, and email. Teams include id and name. Use user ids as filter values when building owner or assigned-user filters, and team ids when building team filters.

list_search_xml_jobboards

ChatGPT
Returns all XML job boards — the same source the RecruitCRM webapp uses to populate the job board filter dropdown in advanced search. Each entry includes id, title, and is_default (true for platform-wide default boards). Use the returned ids as filter values when building job board filters.

list_task_types

ChatGPT
Lists Recruit CRM task types, returning compact id/label rows. Use task_type_id in create_task.

list_teams

ChatGPT
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_users

ChatGPT
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_xml_jobboards

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

mark_candidate_off_limit

ChatGPT
Marks up to 25 candidates off-limit. Requires candidate_slugs, status_id from list_off_limit_statuses, and end_date in YYYY-MM-DD format. reason is optional.

mark_company_off_limit

ChatGPT
Marks up to 25 companies off-limit. Requires company_slugs, status_id from list_off_limit_statuses, end_date in YYYY-MM-DD format, and cascade booleans mark_contact_off_limit and mark_candidate_off_limit. reason is optional.

mark_contact_off_limit

ChatGPT
Marks up to 25 contacts off-limit. Requires contact_slugs, status_id from list_off_limit_statuses, and end_date in YYYY-MM-DD format. reason is optional.

mark_records_available

ChatGPT
Removes off-limit state from up to 25 candidate, contact, or company records. For record_type=company, both mark_contact_available and mark_candidate_available are required.

pitch_candidate_to_contact

ChatGPT
Marks one Recruit CRM candidate as pitched to one contact. Requires candidate_slug and contact_slug; created_by defaults to the authenticated user if omitted. Checks existing candidate/contact pitch records unless allow_duplicate=true. Records the pitch in Recruit CRM; the API does not send email.

prepare_client_brief

ChatGPT
Prepares a client/account briefing before a client call, hiring-manager check-in, account review, or business-development outreach. Produces account health, open jobs with pipeline summaries, primary and related client contacts, candidates waiting on client feedback, recent activity (notes/meetings/tasks/calls), pitched candidates for the contact, talking points, and recommended follow-ups. Provide an exact Recruit CRM contact_slug, company_slug, or both; display names are not accepted. Returns summaries and recommended follow-ups only.

search_assigned_candidates

ChatGPT
Search Recruit CRM candidate-job assignments via advanced search — the "All Assigned" dashboard view. Returns ONE row per candidate-job assignment, so a candidate assigned to 3 jobs produces 3 rows, each carrying that assignment's job, job company, hiring stage, and remark. Use this (not search_candidates) whenever a query is about a specific job, a hiring stage, a placement, or "assigned to X". Requires at least one real filter in filter_search_list or boolean_keyword; use list_assigned_candidates to browse all assignments with pagination and sort only. Discover searchable fields with list_advanced_search_fields and get_advanced_search_field_details (entity_type=assigned_candidates) — the catalog includes every candidate field plus job fields, hiring stage (candidatestatusid), stage date, assignment remark, and off_limit_status; validate with validate_filter_search. Filter dropdown values: hiring stage ids via list_candidate_hiring_stages; job status, owners/teams, and off-limit statuses via the same list_search_* tools as candidate search. Boolean search scopes: list_boolean_search_scopes (entity, notes, call_logs, tasks, meetings). Results are account-wide and always include off-limit candidates' rows, matching the in-app page. total_count is an assignment-row count, not a distinct-candidate count. Date filters take epoch seconds (or a relative preset such as this_week or last_30) and are matched on whole calendar days in the user's configured time zone: read time_zone from get_current_user and build day boundaries in that zone; last_30 covers 30 calendar days ending today. The stage_date filter matches the date a candidate entered their CURRENT hiring stage, so it cannot count everyone who passed through a stage during a period; use get_candidate_job_assignment_hiring_stage_history for stage transitions. Each row returns stage_date (current hiring stage date) and updated_on (last edit to the assignment), both epoch seconds. Returns candidate slug values for get_candidate_details. Set include_contact_info=true to also return email, contact_number, and linkedin. Max 50 rows per page.

search_call_logs

ChatGPT
Search Recruit CRM call logs and return compact summaries designed for large result sets. Does not support owner filtering. Must be filtered by a related entity: related_to (slug) and related_to_type (candidate, contact, or company) are both required. Each summary also lists associated_candidates, associated_contacts, associated_companies, associated_jobs, and associated_deals as slugs of every entity linked to the call log (including jobs and deals). 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/v1/{related_to_type}/{related_to}.

search_candidate_hotlists

ChatGPT
Search candidate hotlists by name via advanced search. Requires name. Returns hotlist catalog entries (id, name, metadata). Use list_candidate_hotlists to browse all hotlists without a name filter.

search_candidates

ChatGPT
Search Recruit CRM candidate records via advanced search and return compact summaries designed for large result sets. Requires at least one real filter in filter_search_list or boolean_keyword. Use list_candidates to browse all candidates with pagination and sort only. Discover searchable fields with list_advanced_search_fields and get_advanced_search_field_details; build filter_search_list and validate with validate_filter_search. Also use get_search_columns (entity_type=candidates) for searchable fields with inline dropdown options. Filter dropdown values: list_search_genders, list_search_qualifications, list_search_industries, list_search_employment_types, list_search_call_types, list_search_note_types, list_search_meeting_types, list_search_task_types, list_search_off_limit_statuses, list_search_currencies, list_search_users (owners/teams), list_search_hotlists (entity_type=candidates). Boolean search: list_boolean_search_scopes, build boolean_keyword (uppercase AND/OR/NOT — see param description), validate_boolean_search, then pass boolean_keyword and boolean_search_scopes. off_limit_behavior supported — defaults to exclusion, so a missing result may be off-limit rather than nonexistent; retry with off_limit_behavior=inclusion/bypass before reporting a candidate as nonexistent (get_off_limit_status can confirm a specific slug once known). To find candidates with zero job assignments (the in-app All Unassigned view), add the Assignment Status filter: searchField assignment_exists with filterType no and no value (discover it via list_advanced_search_fields entity_type=candidates); with that filter present, off-limit candidates are INCLUDED by default to match the in-app page — pass off_limit_behavior explicitly to override. Returns candidate slug values for get_candidate_details or Recruit CRM links like https://app.recruitcrm.io/v1/candidate/{slug}. Set include_contact_info=true to also return email, contact_number, and linkedin.

search_companies

ChatGPT
Search Recruit CRM company records via advanced search and return compact summaries designed for large result sets. Use list_companies to browse all companies with pagination and sort only. Discover searchable fields with list_advanced_search_fields and get_advanced_search_field_details; build filter_search_list and validate with validate_filter_search. Also use get_search_columns (entity_type=companies) for searchable fields with inline dropdown options. Filter dropdown values: list_search_industries, list_search_off_limit_statuses, list_search_users (owners/teams), list_search_hotlists (entity_type=companies). Boolean search: list_boolean_search_scopes, build boolean_keyword (uppercase AND/OR/NOT — see param description), validate_boolean_search, then pass boolean_keyword and boolean_search_scopes. off_limit_behavior supported — defaults to exclusion, so a missing result may be off-limit rather than nonexistent; retry with off_limit_behavior=inclusion/bypass before reporting a company as nonexistent (get_off_limit_status can confirm a specific slug once known). Returns company slug values for get_company_details or Recruit CRM links like https://app.recruitcrm.io/v1/company/{slug}.

search_company_hotlists

ChatGPT
Search company hotlists by name via advanced search. Requires name. Returns hotlist catalog entries (id, name, metadata). Use list_company_hotlists to browse all hotlists without a name filter.

search_contact_hotlists

ChatGPT
Search contact hotlists by name via advanced search. Requires name. Returns hotlist catalog entries (id, name, metadata). Use list_contact_hotlists to browse all hotlists without a name filter.

search_contacts

ChatGPT
Search Recruit CRM contact records via advanced search and return compact summaries designed for large result sets. Requires at least one real filter in filter_search_list or boolean_keyword. Use list_contacts to browse all contacts with pagination and sort only. Discover searchable fields with list_advanced_search_fields and get_advanced_search_field_details; build filter_search_list and validate with validate_filter_search. Also use get_search_columns (entity_type=contacts) for searchable fields with inline dropdown options. Filter dropdown values: list_search_contact_stages, list_search_call_types, list_search_note_types, list_search_meeting_types, list_search_task_types, list_search_off_limit_statuses, list_search_users (owners/teams), list_search_hotlists (entity_type=contacts). Boolean search: list_boolean_search_scopes, build boolean_keyword (uppercase AND/OR/NOT — see param description), validate_boolean_search, then pass boolean_keyword and boolean_search_scopes. off_limit_behavior supported — defaults to exclusion, so a missing result may be off-limit rather than nonexistent; retry with off_limit_behavior=inclusion/bypass before reporting a contact as nonexistent (get_off_limit_status can confirm a specific slug once known). Returns contact slug values for get_contact_details or Recruit CRM links like https://app.recruitcrm.io/v1/contact/{slug}. Set include_contact_info=true to also return email, contact_number, and linkedin.

search_entity

ChatGPT
Quick-search across a single Recruit CRM entity type (candidates, contacts, companies, jobs, deals) by name or title. Returns slug and display_name for each match. Use slugs with get_*_details or as association filter values in filter_search_list.

search_hotlists

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

search_job_hotlists

ChatGPT
Search job hotlists by name via advanced search. Requires name. Returns hotlist catalog entries (id, name, metadata). Use list_job_hotlists to browse all hotlists without a name filter.

search_jobs

ChatGPT
Search Recruit CRM job records via advanced search and return compact summaries designed for large result sets. Use list_jobs to browse all jobs with pagination and sort only. Discover searchable fields with list_advanced_search_fields and get_advanced_search_field_details; build filter_search_list and validate with validate_filter_search. Also use get_search_columns (entity_type=jobs) for searchable fields with inline dropdown options. Filter dropdown values: list_search_job_statuses, list_search_currencies, list_search_hiring_pipelines, list_search_xml_jobboards, list_search_users (owners/teams), list_search_hotlists (entity_type=jobs). Boolean search: list_boolean_search_scopes, build boolean_keyword (uppercase AND/OR/NOT — see param description), validate_boolean_search, then pass boolean_keyword and boolean_search_scopes. Returns slug, company_slug, contact_slug, and hiring_pipeline_id for get_job_details, list_candidate_hiring_stages, and Recruit CRM links.

search_meetings

ChatGPT
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/v1/{related_to_type}/{related_to}.

search_notes

ChatGPT
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/v1/{related_to_type}/{related_to}.

search_places

ChatGPT
Searches for real-world places and addresses matching a free-text query, such as a city, region, postal code, or street address. Returns place candidates with a stable place_id and full location detail. Use a result's description as the address, place_id as placeId, and the full result object as fulldata to build the value for a radius_search or travel_time_search advanced-search filter on an address field — see get_advanced_search_field_details for the exact filter value shape.

search_tasks

ChatGPT
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/v1/{related_to_type}/{related_to}.

search_tools

ChatGPT
Searches or browses the internal tool catalog. Provide keywords to search by relevance, or leave query blank to browse alphabetically. Use page for pagination in either mode. Returns matches (name and description), pagination metadata, and response-level schemaPath (get_tool_schema) and executionPath (execute_tool). Workflow: search_tools → get_tool_schema(toolName from a match) → execute_tool. When a task may require multiple tool calls, discover the relevant tools up front: search broadly (and across pages) to identify every tool the task could need, then call get_tool_schema for each candidate to eagerly understand their inputs and outputs before executing. Prefetch all schemas and information needed to complete the task so you can plan the full sequence of calls rather than discovering tools one at a time.

update_call_log

ChatGPT
Updates one existing Recruit CRM call log by call_log_id. Requires call_log_id and at least one field to update; updated_by defaults to the authenticated user if omitted. Resolve call type IDs with list_call_types and user IDs with list_users. related_to_type must be candidate, contact, or company. To link the call log to jobs or deals (or additional candidates, contacts, or companies), use associated_jobs, associated_deals, associated_candidates, associated_contacts, and associated_companies. Returns a compact call log summary with duration in seconds.

update_candidate

ChatGPT
Updates one Recruit CRM candidate by candidate_slug. Provide at least one field to update; updated_by defaults to the authenticated user if omitted. Optional work_history and education_history rows (max 10 each) are created after the update. Resolve user IDs with list_users.

update_candidate_hiring_stage

ChatGPT
Updates a candidate's hiring stage for a specific job. Requires candidate_slug, job_slug, and status_id; stage_date defaults to now and updated_by to the authenticated user if omitted. Set create_placement=true to also create a placement record. Resolve status_id with list_candidate_hiring_stages.

update_candidate_pitch_stage

ChatGPT
Updates the pitch stage for one candidate/contact pitch record. Requires candidate_slug, contact_slug, and status_id from list_pitch_stages; stage_date defaults to now and updated_by to the authenticated user if omitted. remark is optional text.

update_company

ChatGPT
Updates one Recruit CRM company by company_slug. Requires at least one field to update besides company_slug; updated_by defaults to the authenticated user if omitted. Resolve user IDs with list_users.

update_contact

ChatGPT
Updates one Recruit CRM contact by contact_slug. Provide at least one field to update. Resolve user IDs with list_users and contact stage IDs with list_contact_stages.

update_job

ChatGPT
Updates one Recruit CRM job by job_slug. Requires at least one field to update besides job_slug; updated_by defaults to the authenticated user if omitted. Resolve user IDs with list_users and job status IDs with list_job_statuses.

update_meeting

ChatGPT
Updates one existing Recruit CRM meeting by meeting_id. Requires meeting_id and at least one field to update; updated_by defaults to the authenticated user if omitted. 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_note

ChatGPT
Updates one existing Recruit CRM note by note_id. Requires note_id and at least one field to update; updated_by defaults to the authenticated user if omitted. 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_task

ChatGPT
Updates one existing Recruit CRM task by task_id. Requires task_id and at least one field to update; updated_by defaults to the authenticated user if omitted. 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.

add_records_to_hotlist

Claude

analyze_job_pipeline

Claude

assign_candidate_to_job

Claude

count_candidates

Claude

count_companies

Claude

count_contacts

Claude

count_jobs

Claude

create_call_log

Claude

create_candidate

Claude

create_company

Claude

create_contact

Claude

create_hotlist

Claude

create_job

Claude

create_meeting

Claude

create_note

Claude

create_task

Claude

execute_tool

Claude

get_advanced_search_field_details

Claude

get_candidate_details

Claude

get_candidate_job_assignment_hiring_stage_history

Claude

get_company_details

Claude

get_contact_details

Claude

get_current_user

Claude

get_custom_field_dependencies

Claude

get_custom_field_details

Claude

get_job_assigned_candidates

Claude

get_job_details

Claude

get_off_limit_status

Claude

get_pitch_history

Claude

get_pitched_records

Claude

get_search_columns

Claude

get_tool_schema

Claude

list_advanced_search_fields

Claude

list_boolean_search_scopes

Claude

list_call_types

Claude

list_candidate_hiring_stages

Claude

list_candidate_hotlists

Claude

list_candidate_questions

Claude

list_candidates

Claude

list_companies

Claude

list_company_hotlists

Claude

list_contact_hotlists

Claude

list_contact_stages

Claude

list_contacts

Claude

list_currencies

Claude

list_custom_fields

Claude

list_employment_types

Claude

list_hiring_pipelines

Claude

list_industries

Claude

list_job_hotlists

Claude

list_job_statuses

Claude

list_jobs

Claude

list_languages_and_proficiencies

Claude

list_meeting_types

Claude

list_note_types

Claude

list_off_limit_statuses

Claude

list_pitch_stages

Claude

list_qualifications

Claude

list_search_call_types

Claude

list_search_contact_stages

Claude

list_search_currencies

Claude

list_search_employment_types

Claude

list_search_genders

Claude

list_search_hiring_pipelines

Claude

list_search_hotlists

Claude

list_search_industries

Claude

list_search_job_statuses

Claude

list_search_meeting_types

Claude

list_search_note_types

Claude

list_search_off_limit_statuses

Claude

list_search_qualifications

Claude

list_search_task_types

Claude

list_search_users

Claude

list_search_xml_jobboards

Claude

list_task_types

Claude

list_teams

Claude

list_users

Claude

list_xml_jobboards

Claude

mark_candidate_off_limit

Claude

mark_company_off_limit

Claude

mark_contact_off_limit

Claude

mark_records_available

Claude

pitch_candidate_to_contact

Claude

prepare_client_brief

Claude

search_call_logs

Claude

search_candidate_hotlists

Claude

search_candidates

Claude

search_companies

Claude

search_company_hotlists

Claude

search_contact_hotlists

Claude

search_contacts

Claude

search_entity

Claude

search_hotlists

Claude

search_job_hotlists

Claude

search_jobs

Claude

search_meetings

Claude

search_notes

Claude

search_places

Claude

search_tasks

Claude

search_tools

Claude

update_call_log

Claude

update_candidate

Claude

update_candidate_hiring_stage

Claude

update_candidate_pitch_stage

Claude

update_company

Claude

update_contact

Claude

update_job

Claude

update_meeting

Claude

update_note

Claude

update_task

Claude

Capabilities

Writes

Similar Apps