An AI-powered resume evaluation platform that analyzes resumes, identifies skills, detects career gaps, generates personalized learning roadmaps, and prepares interview questions based on a target role.
- Features
- Tech Stack
- Demo / Screenshots
- Prerequisites
- Installation
- Environment Variables
- Database Setup
- Running the App
- Project Structure
- How to Use
- AI Architecture
- Security
- Error Handling
- Testing
- Deployment
- Troubleshooting / FAQ
- Roadmap
- Contributing
- License
- Author
- Uses Groq LLaMA 3.3 70B for intelligent resume evaluation
- Compares resume skills against target job requirements
- Generates structured, AI-based feedback
- Automatically extracts technical skills
- Detects missing skills for desired roles
- Provides actionable improvement recommendations
- Generates a step-by-step learning path
- Prioritizes skills based on career goals
- Helps users prepare for industry requirements
- Generates role-specific interview questions
- Covers both technical and behavioral preparation
- PDF resumes
- DOCX resumes
- Direct text input
- User registration and login
- Secure password hashing
- Personal analysis history
- Responsive dashboard
- Clean, minimal interface
- Mobile-friendly design
| Layer | Technologies |
|---|---|
| Backend | Python, Flask, SQLAlchemy, PyMySQL |
| Database | MySQL |
| AI | Groq API, LLaMA 3.3 70B Versatile |
| Frontend | HTML5, CSS3, Jinja2 Templates |
| Document Processing | PyPDF2, python-docx |
Add screenshots or a short GIF/video walkthrough of the dashboard, resume upload, and analysis results here so visitors can see the tool in action without installing it.
docs/screenshots/dashboard.png
docs/screenshots/analysis-result.png
Before running the project, install:
- Python 3.8+
- MySQL Database (running instance, local or hosted)
- Git
- A Groq API key β console.groq.com/keys
git clone https://github.com/kunal-yelgate/ResumeAI_Evaluator.git
cd ResumeAI_EvaluatorWindows
python -m venv venv
venv\Scripts\activateLinux / macOS
python3 -m venv venv
source venv/bin/activatepip install -r requirements.txtcp .env.example .envSee Environment Variables below for what to fill in.
| Variable | Description | Example |
|---|---|---|
DATABASE_URL |
MySQL connection string | mysql+pymysql://user:pass@localhost:3306/resumeai |
FLASK_SECRET_KEY |
Secret key for Flask sessions | a long random string |
GROQ_API_KEY |
API key for Groq LLaMA access | from console.groq.com/keys |
β οΈ Never commit your.envfile. Keep secrets out of version control β.envshould already be listed in.gitignore.
Initialize the database tables:
python -c "from db import Base, engine; Base.metadata.create_all(bind=engine)"Make sure the MySQL database referenced in DATABASE_URL already exists before running this command.
Start the Flask development server:
python app.pyThen open:
http://localhost:5000
For production, run behind a WSGI server such as Gunicorn or uWSGI rather than the Flask development server β see Deployment.
ResumeAI_Evaluator/
β
βββ app.py # Main Flask application
βββ ai.py # Groq AI integration
βββ db.py # Database configuration
βββ models.py # SQLAlchemy database models
βββ requirements.txt # Python dependencies
βββ .env.example # Environment template
β
βββ static/
β βββ style.css # CSS styling
β
βββ templates/
βββ base.html
βββ login.html
βββ signup.html
βββ dashboard.html
βββ history.html
βββ forgot_password.html
βββ 404.html
βββ 500.html
- Create an account β register with your email and password.
- Log in β access your personal dashboard.
- Upload a resume β choose PDF, DOCX, or paste text directly.
- Select a career goal, e.g.:
- Senior Python Developer
- Machine Learning Engineer
- Full Stack Developer
- Data Scientist
- Receive AI analysis, including:
- β Current skills
- β Missing skills
- πΊοΈ Learning roadmap
- β Interview questions
ResumeAI uses Groq's LLaMA 3.3 70B Versatile model to analyze:
- Technical skills
- Experience level
- Industry alignment
- Missing competencies
- Learning priorities
- Interview readiness
Output is generated in structured JSON for reliable, predictable downstream processing.
- Password hashing
- Session-based authentication
- Secure database connections
- File upload validation (type/size checks)
- Environment-based secrets management
- Centralized error handling middleware
- Graceful API failure handling
- Rate-limit handling for the Groq API
- Resume parsing fallback for malformed files
- Custom
404/500error pages - User-friendly error messages throughout the UI
Add details on how to run the test suite once tests are in place, e.g.:
pytestConsider adding coverage for:
- Resume parsing (PDF/DOCX edge cases)
- AI response parsing/fallback logic
- Auth flows (signup, login, password reset)
Notes for deploying beyond local development:
- Run the app with a production WSGI server (e.g.
gunicorn app:app) - Set
FLASK_ENV=productionand disable debug mode - Use a managed MySQL instance and store credentials as environment secrets, not in code
- Put the app behind a reverse proxy (e.g. Nginx) with HTTPS enabled
The app can't connect to MySQL.
Double-check DATABASE_URL in .env and confirm the database exists and the MySQL server is running.
Groq API calls are failing.
Verify GROQ_API_KEY is set correctly and that your Groq account has available quota.
Resume upload fails. Confirm the file is a valid PDF or DOCX and under the configured size limit.
- ATS Resume Score
- GitHub Profile Analysis
- Cover Letter Generator
- Resume Improvement Suggestions
- PDF Report Export
- Multiple Language Support
- Job Description Matching
Contributions are welcome!
- Fork the repository
- Create a branch:
git checkout -b feature/new-feature
- Commit your changes:
git commit -m "Add new feature" - Push the branch:
git push origin feature/new-feature
- Open a Pull Request
Please open an issue first for major changes so we can discuss what you'd like to do.
This project is licensed under the MIT License.
Kunal Yelgate GitHub: github.com/kunal-yelgate
β If you find this project useful, consider giving it a star on GitHub!