Hiring the right talent is hard—especially when you're drowning in hundreds of resumes.
To address this challenge, I built Rakupa, an AI-powered CV screening system that automates and ranks candidate profiles using semantic search and LLMs.
In this article, I’ll walk you through the journey of building Rakupa—its architecture, workflow, features, and how it leverages MindsDB’s Knowledge Bases to deliver intelligent resume ranking.
💡 The Problem
Recruiters face three major challenges when screening resumes:
- ⏳ Time-consuming manual review process
- ❌ Inconsistent evaluation criteria
- 🤯 Information overload with no standard way to compare candidates
These issues often lead to missed talent and inefficient hiring.
✅ The Solution: Rakupa
Rakupa solves this by automating the screening and ranking of CVs. It uses:
- 🧠 Gemini LLM to extract structured data from resumes
- 🔍 MindsDB Knowledge Base to semantically match resumes to job descriptions
- 📊 A microservice architecture to manage workflows efficiently
🏗️ Architecture Overview
Rakupa is composed of the following services:
🔹 User Interaction Layer
- Company Website / HR Portal: For CV upload and JD creation.
🔹 Application Logic Layer
- Backend Gateway (FastAPI): Handles HTTP routes.
- CV Parser (FastAPI + Gemini LLM): Parses PDF files into structured JSON.
🔹 Data & AI Layer
- FTP Server: Temporary file storage.
- MySQL Database: Persistent storage of CV data and job descriptions.
- MindsDB + Gemini Embeddings: Semantic search and ranking logic.
🔁 Workflow Summary
📤 CV Submission Flow
- CV is submitted through the company website.
- Stored on an FTP server.
- Parsed into structured data by the Gemini LLM.
- Saved in MySQL.
- Automatically indexed into MindsDB Knowledge Base every 5 minutes.
📝 Job Description Flow
- HR posts a new JD via the portal.
- JD is saved and indexed in the system for relevance scoring.
🔍 Querying and Ranking
- Queries are sent to MindsDB using SQL.
- Gemini embeddings calculate similarity.
- Results are ranked and returned to HR dashboard.
⚙️ Tech Stack
Component | Tech Stack |
---|---|
Frontend | React (Vite + Bun) |
Backend Gateway | FastAPI (Python) |
CV Parser | FastAPI + Gemini LLM |
Semantic Matching | MindsDB Knowledge Base + Gemini Embeddings |
Database | MySQL |
File Storage | FTP Server (Dockerized) |
🛠️ Installation Steps (Quick Overview)
- Configure
.env
files for backend, parser, and frontend. - Run
docker-compose
to spin up MindsDB and FTP server. - Launch frontend and backend services.
- Configure MindsDB Knowledge Base:
- Embedding:
text-embedding-004
- Reranker:
gemini-2.0-flash
- Metadata:
first_name, last_name, email, phone, status, uploaded_at
- Content:
raw_text, experience_text, education_text, skills_text, projects_text, certifications_text
- Embedding:
- Interact via the website or HR dashboard.
✨ Key Features
- 📂 Automated CV Parsing (PDF → JSON)
- 🧠 Semantic CV Matching using LLMs
- 📊 AI-based Candidate Ranking
- 🔁 Scheduled Knowledge Base Updates
- 🗄️ Structured Storage for CVs and JDs
- 👨💼 HR Dashboard for Job & Candidate Management
🎥 Demo Video
Experience Rakupa in action:
- CV submission & parsing
- Job description creation
- Semantic matching & ranking
- MindsDB KB integration
🧠 Why MindsDB?
MindsDB is an AI-powered SQL layer that lets you query machine learning models like databases. Their Knowledge Bases let you embed and semantically search unstructured data—like resumes.
With Gemini LLM + KBs, Rakupa enables:
- ⚡ Fast, intelligent candidate search
- 🤖 Automated profile-to-job relevance scoring
- 🔍 Natural language or SQL-based queries
🎯 Real-World Use Cases
Rakupa can transform:
- 🏢 Enterprise recruitment teams
- 🧑💼 Recruitment agencies
- 🎓 Campus placement systems
- 💼 Internal job boards
🏆 Impact
Rakupa drastically reduces the manual effort needed to shortlist candidates, improving:
- ⏱️ Speed of hiring
- 📈 Quality of matches
- ✅ Data-backed decisions
🧪 Built For: MindsDB Quest 019
Rakupa was developed as part of Quest 019 by Quira and MindsDB, focused on building AI-native applications using Knowledge Bases.
🙌 Final Thoughts
Rakupa shows that integrating LLMs, structured storage, and semantic search can revolutionize old-school processes like resume screening.
Want to integrate Rakupa into your HR stack or contribute to the project? Let’s connect! 👇
💬 Drop a comment or reach out on GitHub!
Thanks for reading! If you found this helpful, leave a ❤️ or share it with your fellow builders.