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

Email

WhatsApp

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

PDF

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.

Read More

Explore all Work case studies →