11 min read
You're not getting filtered because you lack React or AWS on the page. You're getting filtered because Workday imported your 2019 internship above your current backend role, parked Kubernetes in a skill bar it never scored, and dropped the GitHub link you put in a header zone parsers skip. That's the gap between a mid-level SWE resume that looks fine in PDF and one that survives the importer. Most parsing failures on mid-level software engineering files aren't missing keywords. They're proof and dates sitting in layout elements Workday reads out of order.
Before you add another framework to Skills, check your resume for free with the posting pasted in. You'll see whether must-have terms sit in dated Experience bullets or only in a sidebar the importer read last.
Job searching as a mid-level engineer is draining when you've shipped services, passed system design rounds, and still get silence. You're not failing because you lack tenure. Your file might be asking Workday to reconstruct your career from table cells. This page walks symptom to cause to fix so you can edit tonight without another template hunt.
Pull up the req you're targeting. Don't start in Skills. Export plain text from your current file and read top to bottom. If your current title isn't the first employer block, layout is the problem, not bullet polish.
Quick Wins
- Flatten to single-column DOCX. Remove tables used for alignment.
- Move GitHub and portfolio links into the body contact line, not the header.
- Replace skill bars with plain text Skills and proof in dated bullets.
- Export plain text and confirm current role appears before older jobs.
The symptom: clean PDF, scrambled Workday profile
A composite mid-level backend engineer whose PDF shows Software Engineer II at a fintech, a right-column Skills panel with Python, Go, Kubernetes, and PostgreSQL bars at 90 percent, and a GitHub URL in the page header is the file I see every week. The human view looks current. The Workday applicant profile shows an old internship on top, no repo link, and Skills that list tools without dates.
Tech recruiters in Workday don't read your whole story on the first pass. They match title family, ctrl-f one must-have from the posting inside a dated employer block, and glance at tenure. I've screened stacks of these in Workday, and the files that survive the first pass almost always show current title and dates in plain text, not inside a table cell.
The pattern: checker green lights on Skills while Experience stays generic, or the PDF shows three years at your current company while Workday shows a gap you never had. Both mean the same thing. Proof is on the page somewhere the importer does not weight.
Edge case one: you're a full-stack engineer with contract stints at four clients in two years. One employer line per client with Month Year dates beats a single paragraph that lists stacks without timeline. Edge case two: you're moving from bootcamp plus one role into mid-level backend. Lead with the paid employer block, not a projects table that imports as one blob. Edge case three: you're on an H-1B with authorization already in the application form. Don't waste body space on visa paragraphs parsers may read as unrelated text.
When layout looks clean but match still feels off, read how ATS matches resumes to job descriptions after you fix import order here. Structure first, keyword tuning second.
Optimizing resumes for Workday ATS: three causes behind mid-level SWE import failures
Diagnostic order matters. Fix layout and date order before you polish adjectives. Then move links into body text. Then replace visual Skills with bullets that prove stack depth.
Cause 1: Table layouts hide employment dates
SWE resume templates love grids. Left column for employer, right column for dates. Looks tidy in Word. Workday reads cells in export order, not in the grid you designed. Your current role can land below an old internship. Recruiters filtering by years of experience see a gap that isn't real.
Before: Two-column layout with company name left, Jan 2022 to Present right, bullets in a nested table cell.
After: Software Engineer II | FinServe Corp | Austin, TX | January 2022 to Present, then bullets directly underneath in plain text.
Before: Project history in a three-column table: repo, stack, impact.
After: One bullet per project under the employer where you built it: Shipped payments retry service in Go on Kubernetes; cut failed charges 14% in Q3 2025.
Fix: Open Word or Google Docs. Remove every table used for alignment. Stack title, employer, city, Month Year range on one line or two, then bullets. Export to plain text. Current job must appear before older jobs. If it doesn't, the table fix isn't done.
Cause 2: Skill bars and sidebars import last or never
Canva and template shops sell visual Skills panels. Bars, stars, and percentage meters look modern. Parsers treat them as graphics or late-reading sidebar cells. Your Kubernetes expertise sits in a zone Workday scores after Experience, or drops entirely. Humans ctrl-f the posting term inside dated bullets, not inside a chart.
Before: Right sidebar Skills: Python ████████ 90%, AWS ███████ 85%, with no matching bullets in Experience.
After: Skills: Python, Go, AWS, Kubernetes, PostgreSQL. Bullet under current role: Built event ingestion in Python on AWS Lambda; handled 2.1M events daily with p99 under 180ms in 2024.
Fix: Delete skill bars. Build a plain comma or line list after Experience. Mirror posting must-haves once in Skills only after each appears in a dated bullet with scope. Skills supports bullets. It does not replace them.
Cause 3: GitHub and portfolio links parked in headers parsers skip
Engineers put repo links in decorative headers, footers, or text boxes because design templates suggest it. Many Workday imports drop those zones. Recruiters who want to see code never get the URL. Worse, you may assume the link carried when the applicant profile is empty.
Before: github.com/janedoe only in a centered header above the name, no mention in bullets.
After: Jane Doe | [email protected] | Austin, TX | github.com/janedoe | January 2022 to Present block with bullet naming the repo or service shipped.
Fix: One contact line in body text under your name. Repeat the repo or service name once in a bullet with outcome. Do not rely on margin links alone. If the portal has a separate URL field, fill it and keep the same URL in the body.
How to tell which cause is yours
Paste your file into Notepad on Windows or TextEdit in plain text mode on Mac. Read top to bottom. If your current title appears below an old internship, you're in Cause 1. If Skills terms show in the checker but Experience doesn't, Cause 2. If your GitHub handle vanishes in plain text export, Cause 3. You can have two at once. Fix columns and dates, then links, then bullet proof.
After upload, check the applicant profile preview when the employer exposes it. Compare title, employer, and date range to your PDF. A mismatch means layout, not wording, is still broken.
Keep a scratch column per apply: posting must-have, where it lives now, target bullet. Three rows. That stops midnight Skills edits while Experience stays generic.
Copy-paste block: Workday plain-text export check
Copy-paste export check
WORKDAY IMPORT CHECK (yes/no each):
[ ] Single column, 11pt Calibri or Arial
[ ] Current job title is first employer block
[ ] Month Year dates on same lines as employers
[ ] No tables, text boxes, or skill bars
[ ] GitHub/portfolio in body contact line
[ ] Must-have stack named in bullet 1 or 2
[ ] Skills list is plain text, not graphics
FAIL 2+ boxes: fix layout before keyword edits.
Edge case: staff-leaning mid-level applying to platform roles. Your bullets need service scope and on-call ownership, not only feature tickets closed. One line on incident response and error budget beats five lines that only say participated in Agile ceremonies.
Edge case: frontend-heavy SWE with design portfolio. The resume still needs dated employer bullets; the portfolio is proof on click, not a substitute for Experience text parsers index. Name the framework in bullet one, not only in a Figma link.
For why tables break imports in more detail, see why tables break US ATS parsing and alternatives . Flatten first, then tune bullets.
What still breaks SWE imports after you flatten columns
Acronyms without a plain-English anchor once. CI/CD, gRPC, and IaC are fine in bullets. Write Continuous Integration/Continuous Deployment (CI/CD) once on first use if the posting uses the long form. Fix: match the posting's spelling in a dated bullet, not only in Skills.
Duty bullets that read like job descriptions. Responsible for microservices and code reviews tells the reader you held a title. It does not prove latency, scale, or ownership. Fix: lead with verb, scope, tool, outcome in the first eight words.
Scanned PDF exports from design tools. The file looks crisp. Text is an image. Workday extracts nothing useful. Fix: DOCX from Word or a text-based PDF printed from that DOCX.
Keyword stuffing in Skills after bullets stay generic. Adding Terraform twelve times without a dated bullet is noise. Fix: one employer line per must-have tool with Month Year dates.
Uploading a different file than you tested. You fixed DOCX locally and submitted last month's Canva PDF. Recruiters open what's in Workday. Fix: lock file name and hash before submit.
Headers and footers with contact info. Some importers drop margin text entirely. Fix: contact block in body line one, not in the margin zone.
Exception: federal tech resumes and some research CVs follow different length norms. Corporate mid-level SWE reqs on Workday still reward single-column proof in dated rows. Another edge case: engineers with extensive open-source contributions. One bullet naming merged PRs and production impact beats a repo list with no employer attached.
Test import and keyword fit before upload
Upload your flattened DOCX and the target posting to HireFlow's free ATS resume checker . Confirm Experience imports with current role on top, links appear in body text, and must-have stacks show in bullets recruiters will scroll to.
When layout passes but match still feels thin, paste the job description into Score your job match . You're checking whether terms moved from Skills-only into dated lines, not chasing a perfect percentage on a file that still hides dates inside tables.
Do this now: Plain-text export, flatten tables, move GitHub into the body line, rewrite bullet one with stack and scope, then checker-test the same DOCX you'll upload.
What to fix tonight
Optimizing resumes for Workday ATS on mid-level SWE files is mostly layout surgery. Flatten tables, kill skill bars, move links into body text, and prove stack depth in bullet one before you chase another keyword list.
- Export plain text and confirm current role imports first.
- Remove tables and sidebar Skills graphics.
- Put GitHub in the contact line and name the repo in a bullet.
- Run a free ATS check on the same file you'll submit.
Open the posting you care about. Run a free ATS check , confirm the importer sees your current title and dates in order, and send a file Workday can read before a recruiter ever opens it.
For bullet examples that show delivery impact after layout is fixed, see CI/CD resume bullets that show real delivery impact . Proof in dated rows beats another Skills edit at midnight.
When the role asks for a short employer note, use the free cover letter generator with the same posting. Name the stack and scope from bullet one so the letter matches the resume a recruiter will open next.
This won't fix applying to roles where you lack the core stack or years the req states. It stops qualified mid-level engineers from dying because dates hid inside a table and Kubernetes lived in a bar chart the parser never scored.
Read more
Frequently asked questions
The importer read cells out of order. Two-column templates and table-based headers often park your current title in a right column or footer zone some parsers skip. Your 2024 Software Engineer II line can import below a 2019 internship. Export plain text from Word. If titles scramble, flatten to single-column DOCX at 11pt Calibri before you tweak bullet wording again.
Upload what the portal requests. When both are allowed, test DOCX first. A clean Word export with built-in bullet lists usually keeps Month Year dates attached to the right employer. If you submit PDF, print from the tested DOCX, not from a design tool that reflows columns. Paste the file into Notepad and confirm each job block starts on its own row before you assume Workday sees what you see.
Yes. Visual skill meters are graphics or table cells, not plain text. Parsers often read them last or drop them entirely. Your Kubernetes proof should live in a dated bullet under your current employer, then echo once in a plain Skills list. A sidebar bar chart that says Expert in Python does not replace a bullet naming services shipped and error rates improved.
One line in the body contact block directly under your name: github.com/handle, portfolio URL, city and state. Do not park links only in a page header, footer, or text box. Many Workday imports drop header and footer text. Recruiters ctrl-f repo names inside Experience bullets where you shipped code, not only in a margin the parser skipped.
After upload, open the applicant profile preview if the employer exposes it. Check that current employer, title, and dates match your file. Run the same DOCX through a free ATS check with the posting pasted in. If Skills show green while Experience stays thin on must-have terms, your keywords are in the wrong section. Fix layout and bullet placement before another apply pass.
