DEV Community

Md Shahinur Rahman
Md Shahinur Rahman

Posted on

Build an AI Resume Screening Agent with LangChain, Streamlit, and Gemini 🚀

🚀 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:

https://youtu.be/lQRI-anzIHI

💻 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
Enter fullscreen mode Exit fullscreen mode

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()
Enter fullscreen mode Exit fullscreen mode

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
)
Enter fullscreen mode Exit fullscreen mode

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
Enter fullscreen mode Exit fullscreen mode

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.

ai #python #langchain #streamlit #gemini #machinelearning #webdev #programming #opensource

Top comments (1)

Some comments may only be visible to logged-in visitors. Sign in to view all comments.