File size: 2,979 Bytes
357af1c a5f08ff 357af1c 3ed893c 3241f25 b717a78 3241f25 dada799 3241f25 dada799 3241f25 dada799 3241f25 dada799 3241f25 dada799 3241f25 dada799 3241f25 dada799 3241f25 dada799 f5f590a dada799 3241f25 dada799 3241f25 d10b412 3241f25 dada799 3241f25 dada799 3241f25 dada799 3241f25 dada799 3241f25 dada799 d10b412 dada799 3241f25 d10b412 3241f25 dada799 3241f25 dada799 3241f25 | 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 94 95 96 97 98 99 | ---
title: CrewAI ATS Resume Screener Rewriter
emoji: π¨
colorFrom: blue
colorTo: red
sdk: streamlit
sdk_version: 1.42.0
app_file: app.py
pinned: false
license: apache-2.0
short_description: Resume Screener Rewriter using CrewAI flow
---
# CrewAI ATS Resume Screener & Rewriter
An AI-driven system built using CrewAI to streamline both employer-side candidate screening and candidate-side resume optimization for Applicant Tracking Systems (ATS).Please find the deployed app at https://huggingface.co/spaces/sunithalv/ATSCrewAI
## π§ Features
### π Employer Mode
- Upload a **job description** and **multiple resumes**.
- Automatically **score resumes** based on relevance.
- **Top 3 candidates** receive personalized interview invitation emails.
- Remaining candidates receive **personalized rejection emails**.
- All emails are customized based on resume and job context.
### π€ Candidate Mode
Two available options:
1. **ATS Resume Score Check**:
- Enter a **job URL** to evaluate your resume.
- Get a **personalized score** with actionable feedback.
2. **Resume Rewriting**:
- Optional: Provide a **job URL** for targeted optimization.
- Resume is rewritten **only if the score < 85**.
- Supports up to **2 rewrite attempts**.
- Returns final score and **detailed feedback**.
## π Tech Stack
- **Python 3.11**
- [CrewAI](https://github.com/joaomdmoura/crewai)
- LangChain Tools
- Gmail SMTP (secured with App Passwords)
- PyMuPDF, spaCy, NLTK
- Streamlit (for UI)
- ONNX Runtime for model inference
## π¦ Installation
```bash
git clone https://github.com/sunithalv/ATS-Crewai.git
# Install dependencies using uv
uv venv # creates a virtual environment and activates it
uv pip install -e .
```
> Note: Python version must be >= 3.11 and < 3.12
## βΆοΈ Run the Application
Launch the app locally using Streamlit:
```bash
streamlit run app.py
```
> The UI will open in your browser at `http://localhost:8501`
## π§ Gmail Integration
This project sends emails using Gmail's SMTP server. You'll need to configure your environment with the following variables:
### π Environment Setup
Create a `.env` file in the root directory with:
```
EMAIL_ADDRESS=your-email@gmail.com
EMAIL_PASSWORD=your-app-password
FIRECRAWL_API_KEY=your-firecrawl-api-key
```
> β οΈ **Important**:
> You must use a **Gmail App Password** if you have 2-Step Verification enabled.
> Learn how to generate one: [Google App Passwords](https://support.google.com/accounts/answer/185833)
>
> Get your **Firecrawl API key** from [firecrawl.dev](https://firecrawl.dev) to enable parsing job descriptions from URLs.
### βοΈ Sending Emails
- Emails are sent using **SMTP** via `smtp.gmail.com` on port `587`.
- Each message is read from a `.txt` file where:
- The **first line** must start with `Subject:`
- The **remaining lines** form the email body.
- Emails are sent individually with **personalized content** for each recipient.
|