All tools

Human resources · create_candidate

Create candidate

Add a candidate to the hiring pipeline.

Price
included
Requirements
No connector
runs on platform keys
Human approval
No
read or internal write

Input

FieldTypeDescription
candidatesarrayBatch mode: the FULL list of candidates to register in one call (preferred whenever there is more than one). When provided, the top-level single-candidate fields are ignored.
emailstringCandidate email — with the position, the idempotency key (same email + same position = same file, no duplicate)
firstNamestringFirst name
lastNamestringLast name
namestringFull name as returned by parse_resume (split into first/last when firstName/lastName are not given)
appliedForstringPosition / job title applied for (aliases: position, jobTitle)
positionstringAlias of appliedFor
jobTitlestringAlias of appliedFor
linkedinUrlstringLinkedIn profile URL
phonestringPhone number (stored in metadata)
currentTitlestringCurrent job title from the resume (stored in metadata)
yearsExperiencenumberYears of experience from the resume (stored in metadata)
skillsarraySkills from the resume (stored in metadata)
resumeTextstringPlain text of the resume (kept for scoring)
sourcestringSource: inbound, email, linkedin, referral, job_board, ats…
notesstringRecruiter notes
fitScorenumberFit score 0-100 if already computed
statusnew | screening | interview | offer | hired | rejected | withdrawnStatus (default: new on creation). On an existing file, an explicit status moves the candidate to that stage.

Call this tool

Through the HTTP API, or from the MCP server with the run meta-tool.

curl https://api.ezyagents.fr/gateway/v1/run \
  -H "Authorization: Bearer ezk_…" -H "Content-Type: application/json" \
  -d '{"tool":"create_candidate","input":{"candidates":[],"email":"…","firstName":"…","lastName":"…"}}'
$run({ "tool": "create_candidate", "input": {"candidates":[],"email":"…","firstName":"…","lastName":"…"} })