A Streamlit application that evaluates how well a candidate's profile matches a job description by analyzing their resume and GitHub profile. This tool uses natural language processing (NLP) and semantic similarity to provide a comprehensive score based on the candidate's skills, experience, and projects.
- Resume Analysis: Extracts skills, education, experience, and projects from PDF resumes using NLP
- GitHub Profile Analysis: Analyzes repositories, programming languages, stars, and activity level
- Job Description Matching: Compares extracted data to job requirements using semantic similarity
- Scoring System: Provides three scores:
- Resume Score: Relevance of resume to job description
- GitHub Score: Relevance and quality of GitHub projects
- Final Fit Score: Combined evaluation of the candidate's fit
- Skills Gap Analysis: Identifies missing or weak areas in the candidate's profile
- Python 3.11 or higher
- pip or uv package manager
- Git (for cloning the repository)
- A PDF resume file
- GitHub profile URL
- Job description text
- Internet connection (for GitHub API access)
-
Clone the repository:
git clone https://github.com/muhammad-fiaz/resume-score.git cd resume-score
-
Create and activate a virtual environment:
python -m venv .venv .venv\Scripts\activate
-
Install dependencies:
pip install -r requirements.txt
Or if using uv:
uv pip install -e .
-
Download the spaCy model:
python -m spacy download en_core_web_md
Run the Streamlit application:
streamlit run main.py
- streamlit: Web interface
- PyPDF2: PDF parsing
- spaCy: Natural language processing
- sentence-transformers: Semantic similarity
- PyGithub: GitHub API integration
- requests: HTTP requests
This project is licensed under the MIT License. See the LICENSE file for details.