The LangChain Interview Multi-Agents Flow is a LangGraph-powered system that orchestrates nine specialized AI agents to automate every stage of hiring. You provide a candidate’s resume and a job description, and the system produces a structured candidate profile, role analysis, interview question sets tailored to HR, technical, and CEO audiences, a final evaluation, and a draft email — all without sending data to an external API.Documentation Index
Fetch the complete documentation index at: https://mintlify.com/vrashmanyu605-eng/Langchain_Interview_Multi_Agents_Flow/llms.txt
Use this file to discover all available pages before exploring further.
This system runs entirely locally — no data leaves your machine when using a local LLM via LM Studio.
How it works
A central supervisor agent reads the sharedHiringState after each step and decides which specialized agent to call next. Every agent writes its output back into the state before returning control to the supervisor. The workflow continues until the supervisor sets next_agent to "finished".
The nine agents
| Agent | Node name | Purpose |
|---|---|---|
| Supervisor | supervisor | Reads current state and routes to the next agent |
| Resume parser | resume_parser | Extracts structured candidate profile from resume text |
| JD analyzer | jd_analysis | Breaks down the job description into key requirements |
| Matching agent | matching | Compares the candidate profile against the JD |
| Candidate researcher | candidate_research | Performs additional background research on the candidate |
| HR interviewer | hr_interview | Generates behavioral and culture-fit questions |
| Technical interviewer | technical_interview | Generates role-specific technical questions |
| CEO interviewer | ceo_interview | Generates strategic and leadership-level questions |
| Evaluator | evaluation | Produces a final hire/no-hire recommendation |
| Email agent | email | Drafts a candidate communication email |
Inputs and outputs
Inputs you provide:- A resume in PDF format (parsed by PyMuPDF’s
fitzlibrary) - A job description as a plain-text
.txtfile
candidate_profile— structured summary of the candidatejd_analysis— parsed requirements from the job descriptionmatching_analysis— fit assessment between candidate and roleresearch_analysis— additional background context on the candidatehr_questions,technical_questions,ceo_questions— three tailored interview question setsevaluation— final hiring recommendationemail_content— drafted communication email
The four stages
Parse
Resume parser and JD analyzer extract structured data from your input documents.
Research and match
The matching agent and candidate researcher analyze fit and gather background context.
Interview generation
Three interview agents generate tailored questions for HR, technical, and CEO rounds.
Evaluate and communicate
The evaluator produces a hiring recommendation and the email agent drafts outreach.
Prerequisites
Before running the workflow, make sure you have:- Python 3.10 or later installed
- LM Studio downloaded, with a compatible model (such as
gemma-3-4b-it) loaded and serving athttp://localhost:1234/v1 - PyMuPDF (
fitz) installed — used to extract text from the resume PDF