A retrieval-augmented generation (RAG) system that lets recruiters query your resume conversationally instead of scanning bullet points.
Live Demo: https://saniresume-rag.streamlit.app/
- Conversational Q&A - Ask questions like "What experience do you have with distributed systems?"
- Semantic Search - BGE-base-en-v1.5 embeddings for accurate retrieval
- Fast Vector Index - FAISS for efficient similarity search
- LLM Powered - Llama 3.3 70B via Groq API
- Source Attribution - Shows exactly which resume sections informed each answer
- Guardrails - Ensures answers stay grounded in your actual experience
| Component | Technology |
|---|---|
| Frontend | Streamlit |
| Embeddings | BGE-base-en-v1.5 (Sentence Transformers) |
| Vector Store | FAISS |
| LLM | Llama 3.3 70B via Groq |
| Language | Python 3.12+ |
pip install -r requirements.txtexport GROQ_API_KEY=your_groq_api_keyGet a free Groq API key at https://console.groq.com/keys
Edit resume.md with your actual resume content, then pre-compute the embeddings:
python precompute_index.pystreamlit run streamlit_app.pyUser Query
↓
┌─────────────────────────────────────────┐
│ Embed Query (BGE-base) │
└─────────────────────────────────────────┘
↓
┌─────────────────────────────────────────┐
│ FAISS Vector Search (Top-K) │
└─────────────────────────────────────────┘
↓
┌─────────────────────────────────────────┐
│ Context Injection + Guardrails │
└─────────────────────────────────────────┘
↓
┌─────────────────────────────────────────┐
│ Llama 3 Inference (Groq) │
└─────────────────────────────────────────┘
↓
Answer
resume-rag/
├── streamlit_app.py # Main Streamlit application
├── rag_engine.py # RAG pipeline (embeddings, FAISS, Groq)
├── precompute_index.py # Pre-compute embeddings for faster startup
├── requirements.txt # Python dependencies
├── resume.md # Your resume content
├── README.md # This file
└── .gitignore # Git ignore rules
- "What experience do you have with distributed systems?"
- "Have you built production RAG pipelines?"
- "How have you improved inference throughput?"
- "What's your experience with vector databases?"
- "Tell me about your ML projects"
Edit rag_engine.py:
self.embed_model = SentenceTransformer("BAAI/bge-large-en-v1.5") # Larger modelEdit rag_engine.py:
self.llm_model = "llama-3.1-8b-instant" # Faster, smaller modelEdit precompute_index.py:
chunks = chunk_text(full_text, chunk_size=300, overlap=50)