Skip to content

krishn1122/Smart-ATS-Checker

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

25 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

Smart ATS - AI-Powered Resume Analyzer

An intelligent Application Tracking System (ATS) that uses Google's Gemini AI to analyze resumes against job descriptions, providing comprehensive feedback on compatibility, formatting, and optimization suggestions.

πŸ“Έ Dashboard Screenshots

Home Page - Resume Upload

Home Page

Analysis Results - Comprehensive Scoring

Analysis Results

Detailed Feedback - Grammar & Format Issues

Detailed Feedback

Analytics Dashboard - Score Distribution

Analytics Dashboard

✨ Features

Core Analysis

  • AI-Powered Analysis - Leverages Google Gemini 1.5 Flash for intelligent resume evaluation
  • JD Match Scoring - Calculates percentage match between resume and job description
  • Missing Keywords Detection - Identifies important keywords from JD missing in resume
  • Profile Summary - AI-generated professional summary of candidate profile

Quality Checks

  • Grammar Analysis - Detects and highlights grammatical errors
  • Word Repetition Detection - Identifies overused words and phrases
  • Format Issues - Checks for formatting problems and inconsistencies
  • Readability Score - Calculates resume readability using industry-standard metrics

User Experience

  • Multi-Format Support - Accepts both PDF and DOCX resume formats
  • Real-time Processing - Background task processing with status polling
  • Professional UI - Modern, responsive design with Bootstrap 5
  • Analytics Dashboard - Visual insights into analysis history and score distribution
  • Caching System - Improved performance for repeated analyses

πŸ—οΈ Architecture

Technology Stack

Backend (FastAPI)

  • FastAPI 0.104.1 - Modern, fast web framework
  • Uvicorn - ASGI server
  • Google Generative AI (Gemini 1.5 Flash)
  • PyPDF2 & python-docx for document parsing
  • Pydantic for data validation

Frontend (Flask)

  • Flask 3.0.0 - Web framework
  • Bootstrap 5 - Responsive UI
  • Chart.js - Data visualization
  • AOS - Scroll animations

AI & Processing

  • Google Gemini AI API
  • NLTK for text processing
  • Textstat for readability metrics

Project Structure

Smart-ATS-Checker/ β”œβ”€β”€ backend/ # FastAPI Backend β”‚ β”œβ”€β”€ app/ β”‚ β”‚ β”œβ”€β”€ __init__.py β”‚ β”‚ └── main.py # API endpoints β”‚ β”œβ”€β”€ models/ β”‚ β”‚ β”œβ”€β”€ __init__.py β”‚ β”‚ └── ats_models.py # Pydantic models β”‚ β”œβ”€β”€ services/ β”‚ β”‚ β”œβ”€β”€ __init__.py β”‚ β”‚ └── ai_service.py # AI analysis service β”‚ └── utils/ β”‚ β”œβ”€β”€ __init__.py β”‚ └── document_parser.py # Document parsing β”œβ”€β”€ frontend/ # Flask Frontend β”‚ β”œβ”€β”€ app.py # Flask application β”‚ β”œβ”€β”€ static/ β”‚ β”‚ β”œβ”€β”€ css/ β”‚ β”‚ β”‚ └── style.css β”‚ β”‚ └── js/ β”‚ β”‚ └── main.js β”‚ └── templates/ β”‚ β”œβ”€β”€ base.html β”‚ β”œβ”€β”€ index.html β”‚ β”œβ”€β”€ results.html β”‚ β”œβ”€β”€ dashboard.html β”‚ └── about.html β”œβ”€β”€ Dashboard/ # UI Screenshots β”‚ β”œβ”€β”€ 1.png β”‚ β”œβ”€β”€ 2.png β”‚ β”œβ”€β”€ 3.png β”‚ └── 4.png β”œβ”€β”€ logs/ # Application logs β”œβ”€β”€ uploads/ # Temporary file storage β”œβ”€β”€ .env # Environment variables (not committed) β”œβ”€β”€ .env.example # Environment template β”œβ”€β”€ config.py # Configuration management └── requirements.txt # Python dependencies 

πŸš€ Getting Started

Prerequisites

  • Python 3.8 or higher
  • Google Gemini API key (Get it here)
  • pip package manager

Installation

  1. Clone the repository
git clone https://github.com/yourusername/Smart-ATS-Checker.git cd Smart-ATS-Checker
  1. Create virtual environment
python -m venv venv # Windows venv\Scripts\activate # Linux/Mac source venv/bin/activate
  1. Install dependencies
pip install -r requirements.txt
  1. Configure environment variables
# Copy the example file cp .env.example .env # Edit .env and add your API key GOOGLE_API_KEY=your_google_api_key_here SECRET_KEY=your_generated_secret_key_here

Generate a secure SECRET_KEY:

python -c "import secrets; print(secrets.token_hex(32))"

Running the Application

Option 1: Run Both Services Manually

Terminal 1 - Backend:

cd backend uvicorn app.main:app --reload --host 0.0.0.0 --port 8000

Terminal 2 - Frontend:

cd frontend python app.py

Option 2: Access the Application

πŸ“Š Scoring Algorithm

The Smart ATS uses a comprehensive scoring system:

Overall Score Calculation

Total Score = (JD Match Γ— 0.70) + (Other Factors Γ— 0.30) 

JD Match (70%)

  • Keyword matching between resume and job description
  • Skill alignment
  • Experience relevance

Other Factors (30%)

  • Grammar quality (10%)
  • Format consistency (10%)
  • Readability score (10%)

Score Tiers

  • 90-100%: Excellent - Highly optimized for ATS
  • 75-89%: Good - Well-aligned with requirements
  • 60-74%: Fair - Needs improvement
  • Below 60%: Poor - Significant optimization needed

πŸ”§ API Endpoints

POST /api/analyze-resume

Analyze a resume against a job description

Request:

  • resume_file: File (PDF or DOCX)
  • job_description: String

Response:

{ "success": true, "message": "Analysis started", "data": { "analysis_id": "uuid", "status": "processing", "estimated_time": "30-60 seconds" } }

GET /api/analysis/{analysis_id}/status

Check analysis status

Response:

{ "analysis_id": "uuid", "status": "completed", "timestamp": "2024-01-01T12:00:00" }

GET /api/analysis/{analysis_id}

Get complete analysis results

Response:

{ "success": true, "message": "Analysis result retrieved", "data": { "id": "uuid", "percentage_score": 85, "jd_match": 88, "missing_keywords": ["Python", "Docker"], "profile_summary": "Experienced software engineer...", "grammar_mistakes": [...], "word_repetitions": [...], "format_issues": [...], "readability_score": 65, "timestamp": "2024-01-01T12:00:00", "status": "completed" } }

GET /api/analytics

Get analytics data for dashboard

βš™οΈ Configuration

Environment Variables

Variable Description Default
GOOGLE_API_KEY Google Gemini API key Required
SECRET_KEY Flask session secret Required
BACKEND_URL Backend API URL http://localhost:8000
FRONTEND_URL Frontend URL http://localhost:5000
MAX_CONTENT_LENGTH Max file upload size 16777216 (16MB)
ANALYSIS_TIMEOUT Analysis timeout 300 seconds
RATE_LIMIT API rate limit 60 requests/min
LOG_LEVEL Logging level INFO

See .env.example for complete configuration options.

πŸ§ͺ Testing

Run the setup validation:

python test_setup.py

Run scoring algorithm tests:

python test_scoring.py

πŸ“ Usage Guide

  1. Upload Resume: Navigate to home page and upload your resume (PDF/DOCX)
  2. Paste Job Description: Copy and paste the target job description
  3. Analyze: Click "Analyze Resume" to start processing
  4. View Results: Wait for analysis to complete (30-60 seconds)
  5. Review Feedback: Check score, missing keywords, and improvement suggestions
  6. Dashboard: View analytics and historical analysis data

πŸ”’ Security Features

  • Environment variable protection for API keys
  • CORS configuration for secure API access
  • File type validation (PDF/DOCX only)
  • File size limits (16MB max)
  • Rate limiting on API endpoints
  • Secure session management

πŸ› Troubleshooting

Common Issues

ModuleNotFoundError

# Ensure virtual environment is activated pip install -r requirements.txt

API Key Error

# Verify .env file exists and contains valid GOOGLE_API_KEY cat .env

Port Already in Use

# Change port in command uvicorn app.main:app --port 8001 # Backend # Or modify frontend/app.py for frontend port

File Upload Fails

  • Check file size (max 16MB)
  • Verify file format (PDF or DOCX only)
  • Ensure file is not corrupted

🀝 Contributing

Contributions are welcome! Please follow these steps:

  1. Fork the repository
  2. Create a feature branch (git checkout -b feature/AmazingFeature)
  3. Commit your changes (git commit -m 'Add some AmazingFeature')
  4. Push to the branch (git push origin feature/AmazingFeature)
  5. Open a Pull Request

πŸ“„ License

This project is licensed under the MIT License - see the LICENSE file for details.

πŸ™ Acknowledgments

  • Google Gemini AI for powerful language model
  • FastAPI for excellent async framework
  • Flask for simple and elegant frontend framework
  • Bootstrap for responsive UI components
  • Chart.js for beautiful data visualizations

πŸ“§ Contact

For questions or support, please open an issue on GitHub.


Note: This application is for educational and professional development purposes. Always review AI-generated suggestions critically and ensure your resume accurately represents your skills and experience.

About

AI-powered Application Tracking System (ATS) that analyzes resumes against job descriptions using Google's Gemini AI.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors