Home
Softono
Resume-ATS

Resume-ATS

Open source Python
13
Stars
2
Forks
0
Issues
0
Watchers
4 months
Last Commit

About Resume-ATS

Resume-ATS is a free, AI-powered Applicant Tracking System resume analyzer designed to help job seekers optimize their resumes for automated screening systems. Users can upload PDF or DOCX files to receive an instant ATS compatibility score ranging from 0 to 100. The platform supports over 25 industries including Software, Healthcare, Finance, Legal, and Education. Key features include automatic extraction of candidate profiles such as names, emails, and LinkedIn links, domain detection, and a comprehensive breakdown of technical and soft skills. It analyzes projects and work experience for quality, action verbs, and metrics while identifying formatting issues and missing sections. The system provides smart, industry-tailored suggestions to improve resume performance and allows users to download detailed PDF reports. A significant feature is the local OCR fallback, which uses Tesseract to process scanned or image-based PDFs when standard text extraction fails, ensuring robust handling without external cloud A

Platforms

Web Self-hosted

Languages

Python

🎯 ATS Resume Analyzer

Live Demo Backend API GitHub Stars License: MIT

Free ATS Resume Checker Β· AI-Powered Resume Scanner Β· No Signup Required Β· Instant ATS Score

A modern, AI-powered ATS (Applicant Tracking System) Resume Analyzer that helps job seekers understand how their resume performs in automated screening systems. Supports 25+ industries including Software, Healthcare, Finance, Legal, Education, and more!

πŸ”— Try it Live β†’

ATS Resume Analyzer Preview

πŸ”— Deployments

✨ What It Does

Upload your resume (PDF or DOCX) and get instant, comprehensive analysis:

  • See your ATS compatibility score (0-100)
  • Understand what's working and what needs improvement
  • Get AI-powered suggestions tailored to your industry
  • Download a detailed PDF report

🏭 Supported Industries (25+)

Technology Business Healthcare Other
Software / IT Marketing Healthcare / Medical Legal
Data Science / AI Finance / Banking Pharmaceutical / Biotech Education
Cybersecurity Sales Real Estate
Design / UX Human Resources Hospitality
Operations / Supply Chain Retail / E-commerce
Consulting Government
Project Management Non-Profit

πŸš€ Features

  • ATS Compatibility Score: Get a comprehensive score (0-100) showing how well your resume will perform
  • Candidate Profile Extraction: Automatically extract name, email, phone, LinkedIn, and GitHub
  • Domain Detection: AI detects your primary job domain (IT, Data, Marketing, Finance, etc.)
  • Skills Analysis: Comprehensive breakdown of technical skills, frameworks, tools, and soft skills
  • Projects Review: Analyze project descriptions, technologies used, and impact statements
  • Experience Analysis: Evaluate work experience quality, action verbs usage, and metrics
  • Issue Detection: Identify formatting issues, missing sections, and ATS compatibility problems
  • Smart Suggestions: Get actionable recommendations to improve your ATS score
  • PDF Report Download: Download a professional PDF report of your analysis

πŸ–¨οΈ Local OCR Fallback (Scanned Resumes)

Resume-ATS now includes a fully local OCR fallback to handle scanned or image-based PDFs. Key points:

  • The backend attempts standard PDF text extraction first (PyPDF). OCR runs only when extraction quality is poor (heuristics: text length < 800 chars, word count < 150, missing email or phone).
  • OCR uses Tesseract via pytesseract and pdf2image to convert pages at 300 DPI and preprocess images (grayscale, contrast, sharpening) before OCR.
  • Safety controls: max 5 OCR pages, 15s OCR timeout, never OCR DOCX, never store OCR images, never overwrite original PDFs.
  • Safety controls: max 5 OCR pages, 30s OCR timeout, never OCR DOCX, never store OCR images, never overwrite original PDFs.
  • API responses include parsing_method ("standard" | "ocr" | "ocr_unavailable") and ocr_confidence ("low" | "medium" | "high").

This makes Resume-ATS more robust for scanned resumes while keeping all processing localβ€”no cloud OCR, no external APIs.

πŸ› οΈ Tech Stack

Frontend

  • Next.js 14
  • React 18
  • TypeScript
  • Tailwind CSS
  • Framer Motion
  • Lucide React Icons

Backend

  • Python 3.10+
  • FastAPI
  • PyMuPDF (PDF parsing)
  • python-docx (DOCX parsing)

πŸ“¦ Installation

Prerequisites

  • Node.js 18+
  • Python 3.10+
  • pip

Backend Setup

  1. Navigate to the backend directory:

    cd backend
  2. Create a virtual environment:

    python -m venv venv
  3. Activate the virtual environment:

  • Windows:
    venv\Scripts\activate
  • macOS/Linux:
    source venv/bin/activate
  1. Install dependencies:

    pip install -r requirements.txt
  2. Start the backend server:

    uvicorn app.main:app --reload --port 8000

The API will be available at http://localhost:8000

Frontend Setup

  1. Navigate to the frontend directory:

    cd frontend
  2. Install dependencies:

    npm install
  3. Start the development server:

    npm run dev

The application will be available at http://localhost:3000

πŸ“ Project Structure

Resume-ATS/
β”œβ”€β”€ backend/
β”‚   β”œβ”€β”€ app/
β”‚   β”‚   β”œβ”€β”€ __init__.py
β”‚   β”‚   β”œβ”€β”€ main.py              # FastAPI application
β”‚   β”‚   β”œβ”€β”€ models/
β”‚   β”‚   β”‚   β”œβ”€β”€ __init__.py
β”‚   β”‚   β”‚   └── schemas.py       # Pydantic models
β”‚   β”‚   └── services/
β”‚   β”‚       β”œβ”€β”€ __init__.py
β”‚   β”‚       β”œβ”€β”€ resume_parser.py # PDF/DOCX parsing
β”‚   β”‚       β”œβ”€β”€ skill_extractor.py
β”‚   β”‚       β”œβ”€β”€ domain_classifier.py
β”‚   β”‚       └── ats_scorer.py    # ATS scoring logic
β”‚   └── requirements.txt
β”‚
β”œβ”€β”€ frontend/
β”‚   β”œβ”€β”€ src/
β”‚   β”‚   β”œβ”€β”€ app/
β”‚   β”‚   β”‚   β”œβ”€β”€ globals.css
β”‚   β”‚   β”‚   β”œβ”€β”€ layout.tsx
β”‚   β”‚   β”‚   └── page.tsx
β”‚   β”‚   β”œβ”€β”€ components/
β”‚   β”‚   β”‚   β”œβ”€β”€ Header.tsx
β”‚   β”‚   β”‚   β”œβ”€β”€ Hero.tsx
β”‚   β”‚   β”‚   β”œβ”€β”€ HowItWorks.tsx
β”‚   β”‚   β”‚   β”œβ”€β”€ Features.tsx
β”‚   β”‚   β”‚   β”œβ”€β”€ UploadSection.tsx
β”‚   β”‚   β”‚   β”œβ”€β”€ LoadingOverlay.tsx
β”‚   β”‚   β”‚   β”œβ”€β”€ ResultsDashboard.tsx
β”‚   β”‚   β”‚   β”œβ”€β”€ Footer.tsx
β”‚   β”‚   β”‚   └── results/
β”‚   β”‚   β”‚       β”œβ”€β”€ ScoreCircle.tsx
β”‚   β”‚   β”‚       β”œβ”€β”€ ScoreBreakdownCard.tsx
β”‚   β”‚   β”‚       β”œβ”€β”€ SkillsCard.tsx
β”‚   β”‚   β”‚       β”œβ”€β”€ ExperienceCard.tsx
β”‚   β”‚   β”‚       β”œβ”€β”€ ProjectsCard.tsx
β”‚   β”‚   β”‚       β”œβ”€β”€ KeywordsCard.tsx
β”‚   β”‚   β”‚       β”œβ”€β”€ IssuesCard.tsx
β”‚   β”‚   β”‚       └── SuggestionsCard.tsx
β”‚   β”‚   └── types/
β”‚   β”‚       └── index.ts
β”‚   β”œβ”€β”€ package.json
β”‚   β”œβ”€β”€ tailwind.config.js
β”‚   └── next.config.js
β”‚
└── README.md

🎯 ATS Scoring Logic

The ATS score is calculated based on:

Factor Weight
Keyword Relevance 20%
Section Completeness 20%
Formatting Score 15%
Skill Relevance 20%
Experience Clarity 15%
Project Impact 10%

Score Categories:

  • 80-100: Excellent - Resume is well-optimized for ATS
  • 60-79: Good - Minor improvements needed
  • 40-59: Needs Improvement - Significant optimization required
  • 0-39: Poor - Major restructuring needed

πŸ“‘ API Endpoints

POST /api/analyze

Analyze a resume file and return comprehensive ATS analysis.

Request:

  • Content-Type: multipart/form-data
  • Body: file (PDF or DOCX, max 5MB)

Response:

{
  "success": true,
  "candidate": {
    "name": "John Doe",
    "email": "[email protected]",
    "phone": "+1-555-123-4567",
    "location": "New York, NY"
  },
  "ats_score": 85,
  "score_category": "Excellent",
  "domain": {
    "primary": "Software / IT",
    "confidence": 0.92
  },
  "skills": {...},
  "experience": {...},
  "projects": [...],
  "issues": [...],
  "suggestions": [...]
}

GET /health

Health check endpoint.

πŸ”’ Security

  • Files are processed in memory and immediately deleted after analysis
  • No data is stored on the server
  • No user tracking or analytics
  • No signup required

🚧 Future Features

  • [ ] User authentication and resume history
  • [ ] Job description matching
  • [ ] AI-powered resume rewriting
  • [ ] Recruiter dashboard
  • [ ] Resume comparison
  • [ ] Industry-specific scoring

πŸ“„ License

MIT License - feel free to use this project for personal or commercial purposes.

🀝 Contributing

Contributions are welcome! Please feel free to submit a Pull Request.


Built with ❀️ for job seekers everywhere