A local, privacy-first resume scannerthat shows you how your resume will perform on the most popular Applicant Tracking Systems (ATS) — without uploading your document anywhere.
Your resume never leaves your machine.
| Platform | Notes |
|---|---|
| Workday | XML-based parser; dislikes columns and tables |
| Greenhouse | Modern parser; LinkedIn-aware |
| Taleo (Oracle) | Oldest and strictest; plain text fares best |
| Lever | Most lenient; recognises GitHub profiles |
| SAP SuccessFactors | Similar strictness to Workday |
| Haufe-umantis | DACH-region platform; supports German & English headers, strict on dates |
- .NET 10 SDK
- A resume in
.pdfor.docxformat
Clone the repository and build:
git clone https://github.com/your-username/ATSScannerButWithPrivacy.git
cd ATSScannerButWithPrivacy
cd ASTScannerButWithPrivacy
dotnet buildats-scanner scan <resume> [options]
| Argument | Description |
|---|---|
<resume> |
Path to your resume file (.pdf or .docx) |
| Option | Values | Default | Description |
|---|---|---|---|
-p, --platform |
all, workday, greenhouse, taleo, lever, successfactors, umantis |
all |
ATS platform to check against |
-o, --output |
text, json |
text |
Output format |
-v, --verbose |
— | off | Show expanded results with document analysis, positive checklist, issues grouped by category, and top priority actions |
dotnet run --project src/AtsScanner.Cli -- scan "C:\Users\me\Documents\resume.pdf"dotnet run --project src/AtsScanner.Cli -- scan ~/documents/resume.pdfdotnet run --project src/AtsScanner.Cli -- scan resume.pdf --platform taleodotnet run --project src/AtsScanner.Cli -- scan resume.pdf -p workdayUseful for scripting or saving results:
dotnet run --project src/AtsScanner.Cli -- scan resume.pdf --output json > results.jsondotnet run --project src/AtsScanner.Cli -- scan resume.pdf -p greenhouse -o jsonAdd -v / --verbose for the full breakdown:
dotnet run --project src/AtsScanner.Cli -- scan resume.pdf --verbosedotnet run --project src/AtsScanner.Cli -- scan resume.pdf -p taleo -vVerbose mode adds:
- Document Analysis — detected contact info, format flags (columns, tables, images), and a full section inventory
- What looks good — a positive checklist of things each platform will handle correctly
- Issues grouped by category — Formatting, Structure, and Content issues listed separately with detailed
What to doguidance - Top Priority Actions — the critical issues that affect the most platforms, ranked so you know what to fix first
Running a scan produces a summary table followed by per-platform details.
╭─────────────────────┬──────────┬───────────┬───────────────────────────────╮
│ Platform │ Score │ Rating │ Issues │
├─────────────────────┼──────────┼───────────┼───────────────────────────────┤
│ Lever │ 85/100 │ Good │ 1 warning 2 info │
│ Greenhouse │ 75/100 │ Good │ 2 warning 1 info │
│ Workday │ 55/100 │ Fair │ 1 critical 2 warning │
│ SAP SuccessFactors │ 55/100 │ Fair │ 1 critical 2 warning │
│ Taleo (Oracle) │ 35/100 │ Poor │ 2 critical 3 warning 1 info │
╰─────────────────────┴──────────┴───────────┴───────────────────────────────╯
| Score | Rating |
|---|---|
| 90 – 100 | Excellent |
| 75 – 89 | Good |
| 55 – 74 | Fair |
| 35 – 54 | Poor |
| 0 – 34 | Very Poor |
| Icon | Severity | Meaning |
|---|---|---|
| ✖ | Critical | Likely to cause parsing failure or significant data loss. Fix before applying. |
| ⚠ | Warning | May cause a field to be misread or skipped. Strongly recommended to fix. |
| ℹ | Info | Minor risk or optimisation suggestion. |
Each issue includes a suggestion (indented below with →) explaining exactly what to change.
Most ATS parsers read text left-to-right, top-to-bottom in a single pass. A two-column resume causes your skills column and your job history column to be interleaved nonsensically.
Fix: Use a single-column layout. Save a plain single-column version specifically for ATS submissions.
Table cells are read in unpredictable order by many parsers.
Fix: Replace skill tables and education tables with simple bullet lists or plain text.
Profile photos, icons, and decorative dividers are invisible to ATS parsers. Text placed inside or next to images may be lost.
Fix: Remove all images. Use plain text dividers (e.g. a horizontal rule made of dashes) if needed.
Many ATS platforms ignore the document header and footer sections entirely.
Fix: Copy your name, email, and phone number into the main body of the first page.
Parsers map content to structured fields (Job History, Education, etc.) using section header names. Non-standard names like "Where I've Worked" may not be recognised.
Fix: Use conventional headers: Work Experience, Education, Skills, Summary, Certifications.
- Keep a plain version — Maintain a single-column, no-table
.docxalongside your designed PDF resume. Submit the plain version to ATS portals. - Check Taleo first — If your resume scores well on Taleo, it will score well everywhere. Taleo is the strictest parser.
- Date formats matter — Use
Jan 2021 – Mar 2024or01/2021 – 03/2024. Avoid relative dates like "3 years ago". - LinkedIn URL — Include your full LinkedIn profile URL (
linkedin.com/in/yourname) in plain text. Greenhouse and Lever auto-populate fields from it. - Keyword placement — ATS systems do keyword matching. Make sure relevant skills appear in a dedicated
Skillssection and in your job descriptions.
- No network calls. The tool is fully offline. No resume data is transmitted anywhere.
- No telemetry. Nothing is logged or tracked.
- No file copies. Your resume is read once, in memory, and discarded when the scan completes.