Loading repository data…
Loading repository data…
Kayanja2023 / repository
An AI-powered interview preparation tool that transforms your CV into an intelligent conversational agent. Built with FAISS for vector storage, OpenAI embeddings, and GPT-4. Developed for Silvertree Brands using Streamlit and LangChain
A transparent discovery signal based on current public GitHub metadata.
This score does not audit code, security, maintainers, documentation quality, or suitability. Verify the repository and its current documentation before adoption.
An AI-powered interview preparation tool that transforms your CV into an intelligent conversational agent. Built with FAISS for vector storage, OpenAI embeddings, and GPT-4. Developed for Silvertree Brands using Streamlit and LangChain.
This project is an AI-powered interview preparation tool that reads your CV and answers questions about it - like having a conversation with your resume. Instead of fumbling through your CV during interview prep, upload your resume and ask natural questions like "What's my most relevant project experience?" or "How many years of Python experience do I have?" to get instant, accurate answers.
GitHub Repository: Kayanja2023/Rag
Technical Documentation: Confluence Documentation
Client: Silvertree Brands
Project Type: Interview Preparation Tool
Development Time: <4 hours (Proof of Concept)
This RAG system enables candidates to quickly access and query their CV through natural language during interview preparation. The same pattern applies to various document-based Q&A scenarios:
The key insight: Instead of searching documents manually or relying on AI to "remember" everything (which leads to hallucinations), this combines precise document retrieval with natural language understanding.
| Component |
|---|
| Technology |
|---|
| Reasoning |
|---|
| Use Case | CV Interview Assistant | Interview preparation, resume Q&A |
| Vector DB | FAISS | Fast similarity search, local deployment, production-ready |
| Embeddings | OpenAI text-embedding-3-small | High-quality semantic understanding, 1536 dimensions |
| LLM | GPT-4 | Advanced reasoning, reliable API, accurate responses |
| Framework | LangChain | Modular RAG orchestration, memory management |
| Frontend | Streamlit | Rapid prototyping (<4 hours), interactive UI, easy deployment |
flowchart TB
subgraph Client["User Interface"]
UI[Streamlit Application]
end
subgraph Processing["CV Processing Pipeline"]
Upload[CV Upload]
Validate[Validation & Format Detection]
Parse[Text Extraction]
Chunk[Chunking - 1000 chars with 200 overlap]
Embed[OpenAI Embeddings]
end
subgraph Storage["Local Storage"]
CV[(CV Document Store)]
Index[FAISS Vector Index\n1536 dimensions\nCosine similarity]
Memory[Conversation History]
end
subgraph RAG["Interview Q&A Pipeline"]
Query[Interview Question]
QueryEmbed[Query Embedding]
Search[Similarity Search]
Context[CV Context Retrieval]
Prompt[Prompt with CV Context]
LLM[GPT-4 Response]
end
UI --> Upload
Upload --> Validate
Validate --> Parse
Parse --> Chunk
Chunk --> Embed
Embed --> Index
Parse --> CV
UI --> Query
Query --> QueryEmbed
QueryEmbed --> Search
Search --> Index
Index --> Context
Context --> Prompt
Memory --> Prompt
Prompt --> LLM
LLM --> UI
LLM --> Memory
style Index fill:#8B7355,color:#fff
style LLM fill:#F5E6D3,color:#333
Document Processing (One-time):
Query Pipeline (Per Question):
python -m venv .venv)pip install -r requirements.txt).envstreamlit run app.pyEdit config.py for:
text-embedding-3-smallKey settings:
CHUNK_SIZE = 1000 # Characters per chunk
CHUNK_OVERLAP = 200 # Overlap between chunks
MODEL = "gpt-4" # OpenAI model
TEMPERATURE = 0.7 # Response creativity
SEARCH_K = 3 # Number of chunks to retrieve
MAX_FILE_SIZE = 50 * 1024 * 1024 # 50MB limit
ALLOWED_EXTENSIONS = ["txt", "pdf", "docx", "md"]
The system supports uploading your CV in various formats:
| Format | Loader | Purpose |
|---|---|---|
| PyPDFLoader | Standard CV format | |
| DOCX | Docx2txtLoader | Microsoft Word resumes |
| TXT | TextLoader | Plain text CVs |
| MD | TextLoader | Markdown formatted resumes |
Technical Skills:
Work Experience:
Projects:
Education:
Achievements:
streamlit run app.py
Upload Your CV
Start Interview Prep
You: What are my technical skills?
Assistant: Based on your CV, your technical skills include Python, JavaScript,
React, Node.js, SQL, MongoDB, Docker, and AWS. You also have experience with
Git and Agile methodologies.
You: How many years of Python experience do I have?
Assistant: According to your CV, you have 5 years of Python experience,
starting from your role as Junior Developer at TechCorp in 2020 through
your current position.
You: What's my most impressive project?
Assistant: Your most impressive project appears to be the E-commerce Platform
you built at Current Company, which handled 10,000+ daily transactions and
reduced page load times by 40% using React and Node.js microservices.
Rag/
│
├── app.py # Main Streamlit application
├── rag_engine.py # RAG pipeline with FAISS
├── config.py # Configuration management
├── utils.py # File processing utilities
├── requirements.txt # Python dependencies
├── .env # Environment variables (not in repo)
├── .gitignore # Git ignore rules
└── README.md # This file
│
├── data/
│ ├── documents/ # CV storage (created on first upload)
│ └── faiss_store/ # FAISS vector index (auto-generated)
│ ├── index.faiss # Vector index file
│ └── index.pkl # Metadata pickle
│
└── assets/ # Static assets
| Component | Technology | Details |
|---|---|---|
| Frontend | Streamlit | Interactive web UI |
| Framework | LangChain | RAG orchestration |
| Vector DB | FAISS | Local, cosine similarity, 1536 dimensions |
| Embeddings | OpenAI text-embedding-3-small | 1536-dim vectors, semantic understanding |
| LLM | GPT-4 | OpenAI, advanced reasoning |
| Language | Python 3.8+ | Core programming language |
Developed for: Silvertree Brands - Interview Preparation Tool Challenge
Development Time: <4 hours (Rapid Prototype)
Technical Documentation: Confluence Wiki
Technology Partners:
Key Learning: Combining retrieval precision with LLM reasoning eliminates hallucinations while maintaining natural conversation flow - perfect for interview preparation where accuracy matters.
| Package | Version | Purpose |
|---|---|---|
streamlit | 1.22+ | Web UI framework |
langchain | 1.0+ | RAG orchestration |
langchain-openai | 1.0+ | OpenAI integrations |
faiss-cpu | 1.7+ | Vector similarity search |
| `pdfp |