ATSCrewAI / README.md
sunithalv's picture
Update README.md
b717a78

A newer version of the Streamlit SDK is available: 1.54.0

Upgrade
metadata
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
  • 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 Passwords

Get your Firecrawl API key from 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.