🤖 Building an Agentic AI Job Search Assistant with LangChain, LLM, RAG, and CrewAI


📘 Introduction
Navigating job portals manually is tedious, inconsistent, and often inefficient. What if a system could read your resume, analyze your strengths, search jobs in real-time across platforms, and generate interview questions—all personalized to your career path? That’s exactly what this Agentic AI Job Assistant does.
Powered by LangChain, LLMs (GPT-3.5), RAG architecture, and orchestrated using CrewAI, this project is a full-stack intelligent assistant built with Streamlit that automates the end-to-end job discovery and interview preparation process.
🔍 Project Summary:
The Agentic AI Job Search Assistant is an intelligent, modular job-hunting platform that empowers candidates with real-time job recommendations, resume-based job matching, resume quality assessment, and AI-generated interview questions. Built using LangChain, CrewAI, OpenAI GPT, and web scraping APIs, it simulates a recruitment consultant with multi-agent large language model (LLM) workflows.
🎯 Project Goals
Parse and analyze resumes using AI.
Search real-time jobs from multiple platforms via SerpAPI.
Match skills to jobs using semantic search.
Generate targeted interview questions based on the job role and resume.
Build an intuitive dashboard in Streamlit.
🧰 Tech Stack
Component | Technology / Tool | Purpose |
UI Layer | Streamlit, Python | Lightweight UI layer |
Resume Parsing | spaCy, PDF/Text parsers | Resume ingestion and skill extraction |
Semantic Matching | FAISS, Embeddings, LangChain | A vector database used for embedding and matching job descriptions with resume vectors |
Web Scraping | SerpAPI | Real-time job scraping and search |
Orchestration | CrewAI Agents | Optional agent management for modular flow control |
Interview Engine | LLM (GPT-3.5), Prompt Chaining | LLM reasoning for analysis, matching, and Q&A |
🧠 Architectural Overview
+------------------------+
| Streamlit UI |
| (Upload, Filter, View) |
+------------------------+
↓
+------------------------+ +------------------------+ +------------------------+
| Resume Agent (LLM) | → | Skill Extraction | → | FAISS Vector Embedding |
| PDF -> Skills/Sections | | Agent | | Compare JD ↔ Resume |
+------------------------+ +------------------------+ +------------------------+
↓
+---------------------------+
| Job Search Agent (SerpAPI)|
| Fetch jobs by keywords & |
| location (LinkedIn/etc.) |
+---------------------------+
↓
+-----------------------------------------+
| Job Match + Interview Q Generator (LLM) |
| InterviewAgent (OpenAI) |
| LLM prompts for tailored |
| Interview Qs |
+-----------------------------------------+
↓
+-----------------------------+
| Streamlit App: UI & Filters |
+-----------------------------+
📂 Project Structure:
job_search_assistant/
├── app.py # Streamlit front-end
├── config.py # Env configs and styling
├── resume_agent.py # Resume analysis logic
├── job_search_agent.py # Job finder and matcher
├── interview_agent.py # AI interview prep
├── ui_utils.py # Streamlit display components
├── requirements.txt
🛠 Step-by-Step Implementation Guide
1️⃣ Resume Upload & Analysis
Supports PDF, DOCX, TXT formats.
Extracts raw text → Uses
spaCy
NER + Regex to find name, contact, education, and skills.Extracts metadata, skills, experience, education
Categorizes technical stacks: Python, SQL, Cloud, ML, etc.
2️⃣ Skill Extraction & Embedding
Extracted skills are converted to vector embeddings.
FAISS is used to create a searchable vector store of job-role keywords.
3️⃣ Real-Time Job Search via SerpAPI
Platforms supported: LinkedIn, Indeed, Glassdoor, Monster.
Query formation uses extracted keywords and location preferences.
Resume Analysis
Evaluates strengths and gaps
Suggests improvements (ATS keywords, skill alignment, structure)
Output is styled and summarized for user review
4️⃣ Job-Resume Matching
Computes cosine similarity between job descriptions and the embedded resume.
Matches are ranked and displayed with job details, posting source, and skill overlap.
Job Match Score
Evaluates job descriptions against your resume
FAISS is used to embed and compare resume-job vectors
Returns match score, key skill overlaps, gaps, and actionables
5️⃣ Interview Questions Generation (LLM)
Based on the matched job description and resume.
Prompts include role, difficulty level, experience, and skills.
Uses GPT to dynamically generate STAR-based or technical questions.
Each question includes:
📌 Context
🧠 What it evaluates
✅ Tips to answer
📋 STAR-format example responses
🧑💼 Example Use Case:
Arpit uploads his resume, selects “Data Scientist” in “Bangalore,” and the system returns:
✅ 5 matched jobs from Indeed + LinkedIn
📊 Resume Score: 83%
🎯 Match Analysis:
Key Matches: Python, Pandas, Streamlit, ML
Gaps: No mention of Docker, Cloud deployments
🤖 Top 10 Interview Questions with contextual help
🧪 Key Features
✅ End-to-End Automation
✅ ATS-Optimized Resume Feedback
✅ Real-Time Job Listings with Relevancy Ranking
✅ Interview Preparation Mode (Behavioral + Technical)
✅ Modular CrewAI Agents
✅ Stylish Streamlit UI with multi-tab layout
| Module | Purpose | | --- | --- | |
resume_agent.py
| Analyzes resume content, evaluates weaknesses, and provides suggestions | |job_search_agent.py
| Extracts jobs from LinkedIn, Indeed, etc., using SERP API | |interview_agent.py
| Generates tailored interview questions using GPT-3.5/4 | |app.py
(UI) | Interactive Streamlit UI with upload, filters, insights, and results |
🚀 Real-World Use Cases
🎯 Personalized job hunting with 10x less manual effort
💡 Ideal for freshers and experienced professionals
🧠 Mock interviews and dynamic STAR question practice
👩💼 Resume analysis and improvement recommendations
🔄 Future Enhancements
Feature | Status | Description |
✍️ Resume Builder | Planned | Generate updated resumes via LLM |
📅 Interview Scheduler | Planned | Integration with Google/Calendly APIs |
📊 Analytics Dashboard | Planned | Job trends, applied jobs, conversion rates |
📁 Cloud Resume Storage | Planned | One-click storage in GDrive/Dropbox |
✅ Agent Orchestration via CrewAI
🔐 Resume privacy layer & anonymization
🧾 Cover letter generator
🔄 Auto-job apply bot (with consent + CAPTCHA handling)
📧 Daily email digests with job + prep content
📂 GitHub & Local Setup
Repo: Job Search Assistant
🧪 Local Setup
git clone https://github.com/aarpitdubey/project.git
cd project/job/job_search_assistant
pip install -r requirements.txt
streamlit run app.py
You’ll see a dashboard with 4 tabs: Resume Analysis, Job Search, Interview Prep, Saved Jobs.
🎓 Conclusion
This project merges multiple AI paradigms—RAG, LLMs, semantic search, and agent orchestration—to build a practical tool for career growth. It demonstrates how Agentic AI systems can automate human-in-the-loop processes while maintaining context awareness, modularity, and real-time integration.
This Agentic AI system redefines job search using the latest LLM technologies. It acts like a virtual recruiter—analyzing, matching, and preparing you better than ever before. Perfect for modern professionals, career coaches, and even HR platforms looking to integrate smart AI hiring assistants.
Whether you're an engineer, data scientist, or product manager, this assistant can serve as your personal AI job hunter.
Ready to land your next job? Let your AI agent do the searching.
Subscribe to my newsletter
Read articles from Arpit Dubey directly inside your inbox. Subscribe to the newsletter, and don't miss out.
Written by

Arpit Dubey
Arpit Dubey
A Full Stack Web Developer who is familiar with java, python, Java script, AI, ML & DL. Block chain and I'm ENFJ-A so, feel free to talk. Thank you