Spaces:
Configuration error
Configuration error
| # 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. |