EasyHire
AI-powered CV extraction & candidate matching
I researched, developed and tested EasyHire, a software engineering capstone prototype that helps small-business owners screen job applications. The application reads CVs, compares qualifications to job requirements, ranks candidates and highlights the evidence behind the result. Developed at Zimbabwe Open University in 2025.
- Role
- Software Engineer / Developer
- Year
- 2025 · Academic capstone
- Scope
- Python · Streamlit FAISS · Gemini · SQLite
EASYHIRE
How a CV becomes a shortlist
CVs + job description
Extract CV text
Compare qualifications
Ranked candidates
Supporting CV passages
A business owner reviews the evidence and makes the hiring decision.
01 / Overview
Supporting a better first pass through applications.
EasyHire is a working academic prototype developed for my BSc Software Engineering Honours degree at Zimbabwe Open University. Inspired partly by recruitment challenges described by Wigatap and other Zimbabwean small businesses, the system brings CV extraction, job matching, ranked shortlists and basic certificate integrity checks into one workflow. I approached the project as a software engineering problem: researching the requirements, choosing an architecture, implementing the system and evaluating whether it could assist owners who conduct hiring themselves.
Overview
One workspace for first-pass screening
CV extraction
Job matching
Ranked shortlist
Candidate review
Certificate checks
Software engineering capstone · Zimbabwe Open University · 2025
02 / The problem
Recruitment without a dedicated HR team.
Smaller businesses often collect CVs through email, WhatsApp and paper, with applications arriving in different formats and structures. Owners or administrators may have to compare every document manually against a job description, increasing review time and making it harder to see why one application meets the requirements better than another. The problem was not to replace human hiring decisions, but to make the initial screening work easier to organise and review.
The problem
Applications arrive through different channels
Paper
Owner gathers CVs
Checks each CV against the role
Small businesses often handle this review without a dedicated HR team.
03 / Research & scope
Defining the tasks a lightweight tool should support.
The research focused on the first-pass shortlisting stage rather than interviews, recruitment management or final hiring decisions. The dataset and study included publicly available, AI-generated and manually created CV samples, ten representative job descriptions and certificate examples. I used a Design Science Research approach with iterative software development, informed by literature on document parsing, skill extraction, semantic matching and certificate integrity. The prototype needed to work with everyday document types and modest technical resources.
Research & scope
What went into the prototype study
Public CV samples
AI-generated CVs
Manually created CVs
10 job descriptions
Certificate examples
The study focused on screening and shortlisting.
04 / System architecture
Retrieval and analysis in one pipeline.
I built the application in Python with a Streamlit user interface and SQLite storage. Document-processing libraries such as PyMuPDF and python-docx extract CV content. Embeddings and a FAISS vector store retrieve relevant sections, while Gemini performs contextual analysis and generates structured candidate feedback. The matching pipeline combines keyword evidence, semantic similarity and model analysis to produce match percentages. The architecture supports ranked results while keeping individual candidate details available for review.
System architecture
How the Python application processes a CV
PyMuPDF / python-docx Extract text
Embeddings + FAISS Retrieve passages
Gemini Analyse evidence
Streamlit · User interface
SQLite · Storage
Matching combines keyword evidence, semantic similarity and model analysis.
05 / Document processing
From mixed CV files to comparable information.
The application accepts PDF, Word and plain-text CVs. After uploading files, the user supplies a job description for the role being considered. The system parses document content, extracts relevant information and processes the CVs against the role requirements. A visible progress state helps the user understand when analysis is underway. The output is structured so applications can be compared in one place instead of being reviewed as unrelated documents.
Document processing
From uploaded files to comparable records
Word
Plain text
Extract CV content
Compare with the job description
The user can track progress while the batch is analysed.
06 / Ranking & matching
A shortlist with reasons to look closer.
The dashboard summarises processed applications and presents ranked match percentages. Users can filter results, compare candidates and select one for closer analysis. A match percentage offers a starting point for screening, not a definitive measure of suitability. Behind the ranking, the system uses extracted skills and related CV passages to identify matches and missing requirements. The design question is how to make those automated results understandable enough for a person to assess them critically.
Candidate matching
What sits behind a match percentage
Detected skills
Relevant CV passages
Missing requirements
Rank by match percentage
Filter and compare candidates
The score guides the first review. The reviewer decides which applications to examine.
07 / Candidate review
Moving from a score to a reviewable profile.
The individual analysis view presents a candidate profile summary, strengths, weaknesses and important skills that appear to be missing. These details give the employer a more specific basis for reopening an original CV, especially when a required skill has not been detected. Ranked results can also be exported to CSV with detected skills for review outside the dashboard. The system supports the screening process while leaving interpretation and hiring responsibility with the human reviewer.
Individual analysis
From a ranked result to an individual review
Profile summary
Strengths and weaknesses
Skills to check
Reopen the original CV
Export results and skills to CSV
A reviewer can check whether an apparently missing skill is present in the CV.
08 / Document integrity
Flagging possible alterations, not certifying authenticity.
I implemented basic certificate integrity checks for PDF and image files, using metadata and lightweight document-forensics signals. The test interface reports document properties and flags suspicious cues, including inconsistent modification dates. In a small three-certificate test, the module processed all three samples and flagged the intentionally manipulated example. These are screening indicators only: a clean result does not prove that a certificate is authentic, and a suspicious result requires human follow-up.
Certificate checks
How a possible alteration is flagged
PDF or image
Inspect metadata
Check modification dates
3 samples processed
Manipulated sample flagged
A flag calls for follow-up. These checks cannot establish authenticity.
09 / Testing & results
Ten CVs analysed in 40 to 78 seconds.
I carried out functional, compatibility and unit tests, followed by prototype evaluation with five small-business owners. In the reported performance test, a batch of ten real CVs was processed in 40 seconds on a faster network and 78 seconds on a slower connection. All five testers described the workflow as faster than their manual approach and found the ranking and skill summaries useful. The sample is small and the results describe a controlled prototype evaluation, not deployment outcomes or proof of fairer hiring decisions.
Testing & results
Time to process the same batch of 10 CVs
40 seconds Faster connection
78 seconds Slower connection
5 small-business owners tested the prototype
All five described the workflow as faster than their manual review.
10 / Limitations & next steps
A useful prototype with work still to do.
The system was an academic prototype rather than a production recruitment product. Its results depend on CV quality, the clarity of the job description, the selected models and internet access for Gemini. API quota limits also interrupted some development and testing. Certificate checks were basic, not institutional verification or advanced forensics. If I revisit EasyHire, I would prioritise clearer evidence behind matches, larger and more diverse evaluations, robust privacy handling, stronger document checks, and a maintainable production architecture.
