MENU

GET IN TOUCH

saeemabkari6@gmail.com
Back

RAG Interview Assistant

Year

2025

Tech & Technique

Python, Flask, LangChain, FAISS, Docker, GitHub Actions, Nginx, AWS EC2

Description

A custom technical mock interview platform that uses RAG (Retrieval-Augmented Generation) to quiz candidates on their actual resumes or specific study materials. Instead of using generic online questions, candidates upload a PDF (like a resume or a specific chapter), and the tool dynamically generates custom interview questions based on the candidate's background and previous answers.

Under the hood, it parses the PDF document, creates chunks, and stores semantic embeddings in a local vector store. When the interview starts, the system retrieves relevant concepts, passes them to the LLM context, and manages the session memory state using LangChain.

My Role

I built the end-to-end prototype, starting with the Python/Flask backend and LangChain integration. I also handled the infrastructure setup: containerizing the app with Docker, setting up routing and rate limiting with Nginx, and automating the deployment pipeline to AWS EC2 using GitHub Actions.

System Architecture Flow

ClientNginx ProxyFlask API (LangChain)FAISS Vector IndexOpenAI/Local LLM
Client ➔ Nginx (HTTPS) ➔ Flask App ➔ Search FAISS ➔ Context + Prompt ➔ LLM Query ➔ Response to Client

The Challenge

Managing session state and memory across stateless Flask API requests without hitting LLM context limit thresholds or causing response delays.

Engineered Solution

Used LangChain's conversation buffer memory to summarize long chat histories, and implemented live response streaming to the frontend so candidates don't have to wait for the entire answer to generate.

SAYEEM

saeemabkari6@gmail.com