The open, machine-readable standard for career data.
One JSON file. One URL. Always current.
Built for AI agents, ATS systems, and humans.
{
"$schema": "https://freecv.org/schema/cv/v1.json",
"basics": {
"name": "Ashley Chen",
"label": "Senior Product Manager",
"location": "San Francisco, CA",
"summary": "10+ years leading cross-functional teams...",
"profiles": [{ "network": "LinkedIn", "url": "..." }]
},
"work": [{
"company": "Stripe",
"position": "Senior PM",
"current": true,
"highlights": ["Increased developer adoption by 34%"]
}],
"skills": ["Product Strategy", "SQL", "Figma"],
"education": [{ "institution": "Stanford", "degree": "MBA" }],
"certificates": [{ "name": "PMP", "issuer": "PMI" }],
"interests": ["AI Ethics", "Open Source"],
"availability": {
"status": "open",
"workType": ["remote", "hybrid"],
"roles": ["Product Manager", "Head of Product"]
},
"ats": {
"keywords": ["Product Strategy", "SQL"],
"yearsOfExperience": 10,
"seniority": "senior"
},
"verification": { "email": true, "platform": "freecv.org" }
}Every day, millions of CVs are uploaded as PDFs — then butchered by ATS parsers. Names become addresses. Job titles merge with dates. Skills vanish. cv.json solves this.
AI recruiting agents can fetch, compare, and rank candidates from structured JSON — no PDF guesswork needed.
Pre-parsed keywords, seniority, and years of experience. The ATS doesn't need to parse — the data is already structured.
A live URL, not a file. Update your CV once — every system that fetches your cv.json gets the latest version automatically.
UTF-8 native. Works with Arabic, Chinese, Spanish, French — any language, any alphabet. Right-to-left included.
Private by default. You choose what's visible. Phone and email are hidden unless you explicitly enable them.
MIT-licensed. No vendor lock-in. Any platform can generate, serve, or consume cv.json. Built to be adopted.
A complete career data schema — structured, typed, and ready for production.
Core fields are interoperable with existing open CV schema tools. All date fields validated as YYYY, YYYY-MM, or YYYY-MM-DD.
Your career data, always accessible at a predictable URL.
Use the FreeCV builder to create your CV. Fill in your experience, education, skills — everything you usually put on a CV.
Claim your portfolio URL and choose "Enable cv.json". Configure what to include and your availability status.
Your cv.json is now live at freecv.org/p/you/cv.json. AI agents, ATS platforms, and recruiters can fetch it — always current.
Standard HTTP. Standard JSON. No API key, no SDK, no auth.
curl https://freecv.org/p/ashley/cv.json # Response headers include: # Content-Type: application/json # Link: <.../schema/cv/v1.json>; rel="describedby" # X-CV-Version: 1.1 # Access-Control-Allow-Origin: *
<!-- Portfolio pages include: --> <link rel="alternate" type="application/json" href="/p/ashley/cv.json" title="cv.json" /> <!-- + schema.org/Person JSON-LD -->
# Online validator (URL or paste JSON) https://freecv.org/validate # Or validate programmatically: const schema = await fetch( 'https://freecv.org/schema/cv/v1.json' ).then(r => r.json()) // Use ajv, zod, or any JSON Schema v7 validator
// For AI recruiting agents:
const cv = await fetch(
'https://livelink.cv/ashley/cv.json'
).then(r => r.json())
if (cv.availability.status === 'open'
&& cv.ats.yearsOfExperience >= 5) {
// Candidate matches criteria
}Free for everyone. No signup required to export. Publish a live endpoint with a FreeCV account.