"Don't just read my CV. Interview my AI agent."
This is not a static portfolio website. It is an autonomous RAG (Retrieval-Augmented Generation) Agent that represents me professionally. It ingests my entire digital footprint (GitHub code, LinkedIn profile, Technical Articles), indexes it into a Vector Database, and uses it to answer recruiter questions and generate tailored documents in real-time.
🔗 Live Demo: Personified RAG
Unlike generic chatbots, this agent cannot hallucinate.
- Strict Grounding: Every claim is cross-referenced with my actual data.
- Citations: Responses include clickable citations (e.g.,
[Source: main.py],[Source: Profile.pdf]) proving I actually did the work.
The Recruiter Value Driver:
- Input: Paste any Job Description (JD).
- Process: The AI maps my skills to the JD requirements.
- Output: Instantly downloads a Tailored CV (.docx) and Persuasive Cover Letter (.docx) optimized for that specific role.
The agent acts as a professional filter:
- Relevance Check: If a user pastes a JD for a non-tech role (e.g., "Nurse" or "Chef"), the AI refuses to generate documents, explaining that the role does not align with my expertise.
- Privacy: It is programmed to withhold sensitive personal data (phone number, home address) unless specifically authorized.
- Dynamic Theming: Seamless toggle between a crisp Corporate Light Mode (White/Green) and an immersive Developer Dark Mode (Gray/Emerald).
- Responsive: Fully mobile-optimized sidebar and chat interface.
The system follows a standard RAG pipeline optimized for accuracy:
graph LR
A[Data Sources] -->|Ingest| B(LangChain Loader)
B -->|Chunking| C(Text Splitter)
C -->|Embed| D[OpenAI Embeddings]
D -->|Store| E[(ChromaDB Vector Store)]
User[User Query/JD] -->|Search| E
E -->|Retrieve Context| F{GPT-4o Logic}
F -->|Answer| Chat[Chat Response]
F -->|Generate| Doc[Tailored .docx]
-
Ingestion: Scrapes my GitHub repos, parses my LinkedIn PDF, and reads local Markdown notes.
-
Embedding: Uses text-embedding-3-small to convert text into vector space.
-
Retrieval: ChromaDB performs semantic search to find relevant experience.
-
Generation: GPT-4o synthesizes the answer or drafts the document using python-docx.
Backend (Python)
-
FastAPI: High-performance async API framework.
-
LangChain: Framework for RAG logic and chain orchestration.
-
ChromaDB: Local vector database for context storage.
-
OpenAI API: LLM (GPT-4o) and Embeddings.
-
Python-docx: Programmatic document creation.
Frontend (React)
-
Vite + React: Fast, modern frontend build tool.
-
Tailwind CSS: Utility-first styling for the custom "Green/Emerald" theme.
-
Lucide React: Beautiful, consistent iconography.
-
Fetch API: For streaming responses and file downloads.
Prerequisites
-
Python 3.10+
-
Node.js 18+
-
OpenAI API Key
- Clone & Setup Backend
git clone [https://github.com/Olajcodes/personified-rag.git](https://github.com/Olajcodes/personified-rag.git)
cd personified-rag/backend- Create Virtual Env
python -m venv venv
source venv/bin/activate # or venv\Scripts\activate on Windows- Install Dependencies
pip install -r requirements.txt- Set API Key
- Create a .env file and add: OPENAI_API_KEY=sk-proj-...
- Ingest Data Before running the server, you must build the "Brain" (Vector DB).
python ingest.pyYou should see: "Success! Database created."
Run Servers Backend:
uvicorn main:app --reloadRunning on http://localhost:8000
Frontend:
cd ../frontend
npm install
npm run devRunning on http://localhost:5173
The Screenshot of the Landing Page.
The Screenshot of the Chat Interface.
This project is proprietary and confidential. Copyright © 2026 OlajCodes.

