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.