1import{j as e,R as g}from"./animation-CddyXVCz.js";import{S as b}from"./SEOLandingPageTemplate-jokKzSh8.js";import{h as d,r as w,z as m,aC as u}from"./index-CGKNpi9E.js";import"./react-vendor-CbN3pvl2.js";import"./supabase-iKSPld20.js";import"./docgen-Bp8WKBAE.js";import"./query-DPqpbKNH.js";const l={measuredOn:"2026-08-16",pdfEngine:"pdf.js (pdfjs-dist) 5.4.449",docxEngine:"mammoth 1.8",scorer:"runAtsScan() â the same deterministic engine behind our free checker"},v=[{sha:"2d3e7992",date:"2026-08-10",summary:"PDF line reconstruction, the DOCX browser-upload shape, and the version-mismatched worker."},{sha:"9b48695c",date:"2026-08-10",summary:"Symbol-font bullets that arrive as Private Use Area codepoints."}],r={format:"Pasted plain text",score:98,grade:"A",impact:100,bullets:9,words:159,lines:25,note:"The resume as written. Everything below is the identical document in a different container."},c=[{format:"Single-column PDF",score:98,grade:"A",impact:100,bullets:9,words:159,lines:25,note:"Recovered line-for-line."},{format:"Two-column PDF",score:98,grade:"A",impact:100,bullets:9,words:159,lines:19,note:"Same score â but 19 lines, not 25. The columns are interleaved. See below."},{format:"PDF with Symbol-font bullets",score:98,grade:"A",impact:100,bullets:9,words:159,lines:25,note:"Bullets arrive as U+F0B7, never as ââ¢â, and are still read as bullets."},{format:"Word .docx",score:98,grade:"A",impact:100,bullets:9,words:159,lines:25,note:"Before 2026-08-10 this upload failed outright in the browser."}],h=[{format:"Single-column PDF",score:67,grade:"C",impact:30,bullets:0,words:159,lines:1},{format:"Two-column PDF",score:67,grade:"C",impact:30,bullets:0,words:159,lines:1},{format:"PDF with Symbol-font bullets",score:67,grade:"C",impact:30,bullets:0,words:159,lines:1}],j=[{title:"A PDF has no lines, and we were not rebuilding them",mechanism:"A PDF stores glyphs at coordinates, not lines of text. Our extractor joined every run of glyphs with a space, so a 25-line resume came out as a single 159-word line. The fix reconstructs lines from the glyph coordinates: group by baseline, and insert a space only where the page has a real gap â so a kerned âKubâ + âernetesâ stays âKubernetesâ instead of becoming two words.",cost:"Every line-oriented check downstream had nothing to work with. Bullet detection found 0 of 9, and the bullet-impact score fell to its floor of 30. Score 98 â 67, an A to a C.",soWhat:"Nothing was missing from the text. All 159 words were there in every single run we measured. What was destroyed was the structure â and structure is what a parser turns into fields."},{title:"Word bullets are often not the ââ¢â character at all",mechanism:"Symbol-class fonts â Symbol, Wingdings, OpenSymbol, which are Word's default list bullets on several export paths â have no real Unicode mapping. Extractors emit their glyphs into the Private Use Area instead, so a bullet authored in Word arrives as U+F0B7 and never as ââ¢â. We now match the whole U+F000âU+F0FF block rather than folding those codepoints back, because Word's other default bullets fold onto ordinary letters: U+F06C becomes âlâ, U+F0A7 becomes â§â, U+F0FC becomes âüâ.",cost:"A resume whose only difference was the font its bullets were drawn in scored 67/C against a pasted 98/A â after the line-reconstruction fix had already shipped.",soWhat:"This one is invisible. The document looks identical on screen and prints identically. The difference exists only in the file, which is exactly the class of problem you cannot proofread your way out of."},{title:"The .docx upload path was broken in browsers only",mechanism:"The library we use to read .docx swaps in a different unzip implementation for browsers, and only that one accepts the input shape we were passing. Every browser upload rejected with âCould not find file in optionsâ. Node accepted the old shape, so an end-to-end test passed while every real upload failed.",cost:"A .docx upload could not be scanned at all in a browser. We now assert against the library's browser module directly, so the environment that actually runs the code is the one under test.",soWhat:"File-format support is not a yes/no property of a system. It can be true in one environment and false in another, which is why âit worked when I tested itâ is weak evidence about a pipeline you cannot see."}],x={documentSays:["EXPERIENCE","Staff Software Engineer, Northwind Systems","January 2021 - Present","⢠Led migration of 40 microservices to Kubernetes, cutting deploy time 62%","⢠Reduced p99 API latency from 840ms to 210ms by rewriting the caching layer","","EDUCATION","B.S. Computer Science, University of Washington, 2016","","SKILLS","Python, TypeScript, Go, Kubernetes, â¦"],extractorStored:["linkedin.com/in/alexmorgan EXPERIENCE","EDUCATION Staff Software Engineer, Northwind Systems","B.S. Computer Science January 2021 - Present","University of Washington, 2016 ⢠Led migration of 40 microservices to Kubernetes, cutting deploy time 62%","SKILLS ⢠Reduced p99 API latency from 840ms to 210ms by rewriting the caching layer","Python ⢠Architected an event pipeline processing 12M events per day on Kafka","TypeScript ⢠Mentored 6 engineers, 3 of whom were promoted within 18 months"]},N=[{title:"A good score is not proof of a good parse",body:"Our two-column fixture scores 98/A â identical to the pasted baseline â and its stored text still welds a degree to a job's start date. The score was computed on text that had already been scrambled. This is the finding we did not expect, and it is the one worth carrying: a checker that reports a number is not the same as a checker that shows you the text it scored."},{title:"One column is the cheapest insurance you can buy",body:'Two columns are not "banned" and nothing auto-rejects them. The problem is narrower and more mundane: when a sidebar shares a horizontal band with the main body, a coordinate-based reader has no unambiguou
1s way to know which one continues the sentence. Ours interleaves them. A single-column layout has no ambiguity to resolve.'},{title:"Read the text back, not the PDF",body:"Copy your own resume out of the PDF and paste it into a plain text editor. That approximation of what a parser sees takes about fifteen seconds and catches interleaved columns, merged lines, and mangled bullets â the same three things this study found."},{title:"Boring section headers are doing real work",body:"EXPERIENCE, EDUCATION, SKILLS. Our extractor recovered those headers on every rendering, and they are the anchors that make the surrounding structure legible. Creative substitutes throw away a signal that costs you nothing to keep."},{title:"The failure mode is silent by design",body:"In every run we measured, the word count was 159 â before the fixes and after, in every format. Nothing was dropped and nothing was invented. A parse can be badly wrong while every word is still present, which is why this is not something you can catch by re-reading your resume."}],T=[{title:"N is one resume, in five renderings",body:"This is a controlled stress test, not a survey. We built one synthetic resume and rendered it five ways specifically to isolate failure modes we suspected. It tells you that these failures are real and exactly what they do. It tells you nothing about how often they occur in the wild, and we make no such estimate."}
1,{title:"We tested our own parser, not any employer's",body:"The subject here is CareerDiary's text-extraction pipeline â pdf.js and mammoth, as we use them. We did not test Workday, Greenhouse, Lever, Taleo, or any company's internal system. Those vendors do not publish their parsers and we have no access to them. Anyone claiming to have benchmarked them is guessing."},{title:"The document is synthetic and adversarial",body:"The fixture PDFs are hand-built so we control the exact coordinates of every run of text â that is the whole point, since coordinate reconstruction is what is under test. The two-column fixture deliberately shares horizontal bands between the sidebar and the body, which is the hard case. A real two-column resume may be laid out more forgivingly, or less."},{title:"The scores are our scorer's opinion",body:"The 98s and 67s come from our own deterministic scoring engine. It is consistent and it is transparent about what it rewards, but it is one opinion about resume quality, not an industry standard. The score movements matter here because they are measuring structural damage; the absolute numbers are not a grade any employer will give you."},{title:"Reading order for multi-column layouts is out of scope for us",body:"Our extractor deliberately does not attempt to resolve column reading order â a two-column resume has genuinely ambiguous order, and guessing wrong is worse than being predictable. We compensate downstream by treating bullet glyphs as evidence anywhere in a line rather than only at its start, which is why the two-column fixture still scores correctly despite its text being interleaved."},{title:"The fixtures live in a private repository",body:"We can and do re-run this on demand â the study's numbers are asserted by a test suite that reads the committed fixtures, so the page cannot drift from the parser. But the repository is not public, so you cannot clone it and reproduce this yourself today. We would rather say that plainly than imply an openness we have not shipped."}],p="/ats-resume-checker?utm_source=study&utm_medium=content&utm_campaign=parsing-study",S="CareerDiary is our product, and the parser in this study is ours. We are publishing our own bugs â the checker is free either way.",i="px-3 py-2 text-left text-xs font-semibold uppercase tracking-wide text-[var(--text-secondary)]",s="px-3 py-2 text-sm text-[var(--text-primary)] whitespace-nowrap",y=({caption:t,rows:n,baseline:a})=>e.jsx("div",{className:"overflow-x-auto rounded-lg border border-[var(--border-default)]",children:e.jsxs("table",{className:"w-full min-w-[46rem] border-collapse",children:[e.jsx("caption",{className:"sr-only",children:t}),e.jsx("thead",{className:"bg-[var(--bg-secondary)]",children:e.jsxs("tr",{children:[e.jsx("th",{scope:"col",className:i,children:"How it was handed over"}),e.jsx("th",{scope:"col",className:i,children:"Score"}),e.jsx("th",{scope:"col",className:i,children:"Grade"}),e.jsx("th",{scope:"col",className:i,children:"Bullet impact"}),e.jsx("th",{scope:"col",className:i,children:"Bullets found"}),e.jsx("th",{scope:"col",className:i,children:"Words"}),e.jsx("th",{scope:"col",className:i,children:"Lines"})]})}),e.jsxs("tbody",{children:[a&&e.jsxs("tr",{className:"border-t border-[var(--border-default)] bg-[var(--color-accent)]/5",children:[e.jsx("th",{scope:"row",className:`${s} font-semibold`,children:a.format}),e.jsx("td",{className:s,children:a.score}),e.jsx("td",{className:s,children:a.grade}),e.jsx("td",{className:s,children:a.impact}),e.jsx("td",{className:s,children:a.bullets}),e.jsx("td",{className:s,children:a.words}),e.jsx("td",{className:s,children:a.lines})]}),n.map(o=>e.jsxs("tr",{className:"border-t border-[var(--border-default)]",children:[e.jsx("th",{scope:"row",className:`${s} font-normal`,children:o.format}),e.jsx("td",{className:s,children:o.score}),e.jsx("td",{className:s,children:o.grade}),e.jsx("td",{className:s,children:o.impact}),e.jsx("td",{className:s,children:o.bullets}),e.jsx("td",{className:s,children:o.words}),e.jsx("td",{className:s,children:o.lines})]},o.format))]})]})}),f=({label:t,lines:n,tone:a})=>e.jsxs("div",{className:"min-w-0 space-y-2",children:[e.jsxs("p",{className:"flex items-center gap-2 text-sm font-semibold text-[var(--text-primary)]",children:[a==="good"?e.jsx(w,{className:"h-4 w-4 flex-shrink-0 text-[var(--color-accent)]"}):e.jsx(m,{className:"h-4 w-4 flex-shrink-0 text-[color:var(--rust,#A23B2B)]"}),t]}),e.jsx("div",{className:"overflow-x-auto rounded-lg border border-[var(--border-default)] bg-[var(--bg-secondary)]",children:e.jsx("pre",{className:"p-4 text-xs leading-relaxed text-[var(--text-primary)]",children:e.jsx("code",{children:n.join(` 2`)||" "})})}),e.jsx("p",{className:"text-xs italic text-[var(--text-secondary)]",children:"Long lines are not wrapped â scroll sideways to read them in full."})]}),k=[{question:"What exactly did you test in this resume parsing study?",answer:`One synthetic resume, rendered five ways: pasted plain text, a single-column PDF, a two-column PDF, a PDF whose bullets are drawn in a Symbol font, and a Word .docx. We ran each through our own text-extraction pipeline (${l.pdfEngine} for PDFs, ${l.docxEngine} for Word) and scored the extracted text with the same deterministic engine that powers our free checker. The fixtures are committed and the numbers on this page are asserted by a test suite, so the page cannot drift from what the parser actually does.`},{question:"Does this tell me how Workday or Greenhouse will read my resume?",answer:"No, and we want to be blunt about that. We tested our own parser. Workday, Greenhouse, Lever, Taleo and every employer'
2s internal system are closed â they do not publish their parsers and we have no access to them. What this study shows is that the class of failure is real and mechanical: a document that looks perfect can extract into scrambled text. Whether any specific employer's system has the same weaknesses, we cannot say, and neither can anyone else who has not been given access."},{question:"So what percentage of resumes get filtered out by parsing errors?",answer:"We do not know, and we will not guess. The widely repeated figures about resumes being auto-filtered before a human sees them are not published by any ATS vendor. This study is one document in five renderings â it establishes that a failure mode exists and shows exactly what it does, which is a different and more modest claim than a rate. Anyone quoting a percentage should be asked where it came from."},{question:"Should I avoid two-column resume templates?",answer:"If you want the safest option, yes â one column removes an ambiguity rather than gambling on how it gets resolved. But the honest version is narrower than the usual advice: nothing auto-rejects a two-column layout. The issue is that when a sidebar shares a horizontal band with the main body, a coordinate-based reader has no unambiguous way to know which one continues the sentence. Our extractor interleaves them, which you can see in the side-by-side example above."},{question:"How can I check my own resume for this?",answer:"Two ways, and the first is free and takes fifteen seconds: copy the text out of your own PDF and paste it into a plain text editor. What you see is a rough approximation of what a parser gets, and it will show you interleaved columns and merged lines immediately. Second, run it through our free checker, which reports the structural signals â bullets found, section headings recognised, and keyword coverage against a specific job description."},{question:"Is this checker really free with no signup?",answer:"Yes. The scan is unlimited and runs entirely in your browser â no account, no email, no scan cap. A free account only adds extras: fixing every weak bullet with AI, tailoring to a specific job, and score history."},{question:"Is my resume uploaded or stored anywhere?",answer:"No. The scan is computed locally in your browser â your resume text is never uploaded, stored, or used for training. If you choose the optional AI sample rewrite, only that single bullet point is sent for processing."}],I=()=>e.jsx(b,{seo:{title:"Resume Parsing Study: What Software Actually Stores | CareerDiary",description:"We rendered one resume five ways and measured what our parser extracted. A two-column PDF scored 98/A while storing a degree welded to a job date. Real numbers, real limitations, free checker.",canonical:"https://careerdiary.io/resume-parsing-study",keywords:["resume parsing study","ats resume parsing test","two column resume ats","does resume formatting matter ats","resume parser errors","pdf vs docx resume ats"],schemaName:"Resume Parsing Study: What Software Actually Stores",schemaType:"Article"},hero:{headline:"We Broke Our Own Resume Parser on Purpose",subheadline:"One resume, rendered five ways, run through our real extraction pipeline. The same document scored 98 as pasted text and 67 as a PDF â and the most useful finding was the one where the score stayed perfect and the text was scrambled anyway.",primaryCTA:{label:"Check Your Resume Free",href:p},secondaryCTA:{label:"Read the Method",href:"#method"},badge:`Measured ${l.measuredOn} · N = 1 resume, 5 renderings`},toolSlot:e.jsxs(e.Fragment,{children:[e.jsxs("section",{"aria-label":"Summary of findings",className:"max-w-4xl mx-auto px-4 sm:px-6 lg:px-8 pb-16 space-y-6",children:[e.jsx("p",{className:"text-center text-sm italic text-[var(--text-secondary)]",children:S}),e.jsx("h2",{className:"text-3xl md:text-4xl font-bold text-center text-[var(--text-primary)]",children:"What we found"}),e.jsx(d,{variant:"soft",padding:"md",children:e.jsxs("ul",{className:"space-y-4 text-[var(--text-primary)]",children:[e.jsxs("li",{className:"flex items-start gap-3",children:[e.jsx(w,{className:"mt-1 h-4 w-4 flex-shrink-0 text-[var(--color-accent)]"}),e.jsxs("span",{children:[e.jsx("strong",{children:"Not one word was ever lost."})," Across every format and both generations of our parser, the extracted word count was"," ",e.jsx("strong",{children:r.words})," â identical to the source, every time. Nothing was dropped and nothing was invented."]})]}),e.jsxs("li",{className:"flex items-start gap-3",children:[e.jsx(m,{className:"mt-1 h-4 w-4 flex-shrink-0 text-[color:var(--rust,#A23B2B)]"}),e.jsxs("span",{children:[e.jsx("strong",{children:"The structure was destroyed instead."})," A ",r.lines,"-line resume came out of our old PDF extractor as a single line. Every downstream check is line-oriented, so bullet detection found ",e.jsxs("strong",{children:["0 of ",r.bullets]})," ","and the score fell from ",e.jsxs("strong",{children:[r.score,"/A"]})," to"," ",e.jsxs("strong",{children:[h[0].score,"/C"]}),"."]})]}),e.jsxs("li",{className:"flex items-start gap-3",children:[e.jsx(m,{className:"mt-1 h-4 w-4 flex-shrink-0 text-[color:var(--rust,#A23B2B)]"}),e.jsxs("span",{children:[e.jsx("strong",{children:"Word's bullets are frequently not ââ¢â at all."})," Symbol-font bullets arrive as Private Use Area codepoints like U+F0B7. A resume identical in every way except the font its bullets were drawn in scored"," ",e.jsxs("strong",{children:[h[2].score,"/C"]})," against a pasted"," ",e.jsxs("strong",{children:[r.score,"/A"]}),"."]})]}),e.jsxs("li",{className:"flex items-start gap-3",children:[e.jsx(u,{className:"mt-1 h-4 w-4 flex-shrink-0 text-[var(--color-accent)]"}),e.jsxs("span",{children:[e.jsx("strong",{children:"And the finding we did not expect:"})," our two-column fixture scores"," ",e.jsxs("strong",{children:[c[1].score,"/A"]})," today â a perfect result â while the text it scored has a degree welded to a job's start date. A clean score is not proof of a clean parse."]})]})]})})]}),e.jsx("section",{id:"method","aria-label":"Method",className:"bg-[var(--bg-secondary)] py-16 scroll-mt-24",children:e.jsxs("div",{className:"max-w-4xl mx-auto px-4 sm:px-6 lg:px-8 space-y-6",children:[e.jsx("h2",{className:"text-3xl md:text-4xl font-bold text-center text-[var(--text-primary)]",children:"Method"}),e.jsxs("div",{className:"space-y-4 text-[var(--text-secondary)] leading-relaxed",children:[e.jsxs("p",{children:[e.jsx("strong",{className:"text-[var(--text-primary)]",children:"The document."})," One synthetic resume for a fictional senior backend engineer â ",r.words," words,"," ",r.bullets," bullets, ",r.lines," lines. It is generated deterministically from a single source of truth, so every rendering below contains byte-identical text. No real person's resume was used."]}),e.jsxs("p",{children:[e.jsx("strong",{className:"text-[var(--text-primary)]",children:"The five renderings."})," Plain text (the baseline), a single-column PDF, a two-column PDF whose sidebar deliberately shares horizontal bands with the main body, a PDF whose bullets are drawn in a Symbol font carrying the character mapping that produces Private Use Area codepoints, and a Word .docx. The PDFs are emitted by a hand-written generator rather than a layout library, because the thing under test is line reconstruction from glyph coordinates â so the fixture has to control the exact position of every run of text."]}),e.jsxs("p",{children:[e.jsx("strong",{className:"text-[var(--text-primary)]",children:"The pipeline."})," ",l.pdfEngine," for PDFs and ",l.docxEngine," for Word â the same extraction path that runs in your browser when you use our free checker. Scores come from"," ",l.scorer,"."]}),e.jsxs("p",{children:[e.jsx("strong",{className:"text-[var(--text-primary)]",children:"The comparison."})," We ran every fixture through two generations of the pipeline: the code as it stood on 202
26-08-09, and the code as it stands today. Both sets of numbers on this page were measured on"," ",l.measuredOn," by checking out each commit and re-running."]}),e.jsxs("p",{children:[e.jsx("strong",{className:"text-[var(--text-primary)]",children:"Provenance."})," The defects were fixed in"," ",v.map((t,n)=>e.jsxs(g.Fragment,{children:[n>0&&" and ",e.jsx("code",{className:"rounded bg-[var(--bg-primary)] px-1 py-0.5 text-xs",children:t.sha})," ","(",t.date,")"]},t.sha)),". Both are deployed. The numbers rendered on this page are re-derived from the committed fixtures by a test in our suite, so if the parser changes and this page does not, the build goes red."]})]})]})}),e.jsx("section",{"aria-label":"Results",className:"py-16",children:e.jsxs("div",{className:"max-w-5xl mx-auto px-4 sm:px-6 lg:px-8 space-y-10",children:[e.jsx("h2",{className:"text-3xl md:text-4xl font-bold text-center text-[var(--text-primary)]",children:"Results"}),e.jsxs("div",{className:"space-y-3",children:[e.jsx("h3",{className:"text-xl font-bold text-[var(--text-primary)]",children:"Before â the pipeline as it stood on 202
26-08-09"}),e.jsx("p",{className:"text-sm text-[var(--text-secondary)]",children:"Highlighted row is the pasted-text baseline. Every other row is the identical document in a different container."}),e.jsx(y,{caption:"Scores for each rendering under the pre-2026-08-10 extraction pipeline",rows:h,baseline:r}),e.jsxs("p",{className:"text-sm text-[var(--text-secondary)]",children:["Every PDF collapsed to a single line, so bullet detection found nothing and the bullet-impact score sat at its floor of ",h[0].impact,". The .docx is absent from this table because it could not be read at all in a browser â the upload rejected outright."]})]}),e.jsxs("div",{className:"space-y-3",children:[e.jsx("h3",{className:"text-xl font-bold text-[var(--text-primary)]",children:"After â the pipeline today"}),e.jsx(y,{caption:"Scores for each rendering under the current extraction pipeline",rows:c,baseline:r}),e.jsx("ul",{className:"space-y-1 text-sm text-[var(--text-secondary)]",children:c.filter(t=>t.note).map(t=>e.jsxs("li",{children:[e.jsxs("strong",{className:"text-[var(--text-primary)]",children:[t.format,":"]})," ",t.note]},t.format))})]})]})}),e.jsx("section",{id:"two-column","aria-label":"A real two-column mis-parse",className:"bg-[var(--bg-secondary)] py-16 scroll-mt-24",children:e.jsxs("div",{className:"max-w-5xl mx-auto px-4 sm:px-6 lg:px-8 space-y-6",children:[e.jsxs("div",{className:"text-center space-y-2",children:[e.jsx("h2",{className:"text-3xl md:text-4xl font-bold text-[var(--text-primary)]",children:"A real two-column mis-parse"}),e.jsxs("p",{className:"mx-auto max-w-2xl text-[var(--text-secondary)]",children:["This is not an illustration. The right-hand column is quoted verbatim from what our current extractor returned for the two-column fixture â the same run that scored"," ",c[1].score,"/A. Both sides are excerpts around the same part of the document."]})]}),e.jsxs("div",{className:"grid gap-6 md:grid-cols-2",children:[e.jsx(f,{label:"What the document says",lines:x.documentSays,tone:"good"}),e.jsx(f,{label:"What the extractor stored",lines:x.extractorStored,tone:"bad"})]}),e.jsx(d,{variant:"soft",padding:"md",children:e.jsxs("p",{className:"text-sm leading-relaxed text-[var(--text-primary)]",children:["Read the third line on the right:"," ",e.jsx("em",{children:"âB.S. Computer Science January 2021 - Presentâ"}),". The degree and the job's start date are now one line, because in the source PDF they sit at the same height on the page â one in the sidebar, one in the body. A reader working from coordinates has no unambiguous way to know they are unrelated. Our extractor does not try to guess column order, on the grounds that guessing wrong is worse than being predictable; the score survives because bullet detection tolerates a bullet appearing anywhere in a line rather than only at its start."]})})]})}),e.jsx("section",{"aria-label":"The defects in detail",className:"py-16",children:e.jsxs("div",{className:"max-w-4xl mx-auto px-4 sm:px-6 lg:px-8 space-y-8",children:[e.jsx("h2",{className:"text-3xl md:text-4xl font-bold text-center text-[var(--text-primary)]",children:"The three defects, in detail"}),e.jsx("div",{className:"space-y-6",children:j.map((t,n)=>e.jsx(d,{variant:"soft",padding:"md",children:e.jsxs("div",{className:"space-y-3",children:[e.jsxs("h3",{className:"flex items-start gap-3 text-lg font-bold text-[var(--text-primary)]",children:[e.jsx("span",{className:"flex h-7 w-7 flex-shrink-0 items-center justify-center rounded-full bg-[var(--color-accent)]/10 font-mono text-sm text-[var(--color-accent)]",children:n+1}),t.title]}),e.jsxs("p",{className:"text-sm leading-relaxed text-[var(--text-secondary)]",children:[e.jsx("strong",{className:"text-[var(--text-primary)]",children:"What the code did: "}),t.mechanism]}),e.jsxs("p",{className:"text-sm leading-relaxed text-[var(--text-secondary)]",children:[e.jsx("strong",{className:"text-[var(--text-primary)]",children:"What it cost: "}),t.cost]}),e.jsxs("p",{className:"text-sm leading-relaxed text-[var(--text-secondary)]",children:[e.jsx("strong",{className:"text-[var(--text-primary)]",children:"Why it matters to you: "}),t.soWhat]}
2)]})},t.title))})]})}),e.jsx("section",{id:"takeaways","aria-label":"What this means if you are job hunting",className:"bg-[var(--bg-secondary)] py-16 scroll-mt-24",children:e.jsxs("div",{className:"max-w-4xl mx-auto px-4 sm:px-6 lg:px-8 space-y-8",children:[e.jsx("h2",{className:"text-3xl md:text-4xl font-bold text-center text-[var(--text-primary)]",children:"What this means if you're job hunting"}),e.jsx("div",{className:"grid gap-6 sm:grid-cols-2",children:N.map(t=>e.jsxs("div",{className:"flex items-start gap-3",children:[e.jsx(u,{className:"mt-1 h-5 w-5 flex-shrink-0 text-[var(--color-accent)]"}),e.jsxs("div",{children:[e.jsx("h3",{className:"font-bold text-[var(--text-primary)]",children:t.title}),e.jsx("p",{className:"mt-1 text-sm leading-relaxed text-[var(--text-secondary)]",children:t.body})]})]},t.title))}),e.jsxs("div",{className:"text-center",children:[e.jsx("a",{href:p,className:"inline-flex items-center gap-2 rounded-full bg-[var(--color-accent)] px-8 py-4 text-lg font-semibold text-white shadow-xl transition-all hover:shadow-2xl",children:"Run the free checker on your resume"}),e.jsx("p",{className:"mt-3 text-sm text-[var(--text-secondary)]",children:"Unlimited, no signup. The scan runs entirely in your browser â your resume text is never uploaded. The one optional AI rewrite sends a single bullet point, and only if you ask for it."})]})]})}),e.jsx("section",{id:"limitations","aria-label":"Limitations",className:"py-16 scroll-mt-24",children:e.jsxs("div",{className:"max-w-4xl mx-auto px-4 sm:px-6 lg:px-8 space-y-8",children:[e.jsxs("div",{className:"text-center space-y-2",children:[e.jsx("h2",{className:"text-3xl md:text-4xl font-bold text-[var(--text-primary)]",children:"Limitations"}),e.jsx("p",{className:"mx-auto max-w-2xl text-[var(--text-secondary)]",children:"What this study does not show. We would rather you discount it correctly than over-trust it."})]}),e.jsx("div",{className:"space-y-5",children:T.map(t=>e.jsxs("div",{className:"border-l-2 border-[var(--border-default)] pl-4",children:[e.jsx("h3",{className:"font-bold text-[var(--text-primary)]",children:t.title}),e.jsx("p",{className:"mt-1 text-sm leading-relaxed text-[var(--text-secondary)]",children:t.body})]},t.title))}),e.jsx(d,{variant:"soft",padding:"md",children:e.jsx("p",{className:"text-sm leading-relaxed text-[var(--text-primary)]",children:"One thing we will not do is put a percentage on this. You will find claims that a specific share of resumes are filtered out before a human sees them; no ATS vendor publishes such a figure, and we have not measured one. This study is one document in five renderings. It shows that a failure mode is real and demonstrates exactly what it does â which is a smaller claim than a rate, and the largest one the evidence supports."})})]})})]}),faqs:k,faqsTitle:"Questions about this study",relatedPages:[{label:"Free ATS Resume Checker",href:"/ats-resume-checker"},{label:"Workday Guide",href:"/ats/workday"},{label:"Greenhouse Guide",href:"/ats/greenhouse"},{label:"Lever Guide",href:"/ats/lever"},{label:"Taleo Guide",href:"/ats/taleo"},{label:"Is It Your Resume or the Market?",href:"/tools/resume-or-market"}]});export{I as ResumeParsingStudyPage,I as default};
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.