Every CV means ten minutes of copying and pasting
A job goes live on a job board. CVs arrive by email, through the board's inbox, through LinkedIn and from candidates who send a Word document to a consultant directly. Each one needs a candidate record. The built-in parser in your recruitment CRM gets the name right and mangles the rest, so a consultant or resourcer retypes job titles, dates, skills and notice period by hand.
On a busy role, that is an afternoon gone before anyone has had a single conversation with a candidate.
Why CV data entry never goes away
- CVs come in every format: two-column designs, tables, PDFs exported from Canva, scanned documents.
- Older parsers rely on layout rules and fail on anything unusual, so consultants stop trusting them.
- CVs arrive through several routes, so some never reach the parser at all.
- Duplicate candidates are created because the same person applied last year with a different email.
- Fields your agency cares about (right to work, notice period, day rate, security clearance) are not extracted at all.
Consultants end up choosing between typing everything in and leaving records half-empty. Half-empty records mean the database becomes hard to search, which defeats the point of keeping it.
What it costs
Time spent typing is time not spent calling candidates or clients, and in recruitment the speed of that first call matters. Poor data means good candidates already in your database are missed when a new role opens, so you pay job boards again for people you already knew about. Duplicates cause two consultants to call the same candidate, which looks disorganised.
| CV element | Old parser | Extraction with a language model and checks |
|---|---|---|
| Name and contact | Usually fine | Fine, plus duplicate check |
| Work history | Often jumbled on complex layouts | Structured by employer, title and dates |
| Skills | Keyword list | Skills mapped to your own taxonomy |
| Right to work, notice, rate | Rarely captured | Captured when stated, flagged when missing |
| Scanned CVs | Fail | Read via OCR, then extracted |
How we build CV extraction
- We collect CVs from every route: shared inboxes, job board applications, your website and consultants' forwarded emails, into one intake queue.
- Each CV is converted to text, with OCR for scanned documents.
- A model such as OpenAI or Anthropic Claude extracts the fields you care about into a fixed structure, including work history, skills against your taxonomy, location, and notice or rate when stated.
- Validation checks dates, emails and phone numbers, and flags anything missing or doubtful.
- We match against existing candidates by email, phone and name-plus-history, and suggest a merge rather than creating a duplicate.
- The structured profile is written to your CRM or ATS, such as Bullhorn, Vincere, JobAdder, Mercury or your own system, through its API, with the original CV attached.
- Uncertain extractions go to a short review screen where a resourcer confirms or corrects before saving.
Candidate data is personal data. We set up processing so CVs are not used to train third-party models, choose providers and regions that fit your data protection position, and keep retention in line with your policy.
What your resourcers do instead
CVs become candidate records without anyone typing. The resourcer glances at the flagged ones, fixes a date, confirms a merge, and moves on to calling people. Searching the database works again because records are complete and consistent, so when a new role opens, the first shortlist often comes from candidates you already have.
We keep the model's job to extraction. It does not rank or reject candidates, because that is a judgement for your consultants and carries fairness risks you should not hand to software lightly.
Sound familiar?
- Consultants or resourcers retype CV details into the CRM.
- Your CRM's built-in parser is ignored because it gets things wrong.
- Your database has many duplicate candidates.
- Searching your own database rarely finds the right people.
- CVs sent directly to consultants never make it into the system.