Skip to content

About

A realistic ATS resume checker that analyzes PDF resumes and explains why applicant tracking systems accept or reject them.

Topics

Resources

Stars

0 stars

Watchers

1 watching

Forks

Latest commit

 

History

18 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

ATS Resume Checker

A practical ATS analyzer that scores resumes the way real world Applicant Tracking Systems do.

License: MIT Python Frontend Privacy


Dashboard

This project focuses on structural correctness, parsing reliability, and common ATS failure modes , not resume templates or keyword stuffing.


Why This Project

Most ATS checkers focus on selling templates or inflating scores through keyword matching. This tool surfaces real parsing and structural issues that cause ATS rejection — independent of resume design, formatting styles, or templates.

Key differentiators:

  • No template sales or upsells
  • No keyword-stuffing advice
  • Focus on real ATS parsing issues
  • Honest, actionable feedback
  • Privacy-first,no data storage

What This Tool Does

1. Analyzes PDF resumes only
2. Generates an overall ATS compatibility score out of 100
3. Breaks scoring into four clear categories — Tailoring, Content, Sections, ATS Essentials
4. Identifies concrete reasons an ATS may reject a resume
5. Provides specific, actionable fixes for every issue detected
6. Produces consistent results across both the score and its breakdown

How It Works

  1. PDF Parsing : The resume is parsed on the backend using rule-based analysis
  2. Structure Evaluation : Section layout, headers, and parsing signals are checked
  3. Scoring : Each category is scored using ATS-safe heuristics
  4. Output : Results are returned as structured data
  5. Rendering : The frontend renders the output exactly as produced by the backend
  6. No Persistence : No resume data is stored anywhere, ever
  7. Strict Evaluation : Scoring is intentionally strict, flagging even minor issues

Technology Stack

Backend

  • Python
  • FastAPI — REST API framework
  • PyPDF2 — PDF text extraction
  • Custom ATS scoring engine

Frontend

  • React
  • Vite
  • Local/session storage for temporary results

Procedure

Terminal 1 — Backend

cd backend
./.venv/Scripts/Activate.ps1
pip install -r requirements.txt
uvicorn app:app --reload

Terminal 2 — Frontend

cd frontend
npm run dev

Click the link shown in Terminal 2 to open the app:

Expected Output: http://localhost:5173/

Result

Here's a preview of the dashboard when result appears

Result


Data Handling & Privacy

  • No resume data is stored : Processing happens in-memory and on-disk only for the duration of a single request
  • No third-party APIs : Fully self-contained analysis
  • Per-request processing : Each analysis is independent
  • No tracking : No analytics, no user tracking
  • Client-side storage : results are only cached temporarily in the browser session

Scoring Categories

Every resume is scored out of 100 total points, split across four categories:

Category Points What It Measures
Tailoring 30 Job relevance, professional title clarity, action-verb usage
Content 25 Quantifiable achievements, bullet quality, experience density
Sections 15 Presence and organization of standard resume sections
ATS Essentials 30 Parseability, header hygiene, contact info, structural safety
Total 100

License

This project is licensed under the MIT License.

You are free to:

  • Use the code for personal or commercial projects
  • Modify and distribute the code
  • Include it in your own applications

See the LICENSE file for full details.

About

A realistic ATS resume checker that analyzes PDF resumes and explains why applicant tracking systems accept or reject them.

Topics

Resources

Stars

0 stars

Watchers

1 watching

Forks

Contributors

Languages