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: about 2 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 (2 months ago)
- Default Branch: main
- Last Pushed: 2025-08-05T14:58:18.000Z (2 months ago)
- Last Synced: 2025-08-05T16:22:49.906Z (2 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
RoleLangGraph
Agent workflow orchestrationLangSmith
Monitoring & debuggingGemini
LLM provider for reasoningStreamlit
Interactive UIGoogle API
Calendar eventsSlack 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!** โญ