Many job seekers format their resumes with a left-hand sidebar for skills and a wider right-hand column for work history. It looks balanced on the screen and fits a lot of information onto a single page. However, when you run that file through a two column resume parser, visual appearance is no longer what governs how the document is understood. What matters is how the software returns the text: in what order, and whether lines that sit side by side stay separate.
To see exactly what happens when multi-column documents are processed, we ran a direct test on Career Copilot's parse-check tool using three controlled, synthetic PDF files. The results illustrate how a multi-column layout can cause text collision on this parser, why green checkmarks on contact details can be misleading, and how you can troubleshoot your own layout.
The Controlled Test: Three Files, Identical Words
To isolate formatting from wording, this test used a fictional sample resume for Alex Carter, Backend Engineer. Contact information used standard reserved test values: [email protected], +1 (555) 014-2288, Austin, TX, linkedin.com/in/alexcarter-dev, and github.com/alexcarter-dev.
Every test file contained the exact same text:
- Header and contact details
- One-paragraph SUMMARY
- EXPERIENCE covering two roles: Senior Backend Engineer at Northwind Labs (2022 - Present) with three bullets, and Backend Engineer at Helios Commerce (2019 - 2022) with two bullets
- SKILLS listing Python, PostgreSQL, Redis, Apache Kafka, Docker, AWS, and REST API design
- EDUCATION listing a B.S. in Computer Science from the University of Texas at Austin (2019)
We generated three PDFs with the fpdf2 library. Each file contained exactly 914 characters of extractable text, but differed in layout and internal stream order:
- C0 (Control): A traditional single-column layout ordered summary, experience, skills, then education.
- V1 (Two-Column, Sidebar First): A two-column layout on one page. The left sidebar (skills, education) was positioned at horizontal coordinate x=15mm with a width of 80mm; the right main column (summary, experience) was positioned at x=105mm with a width of 90mm. In the PDF content stream, the sidebar text was written first.
- V2 (Two-Column, Main First): Visually identical to V1 using the exact same coordinates and fonts, but the main column text was written into the PDF content stream before the sidebar text.
All three files were submitted to the Career Copilot free parse-check API on October 29, 2026, between 01:41:33 and 01:41:35 UTC. All three returned an HTTP 200 status code.
How a Two Column Resume Parser Reads Side-by-Side Content
Here is what the parser returned for each file:
| Run | Total Segments | Segment States | Dropped Segments | Field Detection |
| :--- | :--- | :--- | :--- | :--- |
| C0 Single Column | 19 | 19 intact | None ([]) | Email, phone, LinkedIn, GitHub, location detected |
| V1 Two-Column (Sidebar First) | 24 | 19 intact, 5 reordered | None ([]) | Identical to C0 |
| V2 Two-Column (Main First) | 24 | 8 intact, 16 reordered | None ([]) | Identical to C0 |
In the single-column control run, the parser returned 19 clean segments in original source order, with one line per segment. Section headings remained separate, clean lines.
In both two-column runs, the parser produced 24 segments. Rather than returning the left column and then the right column as separate lines, it returned lines that sit side by side on the page fused into single segments.
Here are verbatim examples of fused segments. The first three were returned in both two-column runs; the fourth was returned in V1:
SKILLSSUMMARY(the headings for the two side-by-side columns merged into a single string with no separating space)Python, PostgreSQL, Redis, Apache Kafka,Backend engineer with six years of experience building(a line from the skills sidebar fused directly to a line from the professional summary)Docker, AWS, REST API designpayment and order-processing services. Focus on(skills colliding into summary text)Austin, 2019EXPERIENCE(the education line colliding directly into the work experience heading in V1)
Additionally, the narrower columns caused lines to wrap earlier, splitting role titles across multiple fragments—for instance, returning Senior Backend Engineer, Northwind Labs, 2022 - in one segment and Present as its own separate segment.
When text fuses like this, a parser no longer sees an isolated skills list and an isolated summary paragraph. It sees a single run-on sentence containing unrelated words jammed together.
Why Field Detection Gives a False Sense of Security
The most critical takeaway from this test is what did *not* happen: no segments were dropped in any run.
In all three tests, the dropped_segments array returned completely empty ([]). Furthermore, field extraction was identical across all three: the parser correctly identified Alex Carter's email, phone number, LinkedIn handle, GitHub profile, and location. (Work authorization was not stated in the sample text, so it was correctly marked as not detected across all runs.)
If you evaluate your resume solely by asking, "Did the system extract my phone number and email address?", all three files passed with flying colors. A visual checklist showing green status indicators on contact details would suggest everything worked.
Yet underneath those green contact fields, the body of the document was scrambled. Relying on field detection alone hides the fact that section headers and descriptive text were fused into unintelligible fragments.
Visual Appearance Does Not Guarantee Reading Order
The test revealed another subtle problem: two resumes can look visually indistinguishable while parsing in completely different ways.
Files V1 and V2 had identical visual coordinates, identical margins, and identical fonts. But because V1 wrote the sidebar first in its underlying content stream and V2 wrote the main column first, the parser handled their structures differently:
- V1 flagged 5 segments as reordered, placing the education section early in the document flow, immediately following the skills list.
- V2 flagged 16 segments as reordered, placing the education section at the very end of the document flow.
Both variants still suffered from the exact same initial fused segments (SKILLSSUMMARY and the merged skills-summary lines). You cannot predict the underlying reading order of a two-column PDF simply by looking at how it renders in a PDF viewer.
Document Structure Across Parser Tools
Parsing challenges stemming from document formatting are documented in vendor support material. For example, Greenhouse's support documentation lists resumes uploaded as an image rather than a document (such as a .docx or .pdf with an underlying text layer) among the formatting issues that can cause an unsuccessful or partial parse in Greenhouse Recruiting. Without accessible, sequential document text, software cannot extract information cleanly.
In an earlier site-measured test on October 23, 2026, submitting a text-layer PDF of Alex Carter's resume returned 20 text segments in source order and detected all five contact fields. Submitting that exact same resume as an image-only PDF returned zero extractable text segments without an OCR fallback.
While two-column PDFs do retain an extractable text layer (all 914 characters were read in our test), horizontal positioning introduces ambiguity about how that text flows.
Troubleshooting Your Resume Layout
If you want to ensure your resume text parses cleanly, follow these practical steps:
- Default to a Single-Column Layout: A standard top-to-bottom layout avoids horizontal ambiguity. On this parser, in this test, single-column text yielded one clean line per segment in source order.
- Inspect the Returned Segments Line by Line: When evaluating a parse check, ignore green checkmarks for contact details. Read the raw returned text segments from top to bottom. Check whether headings like
SKILLSandSUMMARYhave fused into a single word, and verify that bullet points appear under their proper jobs. - Fix the Layout, Not the Wording: If a parser fuses your lines, changing your job descriptions or rephrasing your skills will not fix it. The words are already there; the layout is what creates the collision. Reorganize the content into a single sequential column rather than editing your wording.
- Preserve a Clean Text Layer: When preparing your final PDF, export directly from your word processor (such as Google Docs, Microsoft Word, or Pages) using "Save as PDF" or "Export to PDF." Avoid printing to PDF through image-heavy viewers that flatten text into graphics.
To inspect how your own layout divides into segments, test your document with the Free Resume Parse Check. The tool is completely free, requires no account, and shows you the exact text segments and field detection read by this site's parser. It reports reading order and structure directly, without making claims about what any third-party employer's system will do.
