Spaces:
Configuration error
Configuration error
File size: 3,280 Bytes
20a6f22 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 |
# ATS Resume Scorer
An AI-powered tool to analyze resume-job description compatibility using ATS (Applicant Tracking System) scoring and skill matching.
## π Features
- **PDF Resume Upload**: Extract text from PDF resumes using pdfplumber
- **Job Description Input**: Paste job descriptions for comparison
- **ATS Match Scoring**: Calculate similarity score using TF-IDF vectorization and cosine similarity
- **Skill Matching**: Identify matched and missing skills from a predefined list
- **Interactive UI**: Clean Streamlit interface with progress bars and color-coded tags
- **Error Handling**: Graceful handling of invalid PDFs, empty inputs, and extraction failures
## π οΈ Tech Stack
- **Frontend/UI**: Streamlit
- **PDF Processing**: pdfplumber
- **NLP Processing**: NLTK (tokenization, stopwords, lemmatization)
- **Machine Learning**: scikit-learn (TF-IDF, Cosine Similarity)
- **Python**: Core language
## π Project Structure
```
ATS-Resume-Scorer/
βββ app.py # Main Streamlit application
βββ utils/
β βββ text_extraction.py # PDF text extraction utilities
β βββ preprocessing.py # Text preprocessing (lowercase, punctuation, stopwords, lemmatization)
β βββ scoring.py # ATS score calculation using TF-IDF and cosine similarity
β βββ skill_matcher.py # Skill matching against predefined list
βββ data/
β βββ skills.txt # Predefined list of skills for matching
βββ requirements.txt # Python dependencies
βββ README.md # Project documentation
```
## πββοΈ How to Run Locally
1. **Clone or download the project**:
```bash
cd /path/to/your/workspace
# Place the ATS-Resume-Scorer folder here
```
2. **Install dependencies**:
```bash
cd ATS-Resume-Scorer
pip install -r requirements.txt
```
3. **Run the application**:
```bash
streamlit run app.py
```
4. **Open your browser** and go to `http://localhost:8501`
## βοΈ Deploy on Streamlit Cloud
1. **Fork or upload to GitHub**: Ensure all files are in a GitHub repository.
2. **Go to Streamlit Cloud**: Visit [share.streamlit.io](https://share.streamlit.io)
3. **Connect your GitHub repo**: Select the repository containing this project.
4. **Deploy**: Choose `app.py` as the main file and click deploy.
5. **Access your app**: Once deployed, you'll get a public URL to access the application.
## π Usage
1. Upload a PDF resume using the file uploader.
2. Paste the job description text in the text area.
3. Click "Analyze" to get:
- ATS match score (0-100%)
- Visual progress bar
- Matched skills (green tags)
- Missing skills (red tags)
## π§ Customization
- **Skills List**: Edit `data/skills.txt` to add or modify the predefined skills for matching.
- **Preprocessing**: Modify `utils/preprocessing.py` to adjust text cleaning steps.
- **Scoring Algorithm**: Enhance `utils/scoring.py` for more advanced similarity measures.
## π€ Contributing
Feel free to fork this project and submit pull requests for improvements!
## π License
This project is open-source and available under the MIT License. |