Skip to main content
Glama
Workforce-Cloud-Tech

Recruit CRM MCP Server

Create Candidate

create_candidate
Destructive

Creates a candidate in Recruit CRM, optionally adding up to 10 work and 10 education history records, with automatic duplicate detection by email, phone, or LinkedIn.

Instructions

Creates one Recruit CRM candidate, then optionally creates up to 10 work history rows and 10 education history rows. Requires at least one of first_name or last_name, plus owner_id and created_by. Checks duplicates by email, contact_number, or linkedin unless allow_duplicate=true; duplicate errors include candidate_slug and candidate_id when available. Resolve user IDs with list_users, currency_id with list_currencies, language_skills with list_languages_and_proficiencies, company slugs with search_companies, and custom field IDs with list_custom_fields. The resume field accepts a publicly accessible HTTPS direct download URL or a base64-encoded file string. File-type custom fields accept a direct download URL only. Returns a compact summary with the candidate slug and partial-success details for history operations.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
cityNoCity.
xingNoXing URL.
emailNoCandidate email.
skillNoComma-separated candidate skills.
stateNoState.
avatarNoCandidate avatar URL.
githubNoGitHub URL.
resumeNoResume file. Accepts a publicly accessible HTTPS direct download URL or a base64-encoded file string. Max file size 16 MB.
sourceNoCandidate source (e.g. 'Claude', 'LinkedIn').
addressNoStreet address.
countryNoCountry.
twitterNoTwitter/X URL.
facebookNoFacebook URL.
linkedinNoLinkedIn URL.
localityNoLocality.
owner_idNoCandidate owner user ID. Required when creating.
positionNoCandidate position/title.
gender_idNoGender id: 0 not available, 1 male, 2 female, 3 non-binary, 4 prefer not to say.
last_nameNoCandidate last name. At least one of first_name or last_name is required.
created_byNoCreating user ID. Required when creating.
first_nameNoCandidate first name. At least one of first_name or last_name is required.
updated_byNoUpdating user ID. Required when updating. Defaults to created_by on create if omitted.
currency_idNoRecruit CRM currency id.
postal_codeNoPostal code.
salary_typeNoRecruit CRM salary type id.
work_ex_yearNoTotal work experience in years.
work_historyNoLatest work history rows to create after the candidate is created or updated. Max 10 rows.
candidate_dobNoCandidate date of birth, preferably YYYY-MM-DD.
custom_fieldsNoCandidate custom field values. Dropdown and multiselect fields require a value matching the options returned by get_custom_field_details.
notice_periodNoNotice period in days.
available_fromNoAvailable-from date, preferably YYYY-MM-DD.
contact_numberNoCandidate contact number.
current_salaryNoCurrent salary.
current_statusNoCurrent candidate status.
allow_duplicateNoSet true to create a candidate even if a duplicate exists.
language_skillsNoCandidate language skills.
candidate_summaryNoCandidate summary. Supports basic HTML/rich text.
education_historyNoLatest education history rows to create after the candidate is created or updated. Max 10 rows.
profile_updated_onNoProfile updated date, preferably YYYY-MM-DD.
salary_expectationNoSalary expectation.
relevant_experienceNoRelevant experience in years.
willing_to_relocateNoRelocation flag: 1 willing, 0 not willing.
current_organizationNoCurrent organization name.
current_organization_slugNoCurrent organization company slug.

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
ownerYes
actionYes
errorsYes
positionYes
view_urlYes
last_nameYes
created_onYes
first_nameYes
updated_onYes
candidate_idYes
work_historyYes
candidate_slugYes
current_statusYes
education_historyYes
current_organizationYes
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Beyond the readOnlyHint=false and destructiveHint=true annotations, the description details duplicate-check behavior (by email, contact_number, linkedin), error payload contents (candidate_slug, candidate_id), file-acceptance rules (URL or base64 for resume, URL-only for custom file fields), and return behavior (compact summary with partial-success details). This goes well beyond the annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a dense paragraph that front-loads the core purpose and then covers prerequisites, duplicate handling, ID resolution, and file rules. It is appropriately sized for a complex 44-parameter tool, but could benefit from bullet points or sectioning for easier scanning.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the high parameter count and existing output schema, the description covers all critical operational aspects: field requirements, duplicate policy, file constraints, ID resolution, and response summary. It provides enough context for an agent to invoke the tool correctly without needing to consult external documentation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, but the description adds meaningful cross-references for resolving parameter values (e.g., language_skills with list_languages_and_proficiencies, custom field IDs with list_custom_fields). It also reinforces required fields and file-type restrictions, adding value beyond the schema descriptions.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description opens with a specific verb and resource: 'Creates one Recruit CRM candidate'. It clearly distinguishes itself from siblings like update_candidate and search_candidates by specifying the creation action and the optional work/education history creation.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It explicitly states prerequisites ('Requires at least one of first_name or last_name, plus owner_id and created_by') and provides direct guidance on resolving IDs via sibling tools (list_users, list_currencies, etc.). It also clarifies when duplicates are allowed ('unless allow_duplicate=true'), giving clear use conditions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Install Server

Other Tools

Latest Blog Posts

MCP directory API

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

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

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