Skip to main content
All posts

Agency Operations

Candidate Enrichment: How Agencies Keep Their Database Placeable

Candidate enrichment turns half-filled, aging records into complete, searchable profiles. Here is what it adds, how the sources fit together, and how to keep the whole thing GDPR compliant instead of building a liability.

Written by: Saply Team

Candidate Enrichment: How Agencies Keep Their Database Placeable

Candidate enrichment is the process of filling in and refreshing the gaps in a candidate record so it becomes complete, current, and searchable. It takes a profile that started as a parsed CV or a manual entry and adds the fields that make it useful: verified contact details, normalized skills and titles, current employer, seniority, location, and availability, then keeps those fields up to date as the candidate’s career moves on.

The reason it matters to a staffing agency is blunt. A database is only worth what you can find in it. A record with a name and a five year old phone number is not a candidate, it is a dead end you paid to store.

What enrichment actually adds to a record

A raw candidate record, straight from a CV upload or a form, is thinner than it looks. Enrichment works in layers, and each layer answers a different recruiter question.

Base record Name, one CV, whatever the form captured. Often a duplicate of a record you already hold. Contact layer Verified email and phone, preferred channel, do-not-contact status. Structure layer Normalized skills, job titles, seniority, education, and location, comparable across the database. Context layer Current employer, tenure, certifications, and availability signals. Freshness layer: every field carries a last-verified date, so stale data flags itself.

The contact layer decides whether you can reach the person at all. The structure layer decides whether they surface in a search. The context layer decides whether they are the right person right now. The freshness layer is the one most agencies skip, and it is the one that stops the whole database from quietly rotting.

Why agency databases decay in the first place

Candidate data does not stay accurate on its own. People change jobs, move city, get promoted, and switch phone numbers, and none of that reaches your CRM unless something goes and gets it. A record entered cleanly in 2023 describes a person who no longer exists in 2026.

This is not only an efficiency problem, it is a compliance one. The GDPR sets accuracy as one of its core principles: personal data must be accurate and, where necessary, kept up to date, and controllers must take reasonable steps to erase or rectify inaccurate data without delay (European Commission, principles of the GDPR). A database full of five year old contact details is not just useless, it sits at odds with a rule your clients’ data protection officers will ask about.

Enrichment and the GDPR pull in the same direction on accuracy, and in opposite directions on scope. Keeping a record current is encouraged. Collecting new data fields the candidate never expected you to hold is where the purpose limitation principle bites: personal data may be processed only for the specific, explicit purpose it was collected for. Enrich to keep a profile true, not to build a dossier.

How candidate enrichment works

Enrichment is a pipeline, not a single button. The strongest version runs the same profile through several passes and reconciles what it finds rather than blindly overwriting.

Parse CV to fields Match Find duplicates Pull Permitted sources Reconcile Resolve conflicts Write back Verified profile

It starts with parsing, which turns the CV into structured fields. Matching then checks whether this person already exists in your database, because enriching a duplicate just doubles your mess. Pulling adds fields from sources you are permitted to use. Reconciling is the step cheap tools skip: when the CV says one job title and another source says another, something has to decide which is current and which to trust. Only then does the verified profile get written back.

Where the enrichment data comes from

Not every source is equal, in either quality or legal footing. In rough order of how defensible they are for an agency:

SourceWhat it addsNotes
The candidate’s own CVSkills, history, educationCleanest source; the person gave it to you for this purpose
Your own ATS and CRMPrior submissions, notes, placement historyAlready yours; merging duplicates recovers data you paid for
Candidate self-service updateAvailability, current role, preferencesHighest accuracy, lowest legal risk, and the candidate does the work
VMS and portal activityRecent roles submitted into Fieldglass, BeelineConfirms what the candidate is actually doing now
Third party data providersContact details, employer, seniorityUseful, but check the lawful basis and the provider’s own sourcing

The pattern worth noticing: the safest and most accurate enrichment often is not scraping the open web, it is reconciling data you already hold and asking the candidate to confirm it. A well built candidate profile plus a self-update link beats a bought data list on both accuracy and compliance.

Manual versus automated enrichment

Most agencies enrich manually without calling it that. A recruiter opens a stale record, googles the person, updates the phone number, and moves on. It works, and it does not scale.

Manual enrichmentAutomated enrichment
TriggerA recruiter notices the gapRuns on upload and on a schedule
CoverageOnly records someone touchesThe whole database
ConsistencyVaries by recruiterSame rules every time
Duplicate handlingEasily missedDetected at match step
Best forJudgement calls, key accountsVolume, hygiene, freshness

Automation is not better at everything. A recruiter deciding whether a senior candidate is genuinely open to a move is doing something no enrichment pipeline can. The right split is to let software carry the volume hygiene so recruiters spend their judgement where judgement pays.

What enrichment unlocks downstream

Enrichment is never the goal, it is the enabler. Clean, current, structured records are what make everything downstream work.

Search stops missing people. A recruiting database only returns candidates whose fields actually contain the terms you search. Enrich the structure layer and your dormant records rejoin the pool. It makes sourcing start from your own database instead of always from a cold external search, which is faster and cheaper. And it feeds matching and analytics: a matcher can only score fields that exist, so an enriched profile scores against more vacancies than a thin one.

The honest limitation: enrichment cannot invent what was never captured, and it cannot make a candidate open to a move. It makes existing records findable and current. It does not replace the recruiter conversation that confirms someone is actually interested. Treat it as database hygiene that returns your existing candidates to circulation, not as a shortcut around talking to people.

In Saply, enrichment is not a separate product you bolt on. The same engine that parses and reformats a CV into your template also structures and normalizes the underlying data, and syncs the clean profile back to your ATS, with processing and storage kept in the EU (see our security overview). The recruiter uploads a document and gets a complete record, without a second data step.

Frequently asked questions

What is candidate enrichment in recruitment?

Candidate enrichment is the process of completing and updating a candidate record so it stays accurate and searchable. It adds missing fields such as verified contact details, normalized skills and titles, current employer, and availability, and refreshes them over time so the record still describes the person today, not the person who applied two years ago.

How is candidate enrichment different from CV parsing?

Parsing is the first step, enrichment is what happens after. Parsing extracts structured fields from a single CV. Enrichment takes that parsed record, checks it against your existing data, fills the gaps from permitted sources, resolves conflicts, and keeps it current. You can parse without enriching, but you cannot enrich without first having structured data to work from.

Is candidate data enrichment GDPR compliant?

It can be, and it can also create risk, depending on how you do it. Keeping data accurate and up to date aligns with the GDPR accuracy principle. Collecting new fields the candidate never expected you to hold runs into purpose limitation and lawful basis. The safe pattern is to reconcile data you already hold and let candidates confirm their own details, rather than quietly building profiles from scraped sources.

How do I stop my recruitment database from going stale?

Make freshness a field, not an afterthought. Stamp every record with a last-verified date, run enrichment on a schedule instead of only on upload, deduplicate on the way in, and give candidates an easy self-service way to update their own details. The goal is that stale data flags itself before a recruiter wastes a call on it.

Should agencies buy third party enrichment data?

Sometimes, but it is the last source to reach for, not the first. Your own ATS history and a candidate self-update are more accurate and far safer than a purchased contact list. If you do use a third party provider, confirm its lawful basis and where its data came from, because you inherit the compliance exposure of whatever you feed into your database.