add_records_to_hotlist
ChatGPTAdds 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
ChatGPTDiagnoses 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
ChatGPTAssigns 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
ChatGPTReturns 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
ChatGPTReturns 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
ChatGPTReturns 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
ChatGPTReturns 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
ChatGPTCreates 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
ChatGPTCreates 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
ChatGPTCreates 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
ChatGPTCreates 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
ChatGPTCreates 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
ChatGPTCreates 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
ChatGPTCreates 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
ChatGPTCreates 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
ChatGPTCreates 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
ChatGPTFinds 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
ChatGPTFinds 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
ChatGPTExecutes 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
ChatGPTGet 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
ChatGPTFetches 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
ChatGPTFetches 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
ChatGPTFetches 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
ChatGPTFetches 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
ChatGPTReturns 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
ChatGPTFetches 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
ChatGPTFetch 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
ChatGPTFetches 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
ChatGPTFetches 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
ChatGPTReturns 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
ChatGPTFetches 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
ChatGPTFetches 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
ChatGPTReturns 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
ChatGPTReturns 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
ChatGPTList 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
ChatGPTList 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
ChatGPTList 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
ChatGPTLists Recruit CRM custom call types, returning compact id/label rows. Use custom_call_type_id in create_call_log.
list_candidate_hiring_stages
ChatGPTLists 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
ChatGPTList 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
ChatGPTLists Recruit CRM candidate questions with MCP-side pagination. Returns compact id and question rows for resolving candidate question IDs.
list_candidates
ChatGPTList 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
ChatGPTList 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
ChatGPTList 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
ChatGPTList 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
ChatGPTLists Recruit CRM contact sales pipeline stages. Returns stage_id and label rows for create_contact and update_contact.
list_contacts
ChatGPTList 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
ChatGPTLists 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
ChatGPTList 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
ChatGPTLists 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
ChatGPTLists 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
ChatGPTLists 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
ChatGPTList 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
ChatGPTLists 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
ChatGPTList 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
ChatGPTLists 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
ChatGPTLists Recruit CRM meeting types, returning compact id/label rows. Use meeting_type_id in create_meeting.
list_note_types
ChatGPTLists Recruit CRM note types, returning compact id/label rows. Use note_type_id in create_note.
list_off_limit_statuses
ChatGPTLists 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
ChatGPTLists Recruit CRM pitch pipeline stages with status_id and label values for resolving stage names used by update_candidate_pitch_stage.
list_qualifications
ChatGPTLists Recruit CRM qualifications with MCP-side pagination. Returns qualification_id and label rows for job qualification_id fields.
list_search_call_types
ChatGPTReturns 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
ChatGPTReturns 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
ChatGPTReturns 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
ChatGPTReturns 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
ChatGPTReturns 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
ChatGPTReturns 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
ChatGPTReturns 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
ChatGPTReturns 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
ChatGPTReturns 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
ChatGPTReturns 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
ChatGPTReturns 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
ChatGPTReturns 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
ChatGPTReturns 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
ChatGPTReturns 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
ChatGPTReturns 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
ChatGPTReturns 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
ChatGPTLists Recruit CRM task types, returning compact id/label rows. Use task_type_id in create_task.
list_teams
ChatGPTLists 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
ChatGPTLists 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
ChatGPTLists 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
ChatGPTMarks 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
ChatGPTMarks 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
ChatGPTMarks 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
ChatGPTRemoves 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
ChatGPTMarks 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
ChatGPTPrepares 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
ChatGPTSearch 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
ChatGPTSearch 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
ChatGPTSearch 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
ChatGPTSearch 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
ChatGPTSearch 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
ChatGPTSearch 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
ChatGPTSearch 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
ChatGPTSearch 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
ChatGPTQuick-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
ChatGPTSearch 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
ChatGPTSearch 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
ChatGPTSearch 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
ChatGPTSearch 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
ChatGPTSearch 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
ChatGPTSearches 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
ChatGPTSearch 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
ChatGPTSearches 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
ChatGPTUpdates 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
ChatGPTUpdates 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
ChatGPTUpdates 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
ChatGPTUpdates 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
ChatGPTUpdates 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
ChatGPTUpdates 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
ChatGPTUpdates 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
ChatGPTUpdates 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
ChatGPTUpdates 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
ChatGPTUpdates 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.
validate_boolean_search
ChatGPTParse-check a boolean keyword against Recruit CRM boolean search grammar (uppercase AND/OR/NOT only, implicit AND between terms, NOT precedence, quoted phrases, wildcards, parentheses). Call before search_* when building boolean_keyword; returns valid and error_message.
validate_filter_search
ChatGPTValidate a structured filter_search_list before calling search_*. Checks shape and non-empty filters. group_join_operator combines groups (default AND); group_filter_join_operator combines filters within each group (default AND). Build filters with list_advanced_search_fields and get_advanced_search_field_details.
add_records_to_hotlist
Claudeanalyze_job_pipeline
Claudeassign_candidate_to_job
Claudecount_candidates
Claudecount_companies
Claudecount_contacts
Claudecount_jobs
Claudecreate_call_log
Claudecreate_candidate
Claudecreate_company
Claudecreate_contact
Claudecreate_hotlist
Claudecreate_job
Claudecreate_meeting
Claudecreate_note
Claudecreate_task
Claudeexecute_tool
Claudeget_advanced_search_field_details
Claudeget_candidate_details
Claudeget_candidate_job_assignment_hiring_stage_history
Claudeget_company_details
Claudeget_contact_details
Claudeget_current_user
Claudeget_custom_field_dependencies
Claudeget_custom_field_details
Claudeget_job_assigned_candidates
Claudeget_job_details
Claudeget_off_limit_status
Claudeget_pitch_history
Claudeget_pitched_records
Claudeget_search_columns
Claudeget_tool_schema
Claudelist_advanced_search_fields
Claudelist_boolean_search_scopes
Claudelist_call_types
Claudelist_candidate_hiring_stages
Claudelist_candidate_hotlists
Claudelist_candidate_questions
Claudelist_candidates
Claudelist_companies
Claudelist_company_hotlists
Claudelist_contact_hotlists
Claudelist_contact_stages
Claudelist_contacts
Claudelist_currencies
Claudelist_custom_fields
Claudelist_employment_types
Claudelist_hiring_pipelines
Claudelist_industries
Claudelist_job_hotlists
Claudelist_job_statuses
Claudelist_jobs
Claudelist_languages_and_proficiencies
Claudelist_meeting_types
Claudelist_note_types
Claudelist_off_limit_statuses
Claudelist_pitch_stages
Claudelist_qualifications
Claudelist_search_call_types
Claudelist_search_contact_stages
Claudelist_search_currencies
Claudelist_search_employment_types
Claudelist_search_genders
Claudelist_search_hiring_pipelines
Claudelist_search_hotlists
Claudelist_search_industries
Claudelist_search_job_statuses
Claudelist_search_meeting_types
Claudelist_search_note_types
Claudelist_search_off_limit_statuses
Claudelist_search_qualifications
Claudelist_search_task_types
Claudelist_search_users
Claudelist_search_xml_jobboards
Claudelist_task_types
Claudelist_teams
Claudelist_users
Claudelist_xml_jobboards
Claudemark_candidate_off_limit
Claudemark_company_off_limit
Claudemark_contact_off_limit
Claudemark_records_available
Claudepitch_candidate_to_contact
Claudeprepare_client_brief
Claudesearch_call_logs
Claudesearch_candidate_hotlists
Claudesearch_candidates
Claudesearch_companies
Claudesearch_company_hotlists
Claudesearch_contact_hotlists
Claudesearch_contacts
Claudesearch_entity
Claudesearch_hotlists
Claudesearch_job_hotlists
Claudesearch_jobs
Claudesearch_meetings
Claudesearch_notes
Claudesearch_places
Claudesearch_tasks
Claudesearch_tools
Claudeupdate_call_log
Claudeupdate_candidate
Claudeupdate_candidate_hiring_stage
Claudeupdate_candidate_pitch_stage
Claudeupdate_company
Claudeupdate_contact
Claudeupdate_job
Claudeupdate_meeting
Claudeupdate_note
Claudeupdate_task
Claudevalidate_boolean_search
Claudevalidate_filter_search
Claude