An intelligent, professional resume analyzer application built with Flask, Python, and powered by Google's Gemini 1.5 Flash API. ResuAI parses text from PDF resumes, performs detailed structure audits, compares contents with custom target Job Descriptions, and returns detailed ATS-compatible scores and actionable enhancements.
- PDF Parsing: Fast, lightweight text extraction from PDF format resumes using
pypdf. - Gemini AI Audit: Core intelligence powered by
gemini-1.5-flashfor high-speed, high-accuracy analysis. - Dual-Context Analysis:
- General Audit: Provides baseline rating based on general visual layout impact, action verb usage, quantitative results, and experience descriptions.
- Targeted Matching (Optional): Provides custom gap analysis and specific skill audits comparing your resume directly to a target Job Description.
- Rich Analytics Dashboard:
- ATS Score Gauge: Circular SVG animated indicator showing your overall rating.
- Executive Summary: Clean, AI-written summary of your professional profile.
- Resume Strengths: Highlights sections of high quality and key competencies.
- Structural Weaknesses: Uncovers passive language, structural flaws, or missing items.
- Missing Skills: Generates tags of recommended technologies, tools, or certs.
- Actionable Suggestions: Bulleted guide detailing exactly what to edit or rewrite.
- Premium Interface: Glassmorphism UI layout, custom scan-beam laser loading, micro-animations, and full dark-to-light theme toggle transitions.
- Backend: Python, Flask, Werkzeug, PyPDF, python-dotenv
- Core AI Engine: Google Gemini API SDK (
google-generativeai) - Frontend: HTML5, Vanilla CSS3 (custom glassmorphic variables), JavaScript ES6 (dynamic SVG counters, theme switching, AJAX upload logic), Bootstrap 5, Font Awesome Icons
AI-Resume-Analyzer/
├── static/
│ ├── css/
│ │ └── style.css # Custom modern style system (glassmorphism & animation)
│ └── js/
│ │ └── main.js # Theme toggles, AJAX forms, and circular counters
├── templates/
│ └── index.html # Main SPA dashboard UI
├── uploads/
│ └── .gitkeep # Temporary upload placeholder (resumes deleted immediately post-analysis)
├── .env.example # Environment configuration template
├── .gitignore # Git ignore exclusions
├── app.py # Flask server entry and routing logic
├── utils.py # Text extraction and Gemini client helpers
├── requirements.txt # Backend dependencies
└── README.md # User-facing manual documentation
Follow these steps to configure and run the application locally:
git clone https://github.com/0ANSHKUMARSINGH4/AI-Resume-Analyzer.git
cd AI-Resume-Analyzer# Windows
python -m venv venv
venv\Scripts\activate
# macOS / Linux
python3 -m venv venv
source venv/bin/activatepip install -r requirements.txt- Obtain an API Key from Google AI Studio: https://aistudio.google.com/
- Copy the
.env.examplefile to create a.envfile:cp .env.example .env
- Open
.envin your editor and paste your API key:GEMINI_API_KEY=AIzaSy...yourkeyhere...
Start the local server with:
python app.pyOpen your browser and navigate to http://localhost:5000 to start analyzing resumes!
- All resume PDF uploads are assigned a random UUID filename and saved securely in a temporary folder.
- Once text extraction is complete, the file is immediately and permanently deleted from the host disk (inside a guaranteed
finallyblock). - No personal data or document copies are stored or logged.