An intelligent resume analysis system powered by deep learning and natural language processing. Upload your resume, select a target job role, and get instant AI-powered insights including category classification, job match scoring, and skill extraction.
- π Smart Resume Parsing - Extracts skills, email, and key information using NLP
- π― AI Classification - BERT-based deep learning model categorizes resumes into 24 professional domains
- π Job Matching - Semantic similarity analysis provides 0-100% compatibility scores
- π¨ Modern UI - Beautiful, professional interface with glassmorphism design
- π REST API - JSON-based API for programmatic access
pip install -r requirements.txtpython train_model.pyβ±οΈ Takes 30-60 minutes on CPU
python app.pyhttp://localhost:5000
- Python 3.7+
- 2GB free disk space
- Internet connection (for initial model downloads)
- Upload Resume - Drag and drop or click to upload (TXT, PDF, DOC, DOCX)
- Select Job Role - Choose target position from dropdown
- Get Results - View category, match score, skills, and recommendations
- Backend: Flask, Python
- Deep Learning: PyTorch, BERT, Sentence-BERT
- NLP: NLTK, HuggingFace Transformers
- Data: Pandas, NumPy, Scikit-learn
- Frontend: HTML5, CSS3, JavaScript
- Classification Accuracy: 85-90%
- Categories: 24 professional domains
- Skills Detected: 50+ technical and soft skills
- Inference Time: 2-3 seconds per resume
Beautiful gradient background with glassmorphism effects and easy file upload.
Comprehensive analysis with category, match score, skills, and actionable recommendations.
For detailed documentation including architecture, API reference, and training process, see PROJECT_DOCUMENTATION.md.
Edit app.py:
app.run(debug=True, port=5001) # Change from 5000 to 5001Edit train_model.py:
classifier.train(
csv_path='data/Resume.csv',
epochs=3, # Increase epochs
batch_size=8, # Increase if you have more RAM
learning_rate=2e-5
)python train_model.pyReduce batch size in train_model.py:
batch_size=2 # Instead of 4Change port in app.py or kill existing process.
resume_project/
βββ data/ # Datasets
β βββ Resume.csv # Resume training data
β βββ job_title_des.csv # Job descriptions
βββ models/ # Trained models (created after training)
βββ modules/ # Core modules
β βββ parser.py # Resume parsing
β βββ classifier.py # BERT classification
β βββ matcher.py # Job matching
βββ static/ # CSS files
βββ templates/ # HTML templates
βββ app.py # Flask application
βββ train_model.py # Training script
βββ requirements.txt # Dependencies
The system classifies resumes into 24 professional domains:
ACCOUNTANT, ADVOCATE, AGRICULTURE, APPAREL, ARTS, AUTOMOBILE, AVIATION, BANKING, BPO, BUSINESS-DEVELOPMENT, CHEF, CONSTRUCTION, CONSULTANT, DESIGNER, DIGITAL-MEDIA, ENGINEERING, FINANCE, FITNESS, HEALTHCARE, HR, INFORMATION-TECHNOLOGY, PUBLIC-RELATIONS, SALES, TEACHER
POST /api/analyze
Content-Type: application/json
{
"resume_text": "Your resume text here...",
"job_description": "Job description here..."
}{
"category": "INFORMATION-TECHNOLOGY",
"match_score": 85.5,
"skills": ["Python", "Machine Learning", "TensorFlow"],
"email": "example@email.com"
}Developed By:
- Maitreya Pawar
- Prakasita Mohanty
- Nehal Garg
- Saniya Sawnt
This project is licensed under the MIT License.
- BERT: Google's Bidirectional Encoder Representations from Transformers
- Sentence-BERT: Sentence embeddings using Siamese BERT networks
- HuggingFace: Transformers library and model hub
- NLTK: Natural Language Toolkit
For issues, questions, or contributions, please refer to the PROJECT_DOCUMENTATION.md file.
Β© 2024 AI Resume Analyzer - Powered by BERT, Sentence-BERT, and NLP