Provide export-only ATS optimization without changing the user's canonical CV/CL data in the editor.
Users can keep the normal "beauty" layout for small/creative companies and switch to ATS-focused output for larger companies.
Beauty
- Current visual export.
- No transformation.
ATS Balanced
- ATS-safe styling + section visibility defaults.
- Keeps richer content than strict mode.
ATS Strict
- Strongest ATS simplification.
- Hides decorative/low-signal sections and forces neutral styling.
- Uses a dedicated one-column ATS CV renderer for linear parsing.
- Non-destructive
- Transform data only at preview/print time.
- Never overwrite in-app profile data.
- Language-aware
- Works with current render language (
viewLang) including translated overlays. - Keeps translated content while applying ATS formatting rules.
- Deterministic
- Same input state + export profile yields same output.
- Normalize whitespace in core text fields.
- Normalize period strings to machine-friendly format where parseable (
MM/YYYY - MM/YYYY,Present). - Normalize language levels to CEFR-like levels when recognizable (
A1..C2). - Remove photo and recommendations in ATS profiles via section visibility.
- Force
classiclayout template during ATS export. ATS Strictbypasses visual templates and renders a plain one-column CV page.- Apply ATS section configs:
ATS Balanced: keeps toolkit/references visible.ATS Strict: hides toolkit/references, keeps high-signal sections.ATS Strictpage 2 suppresses duplicate profile/contact blocks.
- Remove bracket placeholders (e.g.
[Company Name],[Firmenname]) if present. - Normalize paragraph whitespace.
- Remove signature image in ATS profiles.
- Keep ATS-relevant field visibility (subject/salutation/closing/contact lines), with optional fields shown only when populated.
- Fallback salutation/closing per language if missing.
- ATS neutral palette overrides:
- white background
- dark text
- reduced decorative accent
ATS Strictalso forces a conservative font stack (Arial, Helvetica, sans-serif).
- Open Print Preview.
- Choose export profile from top-bar selector:
BeautyATS BalancedATS Strict
- Preview updates immediately.
- Print/export uses the selected profile and includes profile label in filename for ATS profiles.
- Export transformations run on the already-resolved render data (
translation overlayoutput). - This means ATS export works for:
- EN base
- DE base
- translated views (RU/IT/FR, etc.) shown in the app
- No translation data is mutated during export.
-
src/app/components/atsExport.ts- Export profile type
- Transformation pipeline
- ATS style/section presets
-
src/app/hooks/usePrintFlow.tsexportProfilestate (beauty | ats-balanced | ats-strict)- Filename label for ATS exports
-
src/app/components/PrintPreview.tsx- Export profile selector UI
-
src/app/App.tsx- Build profile-specific print render data via
buildExportRenderData(...) - Pass transformed print props to shell
- Build profile-specific print render data via
-
src/app/components/AppShell.tsx- Use transformed print/preview data only for print contexts
- Keep editor/canvas render untouched
- ATS preflight checklist (warnings for missing standard headings/date consistency/placeholders).
- Job-targeted ATS keyword pack tied to selected tracker card.
- Optional "single-page strict" condensing rules for short-form ATS submissions.