A newer version of the Streamlit SDK is available:
1.54.0
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:
ATS Resume Score Check:
- Enter a job URL to evaluate your resume.
- Get a personalized score with actionable feedback.
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
- LangChain Tools
- Gmail SMTP (secured with App Passwords)
- PyMuPDF, spaCy, NLTK
- Streamlit (for UI)
- ONNX Runtime for model inference
π¦ Installation
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:
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 PasswordsGet your Firecrawl API key from firecrawl.dev to enable parsing job descriptions from URLs.
βοΈ Sending Emails
- Emails are sent using SMTP via
smtp.gmail.comon port587. - Each message is read from a
.txtfile where:- The first line must start with
Subject: - The remaining lines form the email body.
- The first line must start with
- Emails are sent individually with personalized content for each recipient.