<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: dk017</title>
    <description>The latest articles on DEV Community by dk017 (@dk017).</description>
    <link>https://dev.to/dk017</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F944133%2Fe3b6853e-8d56-4354-ac5a-f3060274444b.png</url>
      <title>DEV Community: dk017</title>
      <link>https://dev.to/dk017</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/dk017"/>
    <language>en</language>
    <item>
      <title>Your CV Is a Parsing Problem: Why Good Candidates Get Lost Before a Recruiter Reads Anything</title>
      <dc:creator>dk017</dc:creator>
      <pubDate>Sun, 26 Apr 2026 16:12:52 +0000</pubDate>
      <link>https://dev.to/dk017/your-cv-is-a-parsing-problem-why-good-candidates-get-lost-before-a-recruiter-reads-anything-8aa</link>
      <guid>https://dev.to/dk017/your-cv-is-a-parsing-problem-why-good-candidates-get-lost-before-a-recruiter-reads-anything-8aa</guid>
      <description>&lt;p&gt;Your CV Is a Parsing Problem: Why Good Candidates Get Lost Before a Recruiter Reads Anything&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F10x6gbqsial6kcudo2mg.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F10x6gbqsial6kcudo2mg.png" alt=" " width="800" height="343"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Most CV advice focuses on the obvious things:&lt;/p&gt;

&lt;p&gt;use action verbs&lt;br&gt;
add measurable achievements&lt;br&gt;
tailor your CV to the job&lt;br&gt;
keep it short&lt;br&gt;
avoid spelling mistakes&lt;/p&gt;

&lt;p&gt;All of that matters.&lt;/p&gt;

&lt;p&gt;But there is another layer that rarely gets explained properly:&lt;/p&gt;

&lt;p&gt;Before a recruiter reads your CV, software often has to parse it.&lt;/p&gt;

&lt;p&gt;And parsing documents is messy.&lt;/p&gt;

&lt;p&gt;As developers, we know this already. Give the same data to five systems in five different formats and you will get five different failure modes. A CV is no different. It may look perfect to a human, but to an Applicant Tracking System, it is just an input file that needs to be extracted, normalized, matched and ranked.&lt;/p&gt;

&lt;p&gt;That is why a good CV is not only a writing problem.&lt;/p&gt;

&lt;p&gt;It is also a document structure problem.&lt;/p&gt;

&lt;p&gt;Career services and resume guidance from multiple sources repeatedly warn against formatting choices that make resumes harder for ATS systems to read: headers, footers, tables, text boxes, heavy templates, unusual symbols and overly designed layouts. Columbia’s career guidance, for example, recommends avoiding headers, footers, tables, templates, borders, lines and symbols, and the University of Illinois at Chicago gives similar warnings about formatting and file readability.&lt;/p&gt;

&lt;p&gt;Think of your CV as structured data&lt;/p&gt;

&lt;p&gt;A recruiter sees this:&lt;/p&gt;

&lt;p&gt;Senior Python Developer&lt;br&gt;
XYZ Org&lt;br&gt;
Feb 2026 – Present&lt;/p&gt;

&lt;p&gt;An ATS may need to extract:&lt;/p&gt;

&lt;p&gt;{&lt;br&gt;
  "job_title": "Senior Python Developer",&lt;br&gt;
  "company": "XYZ Org",&lt;br&gt;
  "start_date": "2026-02",&lt;br&gt;
  "end_date": "present"&lt;br&gt;
}&lt;/p&gt;

&lt;p&gt;That looks simple until the CV uses:&lt;/p&gt;

&lt;p&gt;two columns&lt;br&gt;
icons instead of labels&lt;br&gt;
dates inside text boxes&lt;br&gt;
contact details in the header&lt;br&gt;
skills in a sidebar&lt;br&gt;
custom fonts&lt;br&gt;
sections without standard headings&lt;br&gt;
PDF layers from design tools&lt;br&gt;
tables used for layout&lt;/p&gt;

&lt;p&gt;Now the parser has to guess.&lt;/p&gt;

&lt;p&gt;And when software guesses, it sometimes guesses wrong.&lt;/p&gt;

&lt;p&gt;That is the hidden reason why some visually impressive CVs perform badly. They are designed for the eye, not for extraction.&lt;/p&gt;

&lt;p&gt;The most common ATS-breaking CV patterns&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Important information in headers and footers&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Many people put their name, phone number, email and LinkedIn URL in the header.&lt;/p&gt;

&lt;p&gt;It looks clean.&lt;/p&gt;

&lt;p&gt;But some parsers ignore or mishandle header/footer content. If your contact details are not extracted correctly, the rest of the CV may still be readable, but the candidate record can become incomplete.&lt;/p&gt;

&lt;p&gt;Better:&lt;/p&gt;

&lt;p&gt;Michael Hans&lt;br&gt;
Phoenix, USA&lt;br&gt;
&lt;a href="mailto:michael@example.com"&gt;michael@example.com&lt;/a&gt;&lt;br&gt;
linkedin.com/in/example&lt;/p&gt;

&lt;p&gt;Put this in the main body of the document, not only inside a header/footer.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Two-column layouts&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Two-column CVs are popular because they look modern. The left column usually contains skills, tools, languages and contact information. The right column contains experience.&lt;/p&gt;

&lt;p&gt;Humans understand this visually.&lt;/p&gt;

&lt;p&gt;A parser may not.&lt;/p&gt;

&lt;p&gt;It might read left-to-right across columns instead of top-to-bottom. That can mix unrelated text together:&lt;/p&gt;

&lt;p&gt;Python English SAP Ariba Django Dutch Backend Developer...&lt;/p&gt;

&lt;p&gt;Now your structured career history becomes noisy.&lt;/p&gt;

&lt;p&gt;This is why many ATS-focused resume guides recommend simple, single-column layouts. Recent ATS formatting guidance also points out that multi-column designs can cause parsing problems because systems may read across columns instead of down the page.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Tables used for layout&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Tables are useful in documents, but risky in CVs.&lt;/p&gt;

&lt;p&gt;A table may visually align dates and job titles nicely:&lt;/p&gt;

&lt;p&gt;2022 - 2024 | Backend Developer | Company X&lt;br&gt;
2020 - 2022 | Software Engineer | Company Y&lt;/p&gt;

&lt;p&gt;But extraction can produce strange ordering, duplicate text or missing columns.&lt;/p&gt;

&lt;p&gt;For ATS readability, plain text structure is safer:&lt;/p&gt;

&lt;p&gt;Backend Developer&lt;br&gt;
Company X&lt;br&gt;
June 2022 – February 2024&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Built REST APIs using Java and Spring Boot.&lt;/li&gt;
&lt;li&gt;Improved batch processing performance by 35%.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The parser has a much easier job.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Icons instead of text labels&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;A phone icon looks nice.&lt;/p&gt;

&lt;p&gt;An email icon looks nice.&lt;/p&gt;

&lt;p&gt;A location icon looks nice.&lt;/p&gt;

&lt;p&gt;But a parser does not “understand” your visual intent the way a human does.&lt;/p&gt;

&lt;p&gt;Instead of:&lt;/p&gt;

&lt;p&gt;📞 +31 6 12345678&lt;br&gt;
✉️ &lt;a href="mailto:name@example.com"&gt;name@example.com&lt;/a&gt;&lt;br&gt;
📍 Amsterdam&lt;/p&gt;

&lt;p&gt;Use:&lt;/p&gt;

&lt;p&gt;Phone: +31 6 12345678&lt;br&gt;
Email: &lt;a href="mailto:name@example.com"&gt;name@example.com&lt;/a&gt;&lt;br&gt;
Location: Amsterdam&lt;/p&gt;

&lt;p&gt;A little less fancy, much more explicit.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Creative section names&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Developers love naming things.&lt;/p&gt;

&lt;p&gt;Unfortunately, CV section names are not the place to be creative.&lt;/p&gt;

&lt;p&gt;Instead of:&lt;/p&gt;

&lt;p&gt;Where I made impact&lt;br&gt;
My toolkit&lt;br&gt;
Things I have shipped&lt;br&gt;
A bit about me&lt;/p&gt;

&lt;p&gt;Use standard headings:&lt;/p&gt;

&lt;p&gt;Profile&lt;br&gt;
Work Experience&lt;br&gt;
Education&lt;br&gt;
Skills&lt;br&gt;
Certifications&lt;br&gt;
Languages&lt;/p&gt;

&lt;p&gt;The parser, recruiter and hiring manager all understand these instantly.&lt;/p&gt;

&lt;p&gt;Keywords matter, but not in the way people think&lt;/p&gt;

&lt;p&gt;A lot of ATS advice says:&lt;/p&gt;

&lt;p&gt;“Add keywords from the job description.”&lt;/p&gt;

&lt;p&gt;That is true, but incomplete.&lt;/p&gt;

&lt;p&gt;Keyword stuffing does not help if the CV is vague.&lt;/p&gt;

&lt;p&gt;For example, this is weak:&lt;/p&gt;

&lt;p&gt;Worked with Java, Spring Boot, REST APIs, microservices, SQL, AWS.&lt;/p&gt;

&lt;p&gt;This is better:&lt;/p&gt;

&lt;p&gt;Built Java and Spring Boot REST APIs for invoice processing workflows, using SQL for data access and AWS S3 for archived document storage.&lt;/p&gt;

&lt;p&gt;The second version does three things:&lt;/p&gt;

&lt;p&gt;It includes relevant keywords.&lt;br&gt;
It explains context.&lt;br&gt;
It shows what the person actually did.&lt;/p&gt;

&lt;p&gt;ATS systems may help filter and rank applications, but humans still make the hiring decision. A good CV has to work for both.&lt;/p&gt;

&lt;p&gt;A developer-friendly checklist for an ATS-readable CV&lt;/p&gt;

&lt;p&gt;Here is the practical version.&lt;/p&gt;

&lt;p&gt;Structure&lt;/p&gt;

&lt;p&gt;Use:&lt;/p&gt;

&lt;p&gt;Name&lt;br&gt;
Contact details&lt;br&gt;
Profile&lt;br&gt;
Work Experience&lt;br&gt;
Education&lt;br&gt;
Skills&lt;br&gt;
Certifications&lt;br&gt;
Languages&lt;/p&gt;

&lt;p&gt;Avoid:&lt;/p&gt;

&lt;p&gt;sidebar-only skills&lt;br&gt;
hidden headers&lt;br&gt;
text boxes&lt;br&gt;
tables for layout&lt;br&gt;
icons without labels&lt;br&gt;
Dates&lt;/p&gt;

&lt;p&gt;Use clear date formats:&lt;/p&gt;

&lt;p&gt;June 2022 – February 2024&lt;br&gt;
Feb 2020 – May 2022&lt;br&gt;
2020 – 2022&lt;/p&gt;

&lt;p&gt;Avoid:&lt;/p&gt;

&lt;p&gt;'22 - '24&lt;br&gt;
Q1 22 - Q2 24&lt;br&gt;
2 yrs at Company X&lt;/p&gt;

&lt;p&gt;Clear date formatting helps both ATS systems and recruiters understand your timeline. Recent resume formatting guidance also recommends standard date formats rather than abbreviated or ambiguous date styles.&lt;/p&gt;

&lt;p&gt;Job descriptions&lt;/p&gt;

&lt;p&gt;Bad:&lt;/p&gt;

&lt;p&gt;Responsible for backend development.&lt;/p&gt;

&lt;p&gt;Better:&lt;/p&gt;

&lt;p&gt;Developed Java Spring Boot APIs for customer onboarding workflows and reduced manual processing by automating validation checks.&lt;/p&gt;

&lt;p&gt;Bad:&lt;/p&gt;

&lt;p&gt;Worked on database.&lt;/p&gt;

&lt;p&gt;Better:&lt;/p&gt;

&lt;p&gt;Optimized SQL queries and reduced report generation time from 40 seconds to under 10 seconds.&lt;/p&gt;

&lt;p&gt;Bad:&lt;/p&gt;

&lt;p&gt;Handled support tickets.&lt;/p&gt;

&lt;p&gt;Better:&lt;/p&gt;

&lt;p&gt;Resolved production issues related to payment failures, API timeouts and data synchronization errors.&lt;/p&gt;

&lt;p&gt;The better examples are not just “more impressive”. They are also easier to classify.&lt;/p&gt;

&lt;p&gt;The best CV format is boring on purpose&lt;/p&gt;

&lt;p&gt;This is hard to accept because job seekers want to stand out.&lt;/p&gt;

&lt;p&gt;But your CV should not stand out because of design complexity.&lt;/p&gt;

&lt;p&gt;It should stand out because your experience is clear.&lt;/p&gt;

&lt;p&gt;For many applications, especially in markets like the Netherlands, a reverse-chronological CV is a safe default: most recent work first, clear role/company/date structure, and concise bullet points. Netherlands-focused CV guidance commonly recommends reverse chronological order, clear role descriptions and practical, direct presentation.&lt;/p&gt;

&lt;p&gt;A good CV layout is like a good API.&lt;/p&gt;

&lt;p&gt;It should be:&lt;/p&gt;

&lt;p&gt;predictable&lt;br&gt;
easy to parse&lt;br&gt;
hard to misuse&lt;br&gt;
clear under edge cases&lt;br&gt;
boring in the best possible way&lt;br&gt;
A simple way to test your CV&lt;/p&gt;

&lt;p&gt;You can do a lightweight manual test before sending your CV.&lt;/p&gt;

&lt;p&gt;Test 1: Copy-paste test&lt;/p&gt;

&lt;p&gt;Open your PDF. Select all text. Copy it. Paste it into a plain text editor.&lt;/p&gt;

&lt;p&gt;Ask:&lt;/p&gt;

&lt;p&gt;Is the order still logical?&lt;br&gt;
Are job titles near the right companies?&lt;br&gt;
Are dates still readable?&lt;br&gt;
Did your contact details appear?&lt;br&gt;
Are skills mixed into unrelated sections?&lt;br&gt;
Are strange symbols appearing?&lt;/p&gt;

&lt;p&gt;If the pasted text is chaotic, a parser may also struggle.&lt;/p&gt;

&lt;p&gt;Test 2: Section heading test&lt;/p&gt;

&lt;p&gt;Scan your CV and check if these words are easy to find:&lt;/p&gt;

&lt;p&gt;Profile&lt;br&gt;
Work Experience&lt;br&gt;
Education&lt;br&gt;
Skills&lt;/p&gt;

&lt;p&gt;If your CV uses creative labels, rename them.&lt;/p&gt;

&lt;p&gt;Test 3: Vacancy match test&lt;/p&gt;

&lt;p&gt;Take the job description and highlight recurring terms:&lt;/p&gt;

&lt;p&gt;Java&lt;br&gt;
Spring Boot&lt;br&gt;
REST API&lt;br&gt;
Kafka&lt;br&gt;
AWS&lt;br&gt;
SQL&lt;br&gt;
Microservices&lt;br&gt;
CI/CD&lt;/p&gt;

&lt;p&gt;Now check whether your CV uses those terms naturally in your work experience, not only in a skills list.&lt;/p&gt;

&lt;p&gt;Bad:&lt;/p&gt;

&lt;p&gt;Skills: Java, Kafka, AWS, SQL&lt;/p&gt;

&lt;p&gt;Better:&lt;/p&gt;

&lt;p&gt;Built Kafka-based event consumers for order synchronization and stored processed records in PostgreSQL.&lt;br&gt;
Why I built a small tool around this&lt;/p&gt;

&lt;p&gt;I have been working on &lt;a href="https://werkcv.nl" rel="noopener noreferrer"&gt;WerkCV.nl&lt;/a&gt;, a Dutch CV builder focused on simple, ATS-friendly CVs for the Netherlands.&lt;/p&gt;

&lt;p&gt;The idea is not to create the fanciest CV template.&lt;/p&gt;

&lt;p&gt;It is the opposite:&lt;/p&gt;

&lt;p&gt;clean Dutch CV layouts&lt;br&gt;
no unnecessary visual complexity&lt;br&gt;
no subscription model&lt;br&gt;
free to build&lt;br&gt;
one-time payment only when downloading the PDF&lt;/p&gt;

&lt;p&gt;I also added tools like an ATS CV checker and CV score pages because many people do not need “more design”. They need to know whether their CV is readable, structured and clear.&lt;/p&gt;

&lt;p&gt;If you are applying in the Netherlands, you can try the free ATS checker here:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://werkcv.nl/tools/ats-cv-checker" rel="noopener noreferrer"&gt;WerkCV ATS CV Checker&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;And if you want to improve your CV structure before rebuilding it:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://werkcv.nl/cv-optimaliseren" rel="noopener noreferrer"&gt;CV optimaliseren&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Final thought&lt;/p&gt;

&lt;p&gt;A CV is not just a personal branding document.&lt;/p&gt;

&lt;p&gt;It is also a machine-readable input file.&lt;/p&gt;

&lt;p&gt;That means the best CV is not always the most beautiful one.&lt;/p&gt;

&lt;p&gt;The best CV is the one that:&lt;/p&gt;

&lt;p&gt;gets parsed correctly&lt;br&gt;
shows the right information in the right order&lt;br&gt;
matches the role honestly&lt;br&gt;
helps the recruiter understand your fit quickly&lt;br&gt;
does not hide important data inside design tricks&lt;/p&gt;

&lt;p&gt;In software terms:&lt;/p&gt;

&lt;p&gt;Your CV should fail gracefully.&lt;/p&gt;

&lt;p&gt;If the design layer disappears, the information should still make sense.&lt;/p&gt;

&lt;p&gt;That is the real test of an ATS-friendly CV.&lt;/p&gt;

</description>
      <category>career</category>
      <category>productivity</category>
    </item>
  </channel>
</rss>
