-
-
Usage Flow
-
Homepage
-
Uploaded Resume
-
Human-centric resume search
-
Resume search results (screenshot taken when hovering over "Send Email" button)
-
Analytics on platform activities
-
Login for Admin panel
-
Overview of data on admin panel homepage
-
Mass delete outdated resumes
-
Editing resume
-
Mass upload resumes to database
-
Successful mass adding resumes into database
-
Agentic AI Assistant (FastAPI interface only): Shortlist candidates via experiences
-
Agentic AI Assistant: After applying filter on candidate pool
-
Agentic AI Assistant: Generating & Sending shortlisted candidates email regarding job offer
-
Agentic AI Assistant: Shortlist candidates using skillsets (1)
-
Agentic AI Assistant: Shortlist candidates using skillsets (2)
-
Sample of AI-generated Personalized Email
-
Sample of AI-generated Bulk Email
Inspiration
When searching for jobs, I found it cumbersome to scroll through endless listings and read through lengthy job descriptions/requirements to evaluate whether each role aligned with my interests and skills—only to be ghosted after filling out the tedious applications. Recruiters face the reverse burden: sifting through hundreds/thousands of applications per job posting to shortlist potential fits. This entire process felt inefficient and outdated—especially in an era where AI can understand natural language and is smart enough to do the job of matching candidates with the right job.
That sparked the idea: what if we could eliminate keyword filters, rigid forms, and manual screening entirely? Resume Matcher was born to radically simplify and humanize hiring through AI-driven semantic matching.
Project Background
In today’s job market, where a single posting can attract thousands of applicants, job seekers are getting desperate for a role in their field of interest. This fierce competition often drives candidates to “skill inflate” or tailor their résumés and personas to appear as someone they’re not in hopes of standing out specifically for the role they are applying for. As a result, recruiters struggle to identify genuine fits and end up spending countless hours filtering through interviews for the best fit.
It’s time to reinvent recruitment. Instead of forcing job seekers to drown in endless applications and mold themselves into roles by exaggerating skills or faking personas when applying for each job, why not flip the process? Let candidates present their authentic selves once, and let companies discover the perfect match. With Resume Matcher, recruiters simply describe their ideal candidate in natural language, and the system delivers the closest matches. The result: hiring isn’t about who can write the best resume to fit the role but about finding the person who genuinely fits and thrives in the role as their true self.
Unlike conventional tools, which are rigid due to fixed keyword-based matching, our platform interprets recruiter intent semantically into vector embeddings to identify candidates with the strongest contextual alignment without candidates purportedly tailoring their resume to fit the role.
🚀 What It Does
Resume Matcher is a next-gen AI-powered platform that:
- Enables job seekers to upload their resumes along with their name and email. Then, wait for a job offer/interview. No unnecessary details and hassle of job searching, just a resume for matching and an email and name for contacting.
- Allows recruiters to describe their ideal candidate in natural language—no need to construct point form to pitch the job or conform to the platform's search constraints. Just explain what is needed.
- Uses vector embeddings and LLM reasoning to semantically match resumes to recruiters' search queries with statistical precision and provide recommendations with human-readable justifications.
- Lets recruiters instantly view and contact top-fit candidates.
- AI Assistant to facilitate further shortlisting of recommended candidate pool till desired amount of candidates.
- Gives candidates full control of their data on the platform: once they land a job, they can simply delete their resume from the system—resume is wiped from database; no hassle for creating/deleting a user account is required (however, the design intention includes incorporating email verification to ensure the resume is uploaded by the rightful email owner).
🤖 AI Agentic Assistant
The AI Agentic Assistant transforms the traditional resume screening experience into an interactive and intuitive workflow that feels like having a personal recruitment co-pilot to facilitate the whole process of shortlisting suitable candidates for the job.
Key Features:
- Smart Candidate Analysis: AI generates detailed strengths/weaknesses analysis for each candidate relative to job requirements and produces an overall score out of 10 on each candidate's fit for the role.
- Interactive Shortlisting Experience: AI-generated criteria to further filter the pool of candidates, such as relevant experiences (includes projects and exposures, not just work experience!) and clustered skill sets (e.g., web development consists of a group of skills like HTML, CSS, JavaScript, etc.).
- Side-by-Side Comparisons: AI-powered tiebreaker analysis to facilitate decision-making and interactive selection to eliminate candidates during the shortlisting process.
- Automated Email Outreach: AI-generated personalized email templates for mailing shortlisted candidates, which can be sent out with a click.
- Real-time Progress Tracking: Live updates throughout the 6-stage agentic shortlisting process, with the option to reset the candidate pool and do any step at any point of the flow; no fixed order, just do what works best with helping you filter to the optimal candidates.
User Experience Flow:
- Search Results Display → AI Assistant Launch
- Context Gathering → Interactive Workflow
- Guided Narrowing → Comparison & Selection
- Email Automation → Seamless Integration
This feature reduces manual review time by 60% and improves hiring decisions through explainable AI and intuitive workflows.
🏗️ How We Built It
We engineered Resume Matcher using a cost-efficient, high-performance hybrid AI stack:
- Vector embeddings: Generated locally with
SentenceTransformers(384D). - Resume parsing: Handled by
OpenAI GPT-3.5-turbofor structured data extraction. - Match explanations: Generated using
GPT-4o-minifor human-readable reasoning. - Semantic search: Powered by TiDB Serverless with native vector support (
VECTOR(384)). - APIs: Built with FastAPI for handling resume uploads and searches.
- Admin tools: A custom Streamlit dashboard with platform analytics and bulk operation capabilities to manage the whole database.
- Document parsing: Supports PDF, DOCX, and Markdown via
PyPDF2andpython-docx. - Agentic AI Assistant: A human-guided system with 6 specialized agents for interactive candidate shortlisting, analysis, and automated outreach.*
⚠️ Challenges We Ran Into
- Vector DB optimization: Achieving fast cosine similarity ranking at scale required index tuning and smart filtering.
- Resume format variability: Resumes came in wildly different formats—dense text, tables, unusual layouts, or even scanned PDFs. To ensure consistent parsing, a multi-layered extraction pipeline with dynamic regular expression fallback was in place to extract text from any resume format and normalize it to conform my system's architecture.
- Cost control: Balanced local inference with cloud GPT usage to minimize API expenses.
- GDPR-compliant deletion: Built full-stack account deletion workflows with referential integrity.
- Semantic accuracy: Developed trait detection for softer attributes (e.g., leadership, creativity, volunteering) to improve relevance of matches.
- Compatibility of Backend with FastAPI and Streamlit: Standardized the resume data model to ensure compatibility across both FastAPI and Streamlit frontend interfaces. This ensured resumes uploaded via FastAPI are seamlessly usable by all features in Streamlit and vice versa, enabling unified operations across both frontends.
- AI Assistant's UI robustness: Encountered interface bugs stemming from complex state management across the 6 agent pipelines. There were also backend issues such as edge cases and AI responses with an invalid format that doesn't conform to the parser or has missing data. Fallback mechanisms were implemented for failed AI requests, and strict frontend logic was implemented in the chat flow system and rigorously tested to prevent the agent from crashing.
- Dynamic filters for skills & experiences: One of the toughest feature to implement was auto-generating recruiter-friendly filters from raw candidate data. While the AI could extract skills and experiences, grouping, ranking, and converting them into clean, human-readable categories, ensuring that these filter labels mapped correctly to each candidate was non-trivial.
To solve this, I:
- Applied fuzzy and substring search to boost recall and capture variations of the same skill.
- Added an AI post-processing pass to refine and “beautify” filter labels to be grammatically fluid and recruiter-friendly.
- Tuned the system to balance broad coverage with precision, ensuring filters were intuitive and useful without surfacing irrelevant matches.
🏆 Accomplishments We're Proud Of
- Achieved 70.8% improvement in match accuracy using a novel hybrid vectorization and trait boosting system that intelligently interprets and factors in implicit soft skill requirements—such as leadership, communication, and altruism (volunteering).
- Delivered explainable AI matches with natural language reasoning, helping recruiters understand a candidate's fit before reviewing resumes in detail.
- Designed a zero-friction UX: upload → match → contact → delete—no login or account setup required (however, the intended use—not implemented in demo—is to add an email verification before uploading/deleting a resume on the FastAPI interface to prevent email impersonation).
- Built a dual-interface system—FastAPI for public-facing resume upload/search and Streamlit for internal dashboarding and admin/moderation tasks—allowing flexible deployment for both user-facing and internal operational needs.
- Developed a platform that is cost-effective and privacy-first for recruiters, as they do not need to spend money to publicly post their job details on job portals; they only pay for one-time searches to scout for talents, and only potential hires get to see the job details.
📚 What We Learned
- How to design intuitive AI-first user flows with minimal barriers.
- How to utilize TiDB’s vector capabilities and AI to match searches with resume features.
- Strategies to optimize LLM usage for affordability and performance.
- How to build scalable multi-agent AI workflows that combine search, parsing, and reasoning.
🔮 What’s Next for Resume Matcher
- Email Verification: To ensure only the rightful user can upload, edit, or delete resumes (public version).
- Fraud Moderation: Add moderation features to detect and block fake resumes and bots (public version).
- Salary Prediction: Use ML to estimate fair compensation based on candidate profiles—helping recruiters set competitive offers.
- Monetization Plan: Introduce recruiter-side pricing per search to sustainably support database and GPT API costs; compete with traditional job posting platforms that charge recruiters for posting a job listing.
- Candidate Role Preferences: Give job seekers the ability to specify sectors or roles of interest so they only receive offers relevant to their goals, reducing noise and improving engagement.
Try it out info
- GitHub repo is private, only judging email has access.
- TiDB Email Account: javenlai5@gmail.com
Built With
- fastapi
- openai
- streamlit
- tidb
Log in or sign up for Devpost to join the conversation.