cv.json — open CV data
Search people open to work and fetch their machine-readable cv.json, from any AI assistant.
Should I use this
Quality & Safety
Based on automated analysis of tool definitions and protocol compliance.
Context Cost
This is the approximate number of tokens consumed each time the server's tools are loaded into a model's context. Higher counts reduce the attention available for other tasks.
Install
One-Click Install
Add this to your `claude_desktop_config.json` file:
{
"mcpServers": {
"cvjson": {
"command": "npx",
"args": [
"cvjson-mcp"
]
}
}
}Runnable packages
1.1.1stdioRemote endpoints
https://freecv.org/api/mcpstreamable-httpWhat it can do
Tool inventory
Tools (4)
🟢search_open_to_work(query, skills, title, location, workType, ...)
Search FreeCV's LIVE index of real people who are open to work — by skills, role/title, location, and recruiter facets (work type, employment type, visa sponsorship, languages, minimum experience). Returns lean candidate cards (name, current role @ company, location, top skills, languages, and the full availability preferences) plus each person's cv.json URL and portfolio URL — enough to shortlist WITHOUT a fetch_cv per candidate. Call fetch_cv on a result to read the complete structured CV. Only already-public profiles are indexed; contact details are never returned (reach candidates via their portfolio).
Input Schema
{
"type": "object",
"properties": {
"query": {
"type": "string",
"description": "Free-text query matched across name, title, skills and experience (e.g. \"senior react developer\")."
},
"skills": {
"type": "array",
"items": {
"type": "string"
},
"description": "Specific skills to match, e.g. [\"React\",\"TypeScript\"]."
},
"title": {
"type": "string",
"description": "Target role/title, e.g. \"Product Designer\"."
},
"location": {
"type": "string",
"description": "Country-aware location filter, e.g. \"UK\" (matches London/Manchester), \"Berlin\", \"Gaza\"."
},
"workType": {
"type": "array",
"items": {
"type": "string",
"enum": [
"remote",
"hybrid",
"onsite"
]
},
"description": "Only candidates who OFFER one of these work arrangements."
},
"employmentType": {
"type": "array",
"items": {
"type": "string",
"enum": [
"full-time",
"part-time",
"contract",
"internship",
"temporary",
"volunteer"
]
},
"description": "Only candidates open to one of these employment types."
},
"languages": {
"type": "array",
"items": {
"type": "string"
},
"description": "Languages the candidate must speak, e.g. [\"German\",\"Arabic\"]."
},
"sponsorship": {
"type": "boolean",
"description": "Filter by visa-sponsorship need: false = does NOT need sponsorship, true = needs it. Candidates who never answered are excluded from this filter."
},
"minYearsExp": {
"type": "integer",
"minimum": 1,
"description": "Minimum years of experience."
},
"sort": {
"type": "string",
"enum": [
"best",
"fresh",
"exp"
],
"description": "Ranking: best match (default), most recently updated, or most experienced."
},
"limit": {
"type": "integer",
"minimum": 1,
"maximum": 50,
"description": "Max results per page (default 20)."
},
"offset": {
"type": "integer",
"minimum": 0,
"description": "Result offset for paging through a large shortlist (default 0). Use with `total` in the response."
}
}
}🟢fetch_cv(slug, url)
Fetch a person's cv.json — their full machine-readable CV — by FreeCV slug or livelink.cv URL. Returns structured JSON: basics, work, education, skills, languages, availability, ats, verification, i18n.
Input Schema
{
"type": "object",
"properties": {
"slug": {
"type": "string",
"description": "The slug, e.g. \"ashley\" (from livelink.cv/ashley)."
},
"url": {
"type": "string",
"description": "Full cv.json URL (alternative to slug)."
}
}
}🟢validate_cv(cvjson, slug, url)
Validate a cv.json document against the official cv.json schema. Provide the document (cvjson, object or JSON string) OR a slug/url to fetch and validate. Returns { valid, errors[] }.
Input Schema
{
"type": "object",
"properties": {
"cvjson": {
"description": "The cv.json document to validate (object or JSON string)."
},
"slug": {
"type": "string",
"description": "Fetch and validate this slug's live cv.json."
},
"url": {
"type": "string",
"description": "Fetch and validate this cv.json URL."
}
}
}🟢get_cvjson_schema
Return the official cv.json JSON Schema (the format spec) — use it to understand or generate a compliant cv.json.
Input Schema
{
"type": "object",
"properties": {}
}Community
Evidence