https://github.com/shwetam19/hr-copilot
HR Copilot is a multi-agent, LangGraph-based automation system that simplifies and accelerates the hiring process. From analyzing job descriptions to parsing multiple resumes, ranking candidates, auto-generating emails, suggesting interview slots and notifying โ this tool acts as an AI hiring assistant for recruiters.
https://github.com/shwetam19/hr-copilot
gemini-api google-calendar-api langraph langsmith multi-agent-systems orchestration resume slack-bot
Last synced: 10 months ago
JSON representation
HR Copilot is a multi-agent, LangGraph-based automation system that simplifies and accelerates the hiring process. From analyzing job descriptions to parsing multiple resumes, ranking candidates, auto-generating emails, suggesting interview slots and notifying โ this tool acts as an AI hiring assistant for recruiters.
- Host: GitHub
- URL: https://github.com/shwetam19/hr-copilot
- Owner: shwetam19
- Created: 2025-08-02T13:56:59.000Z (10 months ago)
- Default Branch: main
- Last Pushed: 2025-08-05T14:58:18.000Z (10 months ago)
- Last Synced: 2025-08-05T16:22:49.906Z (10 months ago)
- Topics: gemini-api, google-calendar-api, langraph, langsmith, multi-agent-systems, orchestration, resume, slack-bot
- Language: Python
- Homepage:
- Size: 91.8 KB
- Stars: 0
- Watchers: 0
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# ๐ค HR Copilot โ AI-Powered Resume Screening Workflow
**A fully autonomous, multi-agent AI workflow that streamlines the hiring pipeline**
๐ **Resume Parsing** โ ๐ **JD Analysis** โ ๐ฏ **Candidate Ranking** โ โ๏ธ **Email Generation** โ ๐ **Google Calendar Scheduling** โ ๐ข **Slack Notifications**
Built with [LangGraph](https://github.com/langchain-ai/langgraph), [LangSmith](https://smith.langchain.com), Gemini, and Streamlit.
---
## System Architecture

---
## ๐ง Core Features
โ
**JD Understanding**
โ
**Multi-Resume Processing**
โ
**Candidate Ranking System**
โ
**Automated Email Writing**
โ
**Calendar Slot Suggestion** (Google API)
โ
**Slack Channel Notifications**
โ
**Visual Streamlit UI**
โ
**LangGraph Workflow**
โ
**LangSmith Observability**
---
## ๐๏ธ Project Structure
```
AI-AGENT/
โ
โโโ agents/ # Individual autonomous agents
โ โโโ calendar_agent.py # Google Calendar integration agent
โ โโโ candidate_ranker.py # Resume-JD matching and scoring
โ โโโ email_generator.py # Automated email composition
โ โโโ jd_analyzer.py # Job description parsing and analysis
โ โโโ notifier_agent.py # Slack notification handling
โ โโโ resume_parser.py # PDF resume extraction and parsing
โ
โโโ orchestrator/
โ โโโ graph/
โ โ โโโ graph_builder.py # LangGraph workflow definition
โ โ โโโ nodes.py # Task-specific node logic
โ โโโ state/
โ โโโ context.py # Shared LangGraph state schema
โ
โโโ tools/ # External utilities
โ โโโ google_calendar.py # Google Calendar API integration
โ โโโ slack_notifier.py # Slack message handling
โ
โโโ data/resumes/ # Sample resumes (PDFs)
โโโ env/ # Your virtualenv folder
โโโ .env # Your environment variables
โโโ credentials.json # Google Cloud credentials
โโโ token.pickle # Google OAuth token
โโโ app.py # Streamlit UI entry point
โโโ main.py # (Optional) CLI script
โโโ requirements.txt
โโโ .gitignore
โโโ README.md
```
---
## ๐ Workflow Agents
| Stage | Agent Class | Description |
|-------|-------------|-------------|
| ๐งพ **JD Parsing** | `JDAnalyzer` | Extracts role, skills, experience from job description |
| ๐ **Resume Parsing** | `ResumeParser` | Parses candidate resumes into structured format |
| ๐ฏ **Candidate Ranking** | `CandidateRanker` | Compares resume to JD and gives a match score |
| โ๏ธ **Email Generator** | `EmailGenerator` | Creates custom invite/reject emails |
| ๐ **Calendar Scheduler** | `CalendarAgent` | Suggests slots and generates Google Calendar event |
| ๐ข **Slack Notifier** | `NotifierAgent` | Posts Slack message in a channel with candidate status |
---
## โ๏ธ Setup Instructions
### ๐ 1. Create & Activate Virtual Environment
```bash
python -m venv env
source env/bin/activate # Windows: env\Scripts\activate
```
### ๐ฆ 2. Install Dependencies
```bash
pip install -r requirements.txt
```
### ๐ 3. Configure .env File
```bash
cp .env.example .env
```
Fill in your API keys:
```env
GEMINI_API_KEY=your_google_gemini_key
OPENAI_API_KEY=your_openai_key
GOOGLE_API_KEY=your_google_api_key
SLACK_BOT_TOKEN=your_slack_token
```
### ๐ 4. Google Calendar API Setup
1. Go to [Google Cloud Console](https://console.cloud.google.com/)
2. Create a new project โ Enable Calendar API
3. Create OAuth credentials (desktop app)
4. Download `credentials.json` and place in project root
5. First-time login will create `token.pickle` automatically
6. Ensure scopes allow access to your calendar
### ๐ฌ 5. Slack Bot Setup
1. Go to [Slack API Apps](https://api.slack.com/apps)
2. Create a new bot โ Enable OAuth permissions:
- `chat:write`
3. Install app to your workspace
4. Get the Bot Token and paste in `.env`
5. Set channel = `"#hiring"` (default) or configure in `NotifierAgent`
---
## โถ๏ธ Run the App
```bash
streamlit run app.py
```
**Access it at:** http://localhost:8501
---
## ๐งช Sample Usage
| Step | Action |
|------|--------|
| 1๏ธโฃ | Paste the JD in textarea |
| 2๏ธโฃ | Upload 1 or more resumes (PDF) |
| 3๏ธโฃ | Click "๐ Run Pipeline" |
| 4๏ธโฃ | Watch each step in the workflow live |
---
### Output Includes:
- ๐ Scores & summaries
- โ๏ธ Email drafts
- ๐ Interview slots booked
- ๐ข Slack updates
---
## ๐ง Tech Stack
Technology
Role
LangGraph
Agent workflow orchestration
LangSmith
Monitoring & debugging
Gemini
LLM provider for reasoning
Streamlit
Interactive UI
Google API
Calendar events
Slack SDK
Notifications
---
## ๐ Final Note
> **This project is a production-grade AI assistant tailored for HR teams and recruiters to drastically reduce manual screening effort. Plug in more agents, build UI logic, or deploy it on the cloud โ it's built to scale.**
### ๐ **Happy hiring!** ๐
---
โญ **Star this repo if you found it helpful!** โญ