Resume-ATS
# π― ATS Resume Analyzer [](https://resume-ats-mu.vercel.app) [](https://resume-ats-backend.onrender.com/) [](https://github.com/itslovepatel/Resume-ATS) [](LICENSE) > **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 β](https://resume-ats-mu.vercel.app/)** <!-- Project preview / OG image (also used for social shares) -->  ## π Deployments - Primary frontend (Vercel): https://resume-ats-mu.vercel.app - Alternate / vanity URL: https://ats.lovexog.me ## β¨ 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: ```bash cd backend ``` 2. Create a virtual environment: ```bash python -m venv venv ``` 3. Activate the virtual environment: - Windows: ```bash venv\Scripts\activate ``` - macOS/Linux: ```bash source venv/bin/activate ``` 4. Install dependencies: ```bash pip install -r requirements.txt ``` 5. Start the backend server: ```bash uvicorn app.main:app --reload --port 8000 ``` The API will be available at `http://localhost:8000` ### Frontend Setup 1. Navigate to the frontend directory: ```bash cd frontend ``` 2. Install dependencies: ```bash npm install ``` 3. Start the development server: ```bash 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:** ```json { "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