An open API service indexing awesome lists of open source software.

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.

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

![System Architecture](./architecture.png)

---

## ๐Ÿง  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!** โญ