An intelligent AI-powered interview system that analyzes candidate resumes against job descriptions and conducts personalized, interactive interviews using Google's Gemini AI and LangGraph workflow orchestration.
- Resume-JD Compatibility Analysis: Evaluates alignment between candidate background and job requirements
- Skills Gap Identification: Identifies missing skills and extra strengths
- Experience Matching: Analyzes relevant experience and domain expertise
- PDF Processing: Automatically extracts text from resume and job description PDFs
- Technical Questions: Based on candidate's technical background and job requirements
- Behavioral Questions: STAR method-based questions focusing on soft skills and leadership
- Situational Questions: Scenario-based problem-solving challenges
- Context-Aware: Questions tailored to candidate's specific experience and role
- Conversational Interface: Natural, AI-driven interview conversations
- Follow-up Questions: Dynamic questioning based on candidate responses
- Real-time Evaluation: Continuous assessment during the interview
- Multi-modal Interface: Both web-based (Streamlit) and command-line options
- Response Analysis: AI-powered evaluation of candidate answers
- Depth Assessment: Measures the depth and quality of responses
- Interview Summary: Detailed evaluation report with recommendations
- JSON Export: Structured data export for further analysis
๐ AI-Interview-Agent/
โโโ ๐ฏ main.py # Command-line entry point
โโโ ๐ streamlit_app.py # Web interface
โโโ ๐ run_streamlit.py # Streamlit launcher script
โโโ ๐ง llm.py # Google Gemini AI integration
โโโ ๐ graph.py # LangGraph workflow orchestration
โโโ ๐ requirements.txt # Python dependencies
โโโ ๐ tools/ # Core processing modules
โ โโโ ๐ analyzer.py # Resume-JD compatibility analysis
โ โโโ ๐ context_splitter.py # Context categorization engine
โ โโโ โ question_generator.py # Interview question generation
โ โโโ ๐ฌ interview_conversational_agent.py # Interactive interview conductor
โโโ ๐ resources/ # Sample documents
โ โโโ ๐ cv-ml.pdf # Sample resume
โ โโโ ๐ JD-ml.pdf # Sample job description
โโโ ๐ README.md # This documentation
graph TD
A[๐ PDF Resume] --> B[๐ To Markdown ]
C[๐ PDF Job Description] --> B
B --> D[๐ Resume-JD Analysis]
D --> E[๐ Context Splitting]
E --> F[โ Question Generation]
F --> G[๐ฌ Interactive Interview]
G --> H[๐ Response Evaluation]
H --> I[๐ Final Assessment]
- Python
- Google API key for Gemini AI
-
Clone the repository
git clone https://github.com/gopalkrishna2004/AI-Interview-Agent.git cd AI-Interview-Agent -
Install dependencies
pip install -r requirements.txt
-
Configure API Key
Edit
llm.pyand replace the placeholder:os.environ["GOOGLE_API_KEY"] = "your-actual-api-key-here"
Or set as environment variable:
export GOOGLE_API_KEY="your-actual-api-key-here"
-
Verify installation
python run_streamlit.py
Launch the Streamlit web application:
python run_streamlit.pyThen open your browser to http://localhost:8501
Features:
- ๐ค File Upload: Upload resume and job description PDFs
- ๐จ Modern UI: Clean, professional interface
- ๐ Visual Results: Interactive display of analysis and questions
- ๐ฌ Live Chat: Real-time interview conversation
- ๐ฑ Responsive Design: Works on desktop and mobile
For programmatic usage or testing:
python main.pyNote: Update the file paths in main.py:
resume_pdf_path = "path/to/your/resume.pdf"
jd_pdf_path = "path/to/your/job_description.pdf"- Google Gemini 2.5 Flash: High-performance AI model integration
- Standardized Interface: Consistent AI interaction across all modules
- Error Handling: Robust API communication
- LangGraph Framework: State-based workflow management
- Two-Phase Processing:
- Phase 1: Analysis โ Context Split โ Question Generation
- Phase 2: Interactive Interview โ Evaluation
- State Management: Comprehensive data flow between components
# Key Analysis Areas:
โ
Matching Skills # Skills alignment assessment
๐ Experience Alignment # Background compatibility
๐ฌ Research Fit # Domain expertise evaluation
โ ๏ธ Skill Gaps # Missing requirements identification
โญ Extra Strengths # Additional candidate valueCategorizes candidate background into three contexts:
- ๐ง Technical Context: Skills, projects, technical experience
- ๐ฅ Behavioral Context: Leadership, teamwork, communication
- ๐ฏ Situational Context: Problem-solving, challenges, decision-making
- Technical Questions: Role-specific technical assessments
- Behavioral Questions: STAR method-based soft skill evaluation
- Situational Questions: Scenario-based problem-solving
- Customizable Difficulty: Adjustable complexity levels
- Natural Conversation Flow: Human-like interview interactions
- Dynamic Follow-ups: Context-aware follow-up questions
- Real-time Evaluation: Continuous candidate assessment
- Conversation Memory: Maintains context throughout interview
{
"compatibility_score": 85,
"matching_skills": ["Python", "Machine Learning", "Docker"],
"missing_skills": ["Kubernetes", "AWS"],
"experience_alignment": "Strong background in ML engineering",
"recommendation": "Highly suitable candidate"
}- Technical: "Explain your experience with distributed systems and how you've handled scalability challenges."
- Behavioral: "Tell me about a time when you had to lead a cross-functional team through a difficult project."
- Situational: "If you discovered a critical bug in production right before a major release, how would you handle it?"
{
"overall_score": 4.2,
"technical_competency": 4.5,
"communication_skills": 4.0,
"problem_solving": 4.3,
"cultural_fit": 4.1,
"recommendations": ["Strong technical skills", "Good communication"]
}Edit tools/question_generator.py:
difficulty_level = "advanced" # Options: basic, intermediate, advancedModify tools/interview_conversational_agent.py:
question_type_order = ["technical", "behavioral", "situational"]
max_follow_ups = 2
conversation_depth = 3Update model settings in llm.py:
model_name = "gemini-2.5-flash" # or "gemini-pro"
temperature = 0.7
max_tokens = 1000streamlit- Web interface frameworklangchain- AI application frameworklangchain-google-genai- Google Gemini integrationlanggraph- Workflow orchestrationlanggraph-checkpoint- State managementlanggraph-prebuilt- Pre-built components
PyMuPDF- PDF text extractionpymupdf4llm- LLM-optimized PDF processing
tempfile2- Temporary file handlingtyping- Type hints and annotations
- Prepare your documents: Have a resume PDF and job description PDF ready
- Start the application:
python run_streamlit.py - Upload files: Use the web interface to upload your documents
- Review analysis: Check the compatibility assessment
- Start interview: Begin the interactive interview session
- Get evaluation: Receive comprehensive feedback and recommendations
- Fork the repository
- Create a feature branch:
git checkout -b feature-name - Make your changes
- Test thoroughly
- Submit a pull request