A frontend-focused tool that shows what an Applicant Tracking System (ATS) actually sees when it parses your resume — and highlights issues that commonly cause data loss, keyword misses, or broken links.
This project focuses on diagnosis, transparency, and correctness, not resume rewriting or AI-driven auto-fixing.
Many job portals (Workday, Oracle Cloud, Greenhouse, etc.) silently mis-parse resumes due to:
- Broken Unicode characters (e.g.
Ɵ,Ʃ, ligatures) - Token splits caused by PDF fonts (
ex p anding,Tik T ok) - Malformed URLs with invisible spacing
- Non-ASCII glyphs that look correct to humans but fail machine parsing
Most resume tools hide these failures.
This app makes them visible and explainable.
- Parses PDF and DOCX resumes similarly to real ATS systems
- Displays the raw extracted text exactly as machines see it
Detects and highlights:
- Unicode ligatures and non-ASCII glyphs
- ATS-breaking characters inside keywords and URLs
- Token integrity issues (split words, broken hyphenation)
- URL formatting issues that break ATS link detection
Each issue is classified by severity.
- Computes a heuristic ATS compatibility score
- Based on parsing confidence, not hiring likelihood
- Mirrors how ATS systems degrade confidence internally
Score bands:
- 90–100 → ATS-safe
- 75–89 → Minor ATS issues
- 60–74 → Moderate ATS risk
- < 60 → High ATS failure risk
- Shows before → after suggestions for detected issues
- No automatic mutation
- No rewriting
- User remains fully in control
- Toggle between:
- Raw ATS Text (exact machine output)
- Formatted ATS View (presentation-only)
- Formatting improves readability without changing content
- Helps users visually audit their resume structure
- Keyboard navigable
- Screen-reader friendly (ARIA roles, live regions)
- Mobile-optimized without affecting desktop UX
- Collapsible sections with animated accordions to reduce overload
- React
- TypeScript
- Tailwind CSS (Vite setup)
- Node.js
- Express
pdfjs-distfor PDF parsingmammothfor DOCX parsing
- Frontend: Vercel (React + Vite)
- Backend: Render (Node.js + Express)
The frontend is deployed as a static Vite build on Vercel.
The backend runs on a full Node.js runtime on Render to support reliable PDF and DOCX parsing using pdfjs-dist and mammoth.
- The backend runs on Render’s free tier and may have a cold start delay (up to ~50s) after inactivity.
- This split deployment was chosen to ensure correct ATS-style parsing, which is not well supported in edge or serverless runtimes.
The frontend connects to the backend via:
VITE_API_URL=<backend-url>- Truth over polish: show what ATS actually sees
- No silent fixes: nothing is changed without user awareness
- Explainability first: every score and warning is traceable
- Frontend-first: UI clarity and usability matter as much as logic
- Accessibility is not optional
- ❌ A resume writer
- ❌ A hiring probability predictor
- ❌ An AI keyword stuffer
- ❌ An auto-submit optimizer
It is a diagnostic and educational tool.
cd frontend
npm install
npm run devcd backend
npm install
npm run dev- Export ATS-safe text
- Section-wise ATS confidence
- Per-issue apply/reset controls
- Dark mode (UI only)
This project was built after repeatedly encountering resumes being mis-parsed by job portals despite looking correct visually.
The goal is simple:
If an ATS breaks your resume, you should be able to see why.