ResumeMatchAI is an advanced Applicant Tracking System (ATS) resume scanner that analyzes resumes against job descriptions to provide comprehensive compatibility scores and actionable improvement recommendations. Using natural language processing and machine learning, it helps job seekers optimize their resumes for better ATS performance.
- π Advanced ATS Scoring: Comprehensive scoring algorithm with 7 weighted factors
- π€ AI-Powered Analysis: Meta Llama 3.2-1B model for professional HR-level insights
- π Direct Document Analysis: Optional OCR-based file processing (experimental)
- π Keyword Analysis: Intelligent keyword matching with similarity detection
- π€ Enhanced Personal Info Extraction: Accurate name, email, phone, and location detection
- π― Smart Recommendations: Prioritized, actionable feedback for resume improvement
- π Multi-Format Support: PDF and DOCX resume processing
- π Web-Friendly Interface: Clean Streamlit web application
- β‘ Real-time Analysis: Instant results with detailed breakdowns
- Python 3.11 or higher
- pip package manager
- Virtual environment (recommended)
-
Clone the repository
git clone https://github.com/yourusername/ResumeMatchAI.git cd ResumeMatchAI/streamlit_app -
Create and activate virtual environment
python -m venv venv source venv/bin/activate # On Windows: venv\Scripts\activate
-
Install dependencies
pip install -r requirements.txt
-
Download spaCy language model
python -m spacy download en_core_web_sm
streamlit run app.pyOpen your browser to http://localhost:8501 to access the application.
Paste the complete job description you're applying for. The system will extract key requirements and skills.
Upload your resume in PDF or DOCX format. The system supports text extraction from various document formats.
The system performs comprehensive analysis including:
- Keyword Matching: Exact and similar keyword detection
- Personal Information: Name, contact details, and location extraction
- Skills Alignment: Technical skills assessment
- Experience Relevance: Work experience analysis
- Formatting Quality: Resume structure evaluation
Extract structured user profile from your resume using Meta's Llama 3.2-1B model:
- Direct File Processing: Analyzes your resume file with OCR-enhanced extraction
- Structured Data Extraction: Personal info, skills, experience, education, certifications, projects
- PostgreSQL Storage: Automatically saves extracted profiles to PostgreSQL
- JSON Format: Clean, structured data ready for integration
Receive a detailed ATS compatibility report with:
- Overall score (0-100) with letter grade
- Component breakdown with visual progress bars
- Prioritized improvement recommendations
- Pass rate predictions
- Optional AI analysis with professional insights
| Component | Weight | Description |
|---|---|---|
| Keyword Match | 40% | Exact and similar keyword detection |
| Keyword Density | 15% | Balanced keyword distribution |
| Personal Info | 15% | Contact information completeness |
| Skills Alignment | 10% | Technical skills matching |
| Experience Match | 10% | Relevant experience assessment |
| Education Match | 5% | Qualifications alignment |
| Formatting | 5% | Resume structure quality |
- 90-100 (A): Exceptional - 95%+ chance of passing ATS
- 80-89 (B): Excellent - 85%+ chance of passing ATS
- 70-79 (C): Very Good - 75%+ chance of passing ATS
- 60-69 (D): Good - 65%+ chance of passing ATS
- 50-59 (F): Fair - 55%+ chance of passing ATS
- Below 50: Poor - Significant improvements needed
- Python 3.11+: Primary programming language
- Streamlit: Web application framework
- spaCy: Natural language processing
- NLTK: Text processing and stemming
- pdfplumber: PDF text extraction
- python-docx: DOCX file processing
- Pandas: Data manipulation
- NumPy: Numerical computations
- Transformers: For advanced NLP tasks
- Torch: Deep learning framework
- Accelerate: Model optimization
- Meta Llama 3.2-1B: AI-powered resume analysis
ResumeMatchAI/
βββ streamlit_app/
β βββ app.py # Main Streamlit application
β βββ main.py # Entry point
β βββ test_llm.py # LLM functionality test
β βββ requirements.txt # Python dependencies
β βββ pyproject.toml # Project configuration
β βββ README.md # This file
β βββ utils/
β βββ __init__.py
β βββ ats_scoring.py # ATS scoring algorithm
β βββ document_analyzer.py # Direct document analysis
β βββ keywords_extraction.py # Keyword processing
β βββ llama_model.py # AI-powered profile extraction
β βββ postgres_client.py # PostgreSQL integration
β βββ profile_extractor.py # Profile extraction utilities
β βββ resume_keywords.py # Personal info extraction
βββ .python-version # Python version specification
βββ uv.lock # Dependency lock file
βββ .gitignore # Git ignore rules
For basic ATS functionality, no environment variables are required. For AI-powered features:
- HUGGING_FACE_API: Hugging Face API token for Llama model access (required for LLM Profile Extraction)
- POSTGRES_URI: PostgreSQL connection string (required for saving profiles, default:
postgresql://localhost:5432/resumematchai)
Optional customization variables:
- MAX_FILE_SIZE: Maximum resume file size (default: 100MB)
- WORD_LIMIT: Job description word limit (default: 1000)
- SIMILARITY_THRESHOLD: Keyword similarity threshold (default: 0.7)
The scoring weights and thresholds can be adjusted in utils/ats_scoring.py:
WEIGHTS = {
'keyword_match': 0.40,
'keyword_density': 0.15,
'personal_info': 0.15,
'skills_alignment': 0.10,
'experience_match': 0.10,
'education_match': 0.05,
'formatting': 0.05
}We welcome contributions! Please follow these steps:
- Fork the repository
- Create a feature branch:
git checkout -b feature/amazing-feature - Make your changes and commit:
git commit -m 'Add amazing feature' - Push to the branch:
git push origin feature/amazing-feature - Open a Pull Request
# Install development dependencies
pip install -r requirements-dev.txt
# Run tests
pytest
# Format code
black .
isort .This project is licensed under the MIT License - see the LICENSE file for details.
- spaCy for powerful NLP capabilities
- Streamlit for the amazing web app framework
- NLTK for text processing utilities
- Open source community for inspiration and tools
If you have questions or need help:
- Issues: GitHub Issues
- Discussions: GitHub Discussions
- Email: support@resumematchai.com
Made with β€οΈ for job seekers and recruiters
Resume β’ ATS Scoring β’ Contributing β’ License