Your resume already has two audiences. One of them is a person. The other is a parser, and the parser goes first. Before a recruiter ever sees your name, software has opened your file, guessed where your job titles live, tried to match dates to employers, and dropped the result into a database. That sequence is not coming. It arrived years ago.
So the real question is not whether AI changes resumes. It already did. The question is what the resume becomes once the first reader is a machine, and the answer is the thing this whole site exists to explain: structured career data you control, at one address, readable by both sides.
The future of resumes is a single piece of structured, machine-readable career data that lives at a stable URL, stays current, and can be read by humans and AI hiring systems from the exact same address.
Resumes already stopped being documents for humans
Walk through what happens after you click apply. Your PDF gets uploaded to an applicant tracking system. The ATS runs a parser that splits your file into fields: name, contact, work history, education, skills. Then it ranks you against other applicants and surfaces a shortlist. A human sees the shortlist. A human rarely sees the raw pile.
ATS use is mainstream in enterprise hiring. Commonly cited industry summaries suggest that nearly 99% of Fortune 500 companies run an ATS, and that roughly 70% of large companies and 75% of recruiters use one. Those figures come from secondary compilations, not independent audits, so treat them as directional. The defensible point survives the hedging anyway: if you apply to a big company, software reads you first.
The vendors doing that reading are named, and you have probably met them without knowing it. Workday and iCIMS dominate large enterprise mindshare. Taleo is the long-running Oracle product still embedded in older corporate stacks. Greenhouse and Lever are the startup and mid-market favorites. Ashby is the newer analytics-first entrant. Public sources do not give clean market-share percentages for any of them, so nobody should claim one vendor owns the category. But these are the engines parsing your file.
Here is the part people get wrong. The popular line that 75% of resumes get auto-rejected by an ATS is not supported by solid evidence. In one 2025 recruiter sample, 92% of ATS users said their system does not auto-reject based on resume content. That was a small vendor-published interview group, not a census, so do not over-read it either. What it punctures is the myth that a robot throws your resume in the bin. The truer mechanism is quieter. The ATS parses, ranks, and sorts. Employers set knockout questions, like a required certification or work authorization, and those do the early filtering. You do not get rejected by a parser. You get misread by one, then ranked low, then never surfaced.
Why misreading is the actual risk
Formatting is where the damage happens. The supportable claim is plain: tables, text boxes, multi-column layouts, and graphics raise the risk that a parser loses your structure or grabs the wrong text. Plain DOCX is described as the safest of the document formats. One vendor put numbers on it, claiming columns and graphics account for 23% of parse failures while plain DOCX fails around 4%, but those are unverified vendor estimates without published methodology, so hold them loosely. The direction is what matters. Pretty layouts confuse machines.
And that is the quiet absurdity of the current era. People spend hours nudging a two-column template in Word, picking a serif font, balancing the whitespace, and the first reader is a parser that throws all of it away and keeps the plain text it can find. You designed for a human. A robot read it first and shrugged.
How an AI screener actually reads you, step by step
It helps to see the pipeline as a sequence instead of a black box, because every stage is a place where a PDF loses information and structured data does not. Here is what happens to your file from upload to shortlist.
- Ingest. The system accepts your upload and stores the raw bytes. Nothing has been understood yet. A 2MB PDF with embedded fonts and a background image is just a blob at this point.
- Extract. A text-extraction layer pulls characters out of the document. This is where two-column layouts go sideways, because the extractor reads in a different order than your eye does, sometimes interleaving the left column with the right.
- Parse. A field parser, increasingly a language model now rather than a regex pile, decides which extracted text is your name, which is an employer, which is a date range. This is the guessing stage.
- Normalize. Dates get standardized, job titles get mapped to a taxonomy, skills get matched against a dictionary. "Sr. PD" might become "Senior Product Designer," or might not.
- Match and rank. The normalized record gets scored against the job description and the other applicants. This produces your position in the pile.
- Surface. The recruiter opens a shortlist, often with an AI-written summary of each candidate sitting on top.
Count the failure points. Extract, parse, and normalize are three separate places where your two-column serif masterpiece can lose a job, swap a date, or drop a skill. Structured career data skips straight to step four. There is nothing to extract and nothing to guess, because the fields arrive labeled. You hand the system a normalized record instead of asking it to manufacture one from pixels.
What AI hiring changes next
Until recently, the parser was dumb. It pattern-matched. It looked for date formats and section headers and dumped strings into columns. Large language models change the reader, not just the rules.
By 2025 and 2026, AI in recruiting moved from experiment to default plumbing. A 2026 Lever write-up frames AI and automation as table stakes in modern ATS evaluation, including candidate matching and ranking, interview transcription and summarization, and predictive analytics. Bullhorn, citing the 2026 GRID Industry Trends Report, says 78% of staffing firms growing revenue by more than 25% have AI tools embedded in their ATS. That stat is real and attributable, but note the scope: fast-growing staffing firms, not all employers. A separate 2026 summary, citing SHRM, reports AI adoption in HR tasks jumping to 43% in 2025 from 26% in 2024. Verify that one at the SHRM source before you lean on it.
Strip the hedging and a clear shape remains. The reader is becoming a language model that does not just extract fields. It interprets. It can read your summary and infer seniority. It can match your skills to a job description and explain the gap in a sentence. It can summarize you for a hiring manager before that manager opens your file.
When the first reader is a language model, the winning move is to hand it clean structured data instead of forcing it to reverse-engineer a PDF.
From parsing to interpretation
Think about what an LLM-based screener wants. Not a styled page. It wants unambiguous facts: this person held this title at this company from this date to that date, with these skills, open to these roles. When that data is locked inside a PDF, the model has to reconstruct it, and reconstruction introduces error. Every layout quirk is a chance to guess wrong.
Now flip it. Give the model the structure directly. No guessing about where your job title ends and your employer begins, because the fields are labeled. That is the entire premise behind machine-readable career data, and it is why the next format for resumes looks less like a document and more like an API response.
A worked example: matching skills to a job description
Say a role asks for Figma, design systems, and prototyping. With a PDF, the screener extracts your text, hunts for those words, and hopes your skills section survived the column shuffle. With cv.json, the skills are already a keyword set, so the match is a set comparison the machine can do without interpretation.
// Job description requires:
["Figma", "Design systems", "Prototyping", "User research"]
// Your cv.json skills, already keyworded:
{
"skills": [
{ "name": "Design", "keywords": ["Figma", "Prototyping", "Design systems"] }
]
}
// Match result the machine computes directly:
// matched: Figma, Prototyping, Design systems
// missing: User research
// score: 3 of 4
That "missing: User research" line is the whole point. A clean set difference tells the screener exactly what gap to flag, and it tells you exactly what to add before you apply. No fuzzy text scan, no false negative because your skills sat in a sidebar the extractor read last.
The shift from files to addresses
There is a second change running alongside the smarter reader, and it gets less attention. The resume is moving from a file you send to an address you publish.
A file is a snapshot. The moment you email a PDF, it is stale. You ship eleven copies to eleven jobs, then you change your phone number, and now eleven wrong versions of you exist in the wild. An address fixes that. Publish your career data at one stable URL, like livelink.cv/ashley/cv.json, and there is one source of truth. Update it once. Everyone who reads it reads the current version.
This is the model the rest of the web already runs on. Software does not email each other files. It hits endpoints. Your career data joining that pattern is overdue, and it is exactly what cv.json does: one JSON file, one URL, always current.
Discovery, so machines can find it
An address is only useful if a machine can find it without being told. cv.json handles discovery three ways at once. There is a link rel="alternate" tag in the page head so a crawler reading your portfolio finds the data version. There is a /.well-known/cv.json manifest, the same convention browsers and security tools already use for site-level metadata. And there is an X-CV-Version HTTP header so a client can check the spec version without parsing the body. CORS is open, so any tool is allowed to fetch it.
GET https://livelink.cv/ashley/cv.json X-CV-Version: 1.2 Access-Control-Allow-Origin: * Content-Type: application/json
That is the whole handshake. A recruiter agent, an ATS importer, or a chatbot you grant access to can locate your data, confirm the version, and read it, with zero PDF parsing and zero guessing.
What a machine-readable resume actually looks like
cv.json is an open standard, MIT licensed, where your entire career lives in one JSON file. The full spec is at github.com/freecvorg/cv-json. The current version is 1.2. The shape is deliberately boring, because boring is what parses cleanly.
The top-level fields are basics, work, education, skills, projects, languages, certificates, an availability block, and meta. Only basics and meta are required. Everything else is optional, so a new grad with one job and a student with five projects both produce valid files. Here is a trimmed example.
{
"basics": {
"name": "Ashley Carter",
"label": "Product Designer",
"location": { "city": "Lisbon", "countryCode": "PT" }
},
"work": [
{
"name": "Northwind",
"position": "Senior Product Designer",
"startDate": "2022-03",
"endDate": "",
"summary": "Led design for the checkout redesign.",
"highlights": ["Shipped a 3-step checkout used by 40k monthly buyers"]
}
],
"skills": [
{ "name": "Design", "keywords": ["Figma", "Prototyping", "Design systems"] }
],
"meta": {
"version": "1.2",
"canonical": "https://livelink.cv/ashley/cv.json"
}
}
Notice what an AI reader gets for free. The current job is the one with an empty endDate, no date arithmetic required. Skills are grouped and keyworded, so a job-description match is a set comparison instead of a fuzzy text scan. The canonical field in meta tells any copy where the real, live version lives, which kills the stale-duplicate problem at the schema level.
The availability block, built for AI recruiters
One block is built specifically for where hiring is heading. availability states your job-search status in fields a machine can filter on directly, instead of a recruiter inferring it from a vague headline.
{
"availability": {
"openToWork": true,
"roles": ["Product Designer", "Design Lead"],
"workType": ["remote", "hybrid"],
"visa": "EU work authorization, no sponsorship needed"
}
}
That is the difference between hoping a recruiter reads between the lines and handing an AI recruiter a clean filter. openToWork: true is a boolean. A search agent does not interpret it. It queries it.
Privacy by default
Publishing your career at a public URL raises an obvious worry, and the standard answers it. Contact details are hidden by default. Your email and phone are not exposed in the public file unless you choose to reveal them. So you get the discoverability of a public address without spraying your phone number across the open web for scrapers to harvest.
Edge cases the structure handles cleanly
The objection people raise is that real careers are messy, and a tidy schema must flatten them. The opposite is true. Messy careers are exactly where labeled fields beat a free-text PDF, because the parser stops having to interpret your mess and just reads what you declared.
Career gaps
A gap in a PDF looks like a hole a parser might misread as your current job stretching backward. In cv.json, each work entry has its own startDate and endDate, so a gap is simply the absence of an entry between two dated jobs. Nothing implies you were employed when you were not. If you want to account for the time, a project or an education entry covers the period honestly, with its own dates, instead of you fudging a job's start date to paper over it.
Two jobs at once
Freelancers and people with a side role break naive parsers that assume one job at a time. The work array does not care. Two entries can have overlapping date ranges, and each carries its own employer, title, and highlights. The machine reads concurrent roles as concurrent, no contortion required.
Career changers and non-linear paths
If you moved from teaching to data analysis, the relevant signal is your skills and projects, not a tidy ladder of similar titles. Because skills and projects are top-level arrays, a screener matching on Python and SQL finds them whether you earned them in a classroom, a bootcamp, or your last job. You are not penalized for a job title that does not match the target role, because the match runs on the keyword fields, not on whether your last position name resembles the opening.
Common mistakes that get you misread
Even people who know the parser reads first keep making the same handful of errors. Here is the short list, all traceable to the formatting research above.
- Two columns. The single biggest extraction hazard. The text layer reads in an order your eye does not, and your sidebar skills can land mid-sentence in your work history.
- Skills inside a graphic or skill-bar image. A parser reads text, not a picture of a 4-out-of-5 dot rating. Those skills effectively do not exist to the machine.
- Contact info in the header or footer. Some extractors skip repeating header and footer regions entirely, so your email and phone vanish from the parsed record.
- Tables for layout. Tables scramble reading order the same way columns do. A date in one cell and a title in the next can get glued together or split apart.
- Dates as "Spring 2022" or "2022 to present." Inconsistent date strings force the normalizer to guess. Stick to a real format the system can sort.
- One PDF, many stale copies. The drift problem. Eleven sent files, one updated phone number, ten wrong versions of you. An address solves this; a file never will.
The fix for every line on that list is the same fix: get the facts into labeled fields once, render the human-facing document from those fields, and publish the data at an address that stays current. You are not choosing between a clean parse and a nice-looking resume. You are generating both from one honest source.
Why machine-readable career data is the smart hedge
Standards are a graveyard of good intentions, so skepticism is fair. Plenty of resume-data formats exist already, and none of them won. Worth knowing the field before betting.
JSON Resume, at jsonresume.org, is the closest cousin. It is a community-driven open JSON schema for resumes, and cv.json is field-compatible with it, so your existing JSON Resume data maps over without a rewrite. Its real-world employer adoption is limited and not well measured, but the schema is sound and the overlap means you are not picking a fork in the road.
Europass is the European Commission CV and profile format. Useful across the EU, but it is not a dominant global ATS interchange standard, and you should not infer broad hiring-system adoption from the fact that it exists. HR-Open Standards LER-RS is an emerging interoperability standard for learning and employment records, more specialized than mass-market. schema.org is best understood as structured-data markup that helps discoverability and parsing, not a canonical applicant-data format. HR-XML mattered historically for HR system interoperability, but current public evidence does not support calling it a mainstream resume standard today.
The honest bottom line: there is no credible evidence of a single dominant open resume-data standard in broad ATS use right now. The market is fragmented and system-specific. So the hedge is not betting on one standard to conquer the others. The hedge is owning your career data in a clean, open, widely compatible structure that any future reader can consume, instead of locking it inside a PDF that every parser has to fight.
You cannot predict which hiring tool wins. You can make sure your data is clean enough that whichever one wins can read you.
Where cv.json fits the trajectory
Line up the two shifts. The reader is becoming a language model. The resume is becoming an address. cv.json sits exactly at that intersection: structured data, at a stable URL, designed for AI recruiters and ATS to read, while staying perfectly human-friendly through the portfolio page that renders the same data.
Be precise about the claim, because precision is the point of this whole site. No specific ATS vendor reads cv.json today. The standard is designed for where hiring is heading, not a description of what Workday parses this morning. What it gives you now is real regardless: one canonical source of truth, an open MIT-licensed schema, and zero parser guesswork when the reader on the other end is a machine. You are getting ahead of the curve, not pretending the curve already arrived.
How to get there in five steps
- Get your facts into clean structured fields. Build a cv.json free at
freecv.org/builder, which produces a valid file without you hand-writing JSON. - Publish it at a stable URL, your canonical address, the one thing you keep current forever.
- Add the discovery hooks: the
link rel="alternate"tag, the/.well-known/cv.jsonmanifest, and theX-CV-Versionheader. A hosted builder wires these for you. - Fill the
availabilityblock so AI recruiters can filter on you, not just read about you. - Keep sending PDFs where humans still expect them, generated from the same data, so your snapshot and your live source never drift apart.
What stays human (and always will)
None of this means the human disappears. The opposite, actually. As machines take over the reading and ranking, the parts they cannot do get more valuable, because they become the whole decision.
The evidence points here. Even where AI is embedded in the ATS, it is doing matching, ranking, summarization, and workflow automation. It is not doing the final yes. Judgment about fit, the read on whether you will thrive with this team, the conversation where someone decides they want to work with you: that stays human. A model can tell a hiring manager you match 8 of 10 requirements. It cannot tell them you are the person they will trust at 2am during an outage.
So the smart play is not to write for the robot at the expense of the human. It is to stop making the human and the robot read different things. Structured career data feeds the machine a clean version of the facts. The human still gets your story, your portfolio, your voice, rendered from that same data. Both readers, one source. You stop choosing between them.
The resume is not dying. It is splitting into a layer the machines read and a layer the humans read, and the trick is to keep both from the same file so they never contradict each other. That file is the future, and you can build yours today. Start a cv.json free at freecv.org/builder, publish it at your own address, and hand the next generation of hiring tools exactly what they are learning to read.
