
The Problem: 75% of CVs Get Mangled by Machines
Every day, millions of job seekers upload their CVs as PDFs. These files then get fed into Applicant Tracking Systems — software that tries to extract your name, your job title, your skills, and your experience from what is essentially a picture of text.
The result? Studies show that ATS parsers fail on up to 75% of non-standard CV formats. Your name becomes your address. Your job title merges with a date. Your carefully organized skills section turns into alphabet soup.
This isn't a minor inconvenience. It's a systemic failure. Qualified candidates get rejected because a machine couldn't parse a PDF. And with AI recruiting agents entering the market in 2025–2026 — autonomous systems that search, filter, and rank candidates — the problem is about to get exponentially worse.
These AI agents need structured data. Not PDFs. Not Word documents. Not screenshots. Structured, typed, machine-readable JSON.
The Solution: cv.json
Today we're launching cv.json — an open standard for career data that gives every professional a machine-readable endpoint for their CV.
The idea is simple:
- One JSON file that contains your entire career: work, education, skills, projects, certifications, languages
- One URL that always returns the latest version:
freecv.org/p/yourname/cv.json - One schema that any platform can validate against:
freecv.org/schema/cv/v1.json
No API key. No authentication. No SDK. Just a GET request that returns structured career data.
💡 Think of it like robots.txt for careers. Just as robots.txt tells search engines how to crawl a website, cv.json tells AI agents and ATS systems exactly what your career looks like — no guessing, no parsing, no errors.
What Makes cv.json Different
Structured career data isn't a new idea — there have been attempts before. But they were designed for a different era. cv.json is built for 2026, where AI recruiting agents autonomously search, filter, and rank candidates. The standard includes fields that previous formats never considered:
availability
Machine-readable "Open to Work." An AI agent can query your endpoint and instantly know: are you looking, what roles you want, where you'll work (remote/hybrid/onsite), and when you can start. LinkedIn's green badge is nice. A structured JSON object is actionable.
ats
Pre-parsed ATS metadata auto-generated from your CV data. Keywords, years of experience, seniority level, highest education — all computed so the receiving system doesn't have to guess.
verification
Trust signals. Is the email verified? Was this generated by a known platform? As AI agents start autonomously sourcing candidates, knowing that a cv.json comes from a verified source matters.
The "Live" URL Pattern
This might be the most important innovation. Most career data standards produce static files. You export a JSON file, upload it somewhere, and forget about it. Three months later your CV is outdated but the file is still being served.
cv.json is served from a live endpoint. Update your CV in the builder, and the next time anyone fetches your cv.json, they get the latest version. No re-exporting. No re-uploading. It's always current.
Privacy by Design
We built this with a controversial (but correct) default: cv.json is off by default.
When you create a portfolio on FreeCV, your cv.json endpoint returns 404 until you explicitly enable it. Even when you do enable it, your phone number and email are hidden by default — you have to opt in to include them.
This isn't a PR stunt. Publishing a portfolio page is one thing. Making your career data machine-readable and bulk-scrapable is a fundamentally different level of exposure, and the user should consciously choose it.
You control everything from your dashboard: what's included, what's hidden, whether the endpoint is live at all. You can turn it off with one click, and your cv.json immediately returns 404.
How to Get Your cv.json
Three options:
- Build and publish: Create a CV in the FreeCV builder, claim a portfolio slug, and enable cv.json from your dashboard. Your endpoint goes live immediately.
- Export only: Build a CV and click the
{} cv.jsonbutton in the download menu. You get a downloadable file without publishing anything online. - Self-host: The JSON Schema is open. Generate cv.json files with your own tools, validate them against our schema, and host them wherever you want.
For Developers
If you build ATS tools, recruiting platforms, or AI agents — here's how to consume cv.json:
# Fetch career data curl https://freecv.org/p/ashley/cv.json # Discover cv.json from any portfolio page # Look for: <link rel="alternate" type="application/json" href="..." /> # Validate against schema # Schema: https://freecv.org/schema/cv/v1.json # CORS: enabled (Access-Control-Allow-Origin: *) # Cache: 5 minutes (Cache-Control: public, max-age=300) # Version: X-CV-Version header
Full documentation, schema, and examples are at freecv.org/open.
What's Next
This is v1.0. We're actively working on:
- Online validator — paste any cv.json URL and check it against the schema instantly
- Import support — bring your cv.json into FreeCV and we populate the builder automatically
- Multi-language — serve different translations of your CV from the same endpoint
- Webhooks — notify subscribed systems when your CV updates
We believe structured career data should be open, portable, and owned by the individual. cv.json is our contribution to making that happen.
Get Started
Build your CV, enable cv.json, and get a live endpoint in under 5 minutes.
Build My cv.json Free →