sunithalv commited on
Commit
dada799
Β·
1 Parent(s): 3ed893c

Update README.md

Browse files
Files changed (1) hide show
  1. README.md +50 -77
README.md CHANGED
@@ -1,98 +1,71 @@
1
  # CrewAI ATS Resume Screener & Rewriter
2
- This is an intelligent Applicant Tracking System (ATS) Resume Screener & Rewriter built using CrewAI and LangChain tool integrations. It serves two primary user roles: Candidate and Employer.
3
 
4
- ## Features
5
- ### For Candidates
6
- #### Resume Scoring
7
- - Provide your resume and a job posting URL.
8
- - The system analyzes and scores your resume based on ATS alignment with the job.
9
- #### Resume Rewriting
10
- - Upload a resume, and optionally provide a job posting URL.
11
- - The system identifies gaps and rewrites your resume to improve the ATS score.
12
- - Attempts rewriting up to 2 times for optimal improvement.
13
 
14
- ### For Employers
15
- #### Candidate Evaluation
16
- - Upload a job description as plain text.
17
- - Upload multiple candidate resumes (PDF, DOCX, TXT).
18
- - The system analyzes and ranks the top 3 best-fit candidates based on the job description.
19
- - Automated Email Notifications
20
- - Sends personalized emails to all candidates:
21
- - Acceptance: Invitation for interview scheduling (top 3).
22
- - Rejection: Polite rejection message (others).
23
 
24
- ## Tech Stack
25
- Built with Python using uv and the following major libraries:
 
 
 
 
26
 
27
- πŸ€– crewai[tools] β€” Agent orchestration
 
 
 
 
28
 
29
- 🧱 langchain-tools, crewai-tools β€” Tool abstraction for job and resume parsing
 
 
 
 
30
 
31
- πŸ“§ google-auth-oauthlib, google-api-python-client β€” Gmail API integration for personalized emails
 
 
 
 
 
 
 
32
 
33
- πŸ“Š pyvis β€” Visualizing the agent execution graph
34
 
35
- ⚑ onnxruntime β€” For fast LLM inference where applicable
 
36
 
37
- πŸ“„ python-docx, docx2txt, pymupdf β€” Resume document parsing
 
 
 
38
 
39
- 🧠 spacy, nltk β€” NLP for keyword extraction and semantic comparison
40
 
41
- 🌐 firecrawl-py β€” Job post scraping from URLs
42
 
43
- 🌍 streamlit β€” Frontend interface for candidate and employer interaction
44
 
45
- βš™οΈ asyncio, numpy β€” Utility libraries for async tasks and data processing
46
 
47
- πŸ“‚ Installation
48
- bash
49
- Copy
50
- Edit
51
- # Install uv if not already installed
52
- pip install uv
53
 
54
- # Install dependencies
55
- uv pip install -r pyproject.toml
56
- Or, if using requirements.txt:
57
 
58
- bash
59
- Copy
60
- Edit
61
- pip install -r requirements.txt
62
- πŸ› οΈ Usage
63
- Run the Streamlit App
64
- bash
65
- Copy
66
- Edit
67
- streamlit run app.py
68
- Modes of Operation
69
- Select your role: Candidate or Employer
70
 
71
- Follow on-screen instructions to upload documents and optionally provide URLs
 
72
 
73
- View results and email status in the dashboard
74
 
 
 
 
 
 
75
 
76
- πŸ“Ž File Types Supported
77
- PDF
78
-
79
- DOCX
80
-
81
-
82
- πŸ“ˆ Output
83
- For Candidates:
84
- Score Report
85
-
86
- Rewritten Resume
87
-
88
- Comparison Overview
89
-
90
- For Employers:
91
- Top 3 Candidate Names
92
-
93
- Email Dispatch Report
94
-
95
- Ranking Table
96
-
97
- πŸ§ͺ Retry Mechanism
98
- Resume rewriting has a 2-attempt max to ensure optimal rewriting without excessive API calls.
 
1
  # CrewAI ATS Resume Screener & Rewriter
 
2
 
3
+ An AI-driven system built using CrewAI to streamline both employer-side candidate screening and candidate-side resume optimization for Applicant Tracking Systems (ATS).
 
 
 
 
 
 
 
 
4
 
5
+ ## πŸ”§ Features
 
 
 
 
 
 
 
 
6
 
7
+ ### πŸ‘” Employer Mode
8
+ - Upload a **job description** and **multiple resumes**.
9
+ - Automatically **score resumes** based on relevance.
10
+ - **Top 3 candidates** receive personalized interview invitation emails.
11
+ - Remaining candidates receive **personalized rejection emails**.
12
+ - All emails are customized based on resume and job context.
13
 
14
+ ### πŸ‘€ Candidate Mode
15
+ Two available options:
16
+ 1. **ATS Resume Score Check**:
17
+ - Enter a **job URL** to evaluate your resume.
18
+ - Get a **personalized score** with actionable feedback.
19
 
20
+ 2. **Resume Rewriting**:
21
+ - Optional: Provide a **job URL** for targeted optimization.
22
+ - Resume is rewritten **only if the score < 85**.
23
+ - Supports up to **2 rewrite attempts**.
24
+ - Returns final score and **detailed feedback**.
25
 
26
+ ## πŸš€ Tech Stack
27
+ - **Python 3.11**
28
+ - [CrewAI](https://github.com/joaomdmoura/crewai)
29
+ - LangChain Tools
30
+ - Gmail SMTP (secured with App Passwords)
31
+ - PyMuPDF, spaCy, NLTK
32
+ - Streamlit (for UI)
33
+ - ONNX Runtime for model inference
34
 
35
+ ## πŸ“¦ Installation
36
 
37
+ ```bash
38
+ git clone https://github.com/sunithalv/ATS-Crewai.git
39
 
40
+ # Install dependencies using uv
41
+ uv venv # creates a virtual environment and activates it
42
+ uv pip install -r requirements.txt
43
+ ```
44
 
45
+ > Note: Python version must be >= 3.11 and < 3.12
46
 
 
47
 
48
+ ## πŸ“§ Gmail Integration
49
 
50
+ This project sends emails using Gmail's SMTP server. You'll need to configure your environment with the following variables:
51
 
52
+ ### πŸ” Environment Setup
 
 
 
 
 
53
 
54
+ Create a `.env` file in the root directory with:
 
 
55
 
56
+ ```
57
+ EMAIL_ADDRESS=your-email@gmail.com
58
+ EMAIL_PASSWORD=your-app-password
59
+ ```
 
 
 
 
 
 
 
 
60
 
61
+ > ⚠️ **Important**: You must use a **Gmail App Password** if you have 2-Step Verification enabled.
62
+ > Learn how to generate one: [Google App Passwords](https://support.google.com/accounts/answer/185833)
63
 
64
+ ### βœ‰οΈ Sending Emails
65
 
66
+ - Emails are sent using **SMTP** via `smtp.gmail.com` on port `587`.
67
+ - Each message is read from a `.txt` file where:
68
+ - The **first line** must start with `Subject:`
69
+ - The **remaining lines** form the email body.
70
+ - Emails are sent individually with **personalized content** for each recipient.
71