This project is an AI-powered candidate screening system built with LangGraph, LangChain, LangSmith, and OpenAI.
It automatically evaluates job applications, categorizes candidates by experience level, checks for a skill match, and then decides whether to:
- ✅ Shortlist for HR interview
- 📈 Escalate to a recruiter
- ❌ Send a rejection email
- Integrated LangSmith tracing – monitor, debug, and visualize workflow execution
- State machine workflow with LangGraph
- Experience level classification (
Entry-level | Mid-level | Senior-level
) - Skillset assessment (
Match | No Match
) - Dynamic routing (HR → Recruiter → Rejection)
- Extensible design – easily adapt prompts for other job roles
- LangSmith – tracing & monitoring
- Python 3.10+
- LangGraph
- LangChain
- OpenAI / ChatOpenAI
- python-dotenv
.
├── main.py # Main workflow
├── .env.example # Stores API keys (ignored in git)
├── requirements.txt # Dependencies
└── README.md # Project documentation

-
Clone this repo
git clone https://github.com/<your-username>/candidate-screening.git cd candidate-screening
-
Create virtual environment
python -m venv venv source venv/bin/activate # Mac/Linux venv\Scripts\activate # Windows
-
Install dependencies
pip install -r requirements.txt
-
Add API key
Create a.env
file in the project root:OPENAI_API_KEY=your_api_key_here
Run the workflow with a sample candidate application:
python main.py
Categorizing the experience level of the candidate
Assessing the skillset of candidate :
Skill Match : No Match
Sending Rejection Email
Computed Results :
Application: I have 10 years of experience in software engineering with expertise in C#
Experience Level: Senior-level
Skill Match: No Match
Response: Candidate has been escalated to the recruiter.
LangSmith tracing is enabled in this project to:
- Monitor each step of the LangGraph workflow
- Debug model inputs/outputs
- Visualize execution traces for better observability
- ✅ Structured output parsing (guarantee clean values)
- ✅ Configurable job roles instead of hardcoding "Python Developer"
- ✅ Error handling & validation
- ✅ REST API / frontend integration
Feel free to fork this repo and submit PRs with improvements 🚀
MIT License © 2025 [Kartik Garg]