Ready2Interview is an AI-powered mock interview platform that generates personalized interview questions based on a user's resume and target job description.
The platform uses Retrieval-Augmented Generation (RAG) to retrieve relevant experience from the candidate's resume, generate contextual interview questions, and provide structured feedback on each answer.
- User registration and authentication
- PDF resume upload and processing
- Resume text extraction and chunking
- Vector embeddings with semantic search
- Job description management
- RAG-based resume context retrieval
- Personalized AI interview question generation
- Real-time question streaming
- Multiple interview types and difficulty levels
- AI-powered answer evaluation
- Structured scores, strengths, weaknesses, and follow-up questions
- Interview session history
- User-level data isolation
-
Upload Resume
- The user uploads a PDF resume.
- Resume processing runs asynchronously in the background.
-
Resume Processing
- Text is extracted from the PDF.
- The resume is divided into smaller chunks.
- Each chunk is converted into a vector embedding and stored in PostgreSQL with pgvector.
-
Add Job Description
- The user provides a company, role, and job description.
-
Start Interview
- The user selects a processed resume, job description, interview type, and difficulty.
-
Retrieve Relevant Context
- The job description is used to search the resume vector database.
- The most relevant resume sections are retrieved using vector similarity search.
-
Generate Interview Question
- Relevant resume context, the job description, and previous questions are provided to the LLM.
- The next interview question is streamed to the frontend in real time.
-
Submit Answer
- The user submits an answer to the generated question.
-
Receive AI Feedback
- The answer is evaluated using a structured rubric.
- The platform returns an overall score, category scores, strengths, weaknesses, and a follow-up question.
┌─────────────────────┐
│ User │
└──────────┬──────────┘
│
▼
┌─────────────────────┐
│ Next.js Frontend │
│ React + TypeScript │
└──────────┬──────────┘
│
REST API / SSE
│
▼
┌─────────────────────┐
│ FastAPI Backend │
└──────────┬──────────┘
│
┌────────────────────┼────────────────────┐
│ │ │
▼ ▼ ▼
┌──────────────┐ ┌────────────────┐ ┌────────────────┐
│ PostgreSQL │ │ RabbitMQ │ │ OpenAI API │
│ + pgvector │ │ Task Queue │ │ LLM/Embeddings │
└──────────────┘ └───────┬────────┘ └────────────────┘
│
▼
┌──────────────┐
│Celery Worker │
│Resume Process│
└───────┬──────┘
│
▼
┌──────────────┐
│ Redis │
│Task Results │
└──────────────┘
PDF Resume
│
▼
Text Extraction
│
▼
Section Detection & Chunking
│
▼
OpenAI Embeddings
│
▼
PostgreSQL + pgvector
│
│
├─────────────── Job Description
│ │
▼ ▼
Vector Similarity Search ◄──┘
│
▼
Relevant Resume Context
│
▼
LLM
│
▼
Personalized Interview Question
- Next.js
- React
- TypeScript
- Tailwind CSS
- FastAPI
- Python
- SQLAlchemy
- Alembic
- Pydantic
- PostgreSQL
- pgvector
- Celery
- RabbitMQ
- Redis
- OpenAI API
- Vector Embeddings
- Retrieval-Augmented Generation (RAG)
- Structured LLM Outputs
- Docker
- Docker Compose
Make sure you have installed:
- Python 3.10+
- Node.js
- Docker
- Docker Compose
- An OpenAI API key
git clone https://github.com/123jklas/Interview-Generator-v2.git
cd Interview-Generator-v2cp .env.example .envAdd your own credentials and API keys.
docker compose up -dThis starts the services required by the backend, including PostgreSQL, RabbitMQ, and Redis.
python -m venv venv
source venv/bin/activate
pip install -r backend/requirements.txtRun database migrations:
cd backend
alembic upgrade headStart the FastAPI server:
uvicorn app.main:app --reloadcd backend
source ../venv/bin/activate
python -m celery -A app.workers.celery_app worker --loglevel=info --pool=solocd frontend
npm install
npm run devRegister / Login
↓
Upload Resume
↓
Resume Processing
↓
Add Job Description
↓
Create Interview
↓
AI Generates Question
↓
Submit Answer
↓
AI Feedback
↓
Next Question
Ready2Interview includes several basic security measures:
- JWT-based authentication
- User-scoped resume and interview access
- Protected API endpoints
- Resume ownership validation
- Environment-based secret management
- User-level filtering for vector retrieval
Potential future improvements include:
- Production cloud deployment
- Improved authentication and token handling
- Rate limiting
- Interview completion workflows
- Detailed analytics and performance history
- Additional interview modes
- Improved RAG retrieval and ranking
- Voice-based interviews
- Automated testing and CI/CD
Taegang Kim
Computer Science
The University of Texas at Austin
This project was designed and developed by Taegang Kim.
Copyright © 2026 Taegang Kim. All rights reserved.