Inspiration
Recruitment teams often spend a large amount of time reviewing job descriptions, screening candidate profiles, checking mandatory requirements, and manually comparing skills, seniority, industry experience, and location.
I wanted to build a practical AI-assisted system that reduces repetitive screening work while keeping the final matching process structured, explainable, and easy to review.
The project was inspired by my real-world experience working with job databases, candidate profiles, data analysis, automation, and business decision-making.
What it does
Match2 is an AI-powered recruitment matching engine that connects job opportunities with suitable candidates.
The system:
- Reads raw job records from a jobs database and external API sources
- Removes duplicates and prepares the job data for analysis
- Extracts skills, requirements, seniority, industry, and professional disciplines from every job
- Saves approved disciplines in a reusable discipline repository
- Reads candidate profiles and CV data
- Maps each candidate to the existing disciplines in the repository
- Rejects unsuitable matches when mandatory requirements are missing
- Compares jobs and candidates by discipline quality, skills, seniority, role level, and industry
- Calculates the geographic distance between the job location and the candidate location
- Produces a ranked output of the strongest matches
- Explains why each candidate was selected or rejected
The final output helps a recruiter focus on the most relevant candidates instead of reviewing every profile manually.
How I built it
The main matching engine was developed in Python.
The workflow combines structured business rules with AI-assisted classification and analysis.
The job-processing stage reads raw job information, standardizes the records, identifies relevant skills and disciplines, and stores reusable discipline definitions.
The candidate-processing stage reads candidate data and maps each profile only to disciplines already available in the discipline repository. This creates a consistent vocabulary for comparing jobs and candidates.
The matching engine then evaluates several factors, including:
- Discipline compatibility
- Mandatory skills
- Professional experience
- Seniority
- Role level
- Industry relevance
- Geographic distance
- Missing requirements
- Potential overqualification or underqualification
Strict rules are used to prevent misleading matches. For example, a senior finance executive should not automatically be recommended for a junior bookkeeping role, even when some accounting keywords overlap.
Codex supported the development process by helping review, improve, debug, and organize parts of the Python workflow. OpenAI models were also used to support classification, structured reasoning, discipline mapping, and match explanations.
Challenges I faced
One of the main challenges was that job descriptions and CVs use inconsistent terminology.
The same role may appear under different titles, languages, abbreviations, or industry-specific expressions. Simple keyword matching therefore produced weak or incorrect results.
Another challenge was avoiding partial or misleading matches. For example, similar words do not always represent the same profession, and a candidate may have relevant keywords while still missing a mandatory qualification.
I addressed these issues by creating a controlled discipline repository, using full-term mapping rules, adding mandatory-skill checks, separating junior and senior roles, and introducing industry and role-gap filters.
Location data was another challenge because place names may be incomplete or written in different formats. The system therefore standardizes locations before calculating distance.
Accomplishments that I am proud of
I am especially proud that the system goes beyond basic keyword matching.
It evaluates whether the candidate is realistically suitable for the position and provides reasons for the result.
The project also includes mechanisms for:
- Duplicate prevention
- Multilingual discipline mapping
- Mandatory-requirement validation
- Seniority-gap detection
- Industry-mismatch detection
- Geographic-distance calculation
- Ranked and explainable results
- Identification of new disciplines that require review
The result is a practical recruitment-support tool that can save time while improving consistency.
What I learned
I learned that successful AI matching depends not only on the model, but also on the quality of the business rules, taxonomy, data preparation, and validation logic around it.
AI is very useful for understanding unstructured text and identifying relationships, but controlled repositories and deterministic checks are still necessary for reliable recruitment recommendations.
I also learned the importance of making AI decisions explainable. Recruiters need to understand why a candidate was recommended, why a requirement was considered missing, and which factors affected the final score.
What's next for Match2
The next development stages include:
- A web-based user interface
- Interactive recruiter dashboards
- Direct CV and job-description uploads
- Improved multilingual support
- Recruiter feedback that improves future scoring
- Automatic recommendation of the best CV version for each opportunity
- Candidate outreach-message generation
- Better location and travel-time analysis
- Integration with applicant-tracking and recruitment systems
The long-term goal is to turn Match2 into an explainable AI recruitment assistant that supports better decisions without replacing human judgment.# Inspiration
What it does
How we built it
Challenges we ran into
Accomplishments that we're proud of
What we learned
What's next for Match2 – AI Recruitment Agent
Built With
- api
- codex
- excel
Log in or sign up for Devpost to join the conversation.