# 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.