🚀 Build an AI Resume Screening Agent with LangChain, Streamlit, and Gemini
Recruiters often spend hours manually reviewing resumes and matching candidates against job descriptions. As AI continues to transform modern workflows, I wanted to explore how we can automate part of the hiring process using Large Language Models (LLMs).
In this project, I built an AI Resume Screening Agent that allows users to upload a PDF resume, paste a job description, and receive an AI-powered evaluation within seconds.
The application analyzes candidate qualifications, compares them against job requirements, identifies matching and missing skills, and generates a hiring recommendation.
🎥 Video Tutorial
Watch the complete step-by-step tutorial:
💻 Source Code
GitHub Repository:
https://github.com/itsmdshahin/Resume-Agent
What Does This Project Do?
The application provides a simple browser-based interface where users can:
- Upload a Resume PDF
- Paste a Job Description
- Analyze Candidate Compatibility
- Generate a Match Score
- Identify Matching Skills
- Identify Missing Skills
- Receive a Hiring Recommendation
Instead of manually reviewing resumes, the AI acts like an intelligent recruitment assistant.
Demo Workflow
The workflow looks like this:
Resume PDF
↓
PDF Text Extraction
↓
Gemini AI Analysis
↓
Job Description Comparison
↓
Candidate Evaluation Report
A recruiter simply uploads a resume and job description, and the system handles the rest.
Tech Stack
This project was built using:
- Python
- Streamlit
- LangChain
- Google Gemini API
- PyPDF
- Python Dotenv
The combination of Streamlit and Gemini makes it possible to create practical AI-powered applications with relatively little code.
Why Build a Resume Screening Agent?
Many companies receive hundreds of applications for a single position.
Reviewing resumes manually can be:
- Time-consuming
- Expensive
- Inconsistent
An AI-powered screening assistant can:
✅ Speed up candidate evaluation
✅ Highlight relevant skills
✅ Identify gaps in experience
✅ Provide consistent assessments
While AI should never replace human judgment entirely, it can significantly improve the initial screening process.
Building the User Interface
I wanted the application to be simple and intuitive.
The interface contains:
Resume Upload
Users upload a candidate's PDF resume.
Job Description Input
Recruiters paste the job description into a text area.
Analyze Button
A single click triggers the AI evaluation workflow.
Because the frontend is built with Streamlit, everything runs directly in the browser without requiring frontend frameworks.
Extracting Text from PDF Resumes
The first challenge is reading and processing PDF resumes.
Using PyPDF, the application extracts text from every page and combines it into a single document.
from pypdf import PdfReader
reader = PdfReader(uploaded_file)
resume_text = ""
for page in reader.pages:
resume_text += page.extract_text()
Once extracted, the resume content becomes available for AI analysis.
Connecting Gemini Through LangChain
To analyze resumes intelligently, I integrated Google's Gemini model through LangChain.
from langchain_google_genai import ChatGoogleGenerativeAI
llm = ChatGoogleGenerativeAI(
model="gemini-2.5-flash",
google_api_key=api_key
)
LangChain makes it easy to interact with Gemini while keeping prompts and workflows organized.
Prompt Engineering
Rather than asking Gemini to summarize the resume, I instructed it to behave like a technical recruiter.
The AI receives:
- Resume Content
- Job Description
Then generates:
- Match Score
- Matching Skills
- Missing Skills
- Strengths
- Weaknesses
- Hiring Recommendation
This approach transforms a general-purpose LLM into a specialized recruiting assistant.
Example Output
The application produces a detailed report similar to:
Candidate Name: John Doe
Match Score: 82%
Matching Skills:
- Python
- Node.js
- AWS
Missing Skills:
- Rust
Strengths:
- Backend Development
- Cloud Experience
Weaknesses:
- Limited Rust Experience
Recommendation:
Good Match
This gives recruiters a quick overview of how well a candidate aligns with a specific role.
Lessons Learned
Building this project taught me several important concepts:
- Working with Large Language Models
- Prompt Engineering
- PDF Document Processing
- AI-Powered Web Applications
- LangChain Integration
- Streamlit Development
Most importantly, it demonstrated how quickly practical AI solutions can be developed using modern tools.
Future Improvements
This project is currently Version 1.
Future enhancements could include:
Multi-Resume Analysis
Upload multiple resumes and automatically rank candidates.
LangGraph Integration
Convert the application into a true multi-step AI agent workflow.
ATS Compatibility Scoring
Generate Applicant Tracking System scores.
Interview Question Generator
Create customized interview questions based on candidate experience.
Database Integration
Store candidate reports using Supabase or PostgreSQL.
Final Thoughts
AI agents are becoming increasingly useful for automating repetitive business processes.
This Resume Screening Agent is a simple example of how Large Language Models can assist recruiters by reducing manual effort and providing faster candidate insights.
If you're learning LangChain, Gemini, Streamlit, or AI application development, this project is an excellent starting point because it combines document processing, prompt engineering, and real-world business value into a single application.
If you'd like to build it yourself, check out the full tutorial and source code below.
🎥 Video Tutorial:
https://youtu.be/lQRI-anzIHI
💻 GitHub Repository:
https://github.com/itsmdshahin/Resume-Agent
Thank you for reading. If you have ideas for improving the project or building more advanced AI agents, I'd love to hear your thoughts.
Top comments (1)
Some comments may only be visible to logged-in visitors. Sign in to view all comments.