Nexa Recruiter
AI-powered hiring: parse CVs, match against the job description, shortlist with the evidence attached.
- 7
- Candidates ranked on the example job
- 4
- Steps from upload to shortlist
- Minutes
- To a shortlist
What they came with
A single job posting brings in more CVs than anyone reads properly. They arrive in every format there is, get skimmed rather than read, and the reason for a yes or a no ends up in someone's head or a one-line note. Screening is the work that gets done last thing and in a hurry, and it is the part hardest to account for when a hiring manager asks later why a candidate was dropped. Nexa Recruiter does the reading: every CV into one profile shape, scored against the job description, with the lines that produced each score kept beside it.
What the engagement covered
- CV parsing into experience, skills, education and contact fields
- Ranked matches with matched and missing skills per candidate
- Reasons to talk, concerns to probe and a written recruiter's take
- Structured profile from any CV format
- Skills with years of experience and languages
- Raw extracted text retained for verification
Technical detail
Every CV into one shape
PDFs, Word files and scans are normalised to text, then a model fills a fixed profile schema — roles with start and end dates, skills, education. Output is validated against that schema and sent back to the model on failure rather than written half-formed, and dates are stored as ranges so tenure and gaps are computable instead of read off prose.
Scored per requirement, not overall
The job description is broken into discrete requirements and each is scored on its own against the profile, with the supporting span from the CV stored next to the score. The rank is a weighted sum of those scores, so changing what the role actually cares about re-ranks the pool without re-running the model.
Vector shortlist before the model
Profiles are embedded into pgvector and retrieved by similarity to the requirements, so the expensive per-requirement scoring only reads plausible candidates. Cost tracks the shortlist rather than the applicant volume, and the recall threshold is tunable per role when a niche skill needs a wider net.
Evidence stored with the score
Each score keeps its quoted evidence, the model and the prompt version that produced it, so a shortlist can be reopened months later and explained line by line. Re-scoring with a newer model writes a new run against the same candidates instead of overwriting the old one, which keeps the two comparable.
The stack
Interface
Parsing and models
Services and data
Storage and hosting
- Sector
- Hiring
- Audience
- Recruiters and hiring managers
- Shape
- Built, shipped and run by us
- Stack
- FastAPI, pgvector, OpenAI
Something like this to build?
Tell us what runs today and where it hurts. An engineer reads it and replies.

