ATS mode
Applicant Tracking Systems (Workday, Taleo, iCIMS, Greenhouse) parse uploaded CVs into structured fields before a recruiter sees them. A CV with tables, multi-column layouts, embedded images, or decorated typography frequently gets garbled on parse — your “Skills” section ends up under “Experience”, or your name gets dropped entirely.
ATS mode shapes JobEmber’s output to survive these parsers verbatim.
What changes
Three coordinated layers (per doc/ats-format/):
- Generation — cv-adapter applies ATS Format Rules: ALL-CAPS section headers, plain
-bullets only, no tables, no images, no HTML, comma-separated Skills section. - PDF render —
PDF_STYLES_ATSswaps to Calibri 11pt, single column, 0.75-inch margins,display: noneon tables/images/SVG (defense in depth — if a table sneaks past the prompt, the renderer hides it). - DOCX render —
/api/generate-docxwalks marked-lexer tokens directly into docx primitives, skipping table/image/blockquote/HTML/code tokens at the AST level.
When to flip
- The apply form says “Workday” / “iCIMS” / “Greenhouse” / “Taleo” — flip on.
- The form has a parse-and-confirm step where you see your fields filled from the CV — flip on.
- The form is a free-text textarea or accepts the file as-is without parsing — leave standard.
If unsure, ATS-mode output is also human-readable; standard-mode output sometimes isn’t ATS-readable. Defaulting to ATS for engineering roles (which tend to use these portals) is reasonable.
Where the toggle lives
- Per-account default: Settings → Profile → Document Format. New apps inherit this.
- Per-app override: Stage 3 row picker. Marks the app as overridden so the cv-adapter regenerates the doc.
The Stage 4 export surface shows an “ATS mode” badge on each generated doc so you can verify before download.
DOCX is always ATS
The /api/generate-docx route hardcodes the ATS profile — there’s no “standard DOCX”. DOCX is only worth generating for ATS portals; for everywhere else, PDF is what you want.