Article content and detailed guides remain in English. The selected language applies to controls and quick instructions.

Back to articles

Data Cleaning for Recruitment Agency Candidate Databases, ATS Systems, Talent Pools, Staffing Firm Contact Lists and Executive Search Firm Research Files

On this page

The Recruitment Data Problem

Recruitment agencies accumulate candidate data faster than almost any other business type. Every job board application, LinkedIn import, referral submission, career fair contact card, resume received by email, and manual entry creates a new record. A mid-size staffing firm with 10 recruiters may add 500-2,000 new candidate records per week. Over 3-5 years, the ATS database grows to 100,000-500,000+ records, and without active maintenance, 30-50% of those records become unusable:

Data quality issue How it happens Scale Impact on recruiting operations
Duplicate candidate records Same candidate applies through multiple job boards (Indeed, LinkedIn, ZipRecruiter); recruiter imports a candidate from LinkedIn who already exists from a prior application; candidate reapplies after 6 months and creates a new record; ATS migration from a previous system creates duplicates 15-30% of records in a typical recruiting database are duplicates Recruiter contacts the same candidate twice for the same role (unprofessional); candidate history is split across records (one record shows the interview from 2024, another shows the placement from 2025); reporting is inflated (500,000 "candidates" is really 375,000 unique people)
Outdated contact information Candidates change jobs (and lose their work email), change phone numbers, move to new cities; email addresses provided 2-3 years ago may no longer be active 20-40% of candidate email addresses become invalid within 2 years; 30-50% of phone numbers become invalid within 3 years Recruiters waste time trying to reach unreachable candidates; voicemails are never returned because the number belongs to someone else; emails bounce; the best candidate for a role is in your database but you cannot reach them
Incomplete records Candidate submitted a resume but no contact details were parsed correctly; recruiter manually entered a name and phone number but no email; LinkedIn import captured name and headline but no email or phone 10-25% of records are missing email address; 15-30% are missing phone number; 20-40% are missing current employer/title Incomplete records are unsearchable for future roles; a candidate with no email cannot receive job alerts or marketing; a candidate with no current title cannot be matched to relevant positions
Outdated skills and experience Candidate's record reflects their 2022 resume; they have since earned a certification, changed industries, been promoted, or learned new technologies Nearly 100% of records older than 12 months have some outdated information Boolean searches return outdated results; a candidate who was a "Junior Developer" in 2022 is now a "Senior Developer" but your search for "Senior Developer" does not find them; skills-based matching produces poor results
Consent and compliance gaps GDPR requires a legal basis for processing candidate data; some records predate GDPR implementation; consent records were not maintained during ATS migrations; candidates who withdrew consent were not properly suppressed Varies by agency; agencies operating in the EU or processing EU candidate data may have 10-40% of records with unclear consent status Processing candidate data without proper consent risks GDPR fines (up to 4% of annual global turnover or 20 million euros, whichever is higher); reputational damage; candidate complaints to data protection authorities

Systems That Hold Candidate Data

System What it stores Common platforms
Applicant Tracking System (ATS) Primary candidate database: contact information, resume/CV, application history, interview notes, placement history, skills, certifications, availability, rate/salary, recruiter notes, communication history Bullhorn, JobAdder, Vincere, Tracker, Crelate, Loxo, PCRecruiter, CATS, Zoho Recruit, Greenhouse (more employer-side), Lever (more employer-side), iCIMS, Workday Recruiting
Job board accounts Candidate profiles and applications received through job boards; may include resume, cover letter, screening question responses Indeed, LinkedIn Recruiter, ZipRecruiter, Monster, CareerBuilder, Dice (tech), Glassdoor
Email (recruiter inboxes) Resumes received by email; candidate correspondence; referral introductions; interview scheduling Gmail, Outlook, corporate email
LinkedIn Recruiter LinkedIn profiles saved, InMail history, project/pipeline assignments, tags and notes LinkedIn Recruiter, LinkedIn Recruiter Lite
Spreadsheets and personal files Recruiter-maintained candidate lists; often for specific searches, niches, or VIP candidates; may contain more current information than the ATS Excel, Google Sheets, personal CRM tools
Career fair and event contacts Business cards, sign-up sheets, badge scans from career fairs, networking events, industry conferences Often paper-based or in event-specific apps; data must be manually entered or imported into the ATS
Legacy ATS (post-migration) Candidate data from a previous ATS that was migrated to the current system; migration may have introduced duplicates, data loss, or formatting issues Any previous ATS the agency used

Cleaning Workflows

Full database audit

Step Action Details
1. Export from all systems Export candidate records from: ATS (CSV), LinkedIn Recruiter (CSV export of saved profiles), job board accounts (CSV where available), recruiter spreadsheets (XLSX, CSV), event contact lists (XLSX, CSV) Include: candidate ID (ATS-assigned), first name, last name, email (all known), phone (all known), current title, current employer, city/state, skills, last activity date, source, recruiter owner
2. Extract and deduplicate emails Upload all exported files to Email Extractor to extract and deduplicate email addresses across all systems The deduplicated email list reveals the true unique candidate count; source-tagged results show which system has each candidate's email and which systems are missing it; candidates with multiple email addresses (personal and work) are identified
3. Identify duplicate records Match on: email address (most reliable); first name + last name + city; first name + last name + employer; phone number match across systems Create a review queue for potential duplicates; automated matching will produce false positives (two "John Smith" candidates who are different people); human review is essential
4. Merge duplicates in ATS Merge duplicate records preserving: all application history, all interview notes, all placement history, most current contact information, all skills and certifications from both records Most ATS platforms (Bullhorn, JobAdder, Vincere) have built-in duplicate detection and merge tools; use them to merge within the ATS rather than exporting, deduplicating, and reimporting
5. Verify email addresses Run the deduplicated email list through a verification service (ZeroBounce, NeverBounce, Clearout) Results: valid (safe to email), invalid (need new email), catch-all (monitor), disposable (flag for review -- candidates using disposable emails may not want to be contacted)
6. Enrich incomplete records For candidates missing email or phone: search LinkedIn, company websites, professional directories; for candidates with outdated titles: check LinkedIn for current position Prioritise enrichment by candidate value: recently placed candidates and highly skilled candidates are worth more enrichment effort than cold records from 3 years ago
7. Update ATS Import cleaned, deduplicated, verified and enriched data back to the ATS; update contact information, skills, titles; flag invalid email addresses; suppress or archive records with no valid contact method Configure the ATS to track the cleaning date and source of each update for compliance documentation

Ongoing maintenance

Frequency Action Why
Daily (automated) ATS duplicate detection on new records: flag potential duplicates at the point of entry (when a new application or import occurs) Preventing duplicates at entry is 10x easier than finding and merging them later; most modern ATS platforms can flag "this candidate may already exist" when a new record is created
Weekly Process email bounces from outreach campaigns; update candidate records with bounce information; investigate and replace bounced email addresses Recruiters who send weekly job alerts or marketing emails should process bounces weekly to maintain list health and sender reputation
Monthly Review and merge newly flagged duplicates; update records for recently placed candidates (confirm start date, title, salary); archive records with no activity in 18-24 months (do not delete; archive for compliance) Monthly maintenance prevents data quality from degrading; recently placed candidates are high-value records that should be accurate for redeployment
Quarterly Email verification of active candidate pool (candidates contacted in the last 6 months or flagged as available); skills and title refresh for top candidates Quarterly verification catches email decay before it impacts outreach campaigns; skills refresh ensures search results are current
Annually Full database audit (steps 1-7 above); GDPR/consent review (are all records compliant?); archive or delete records per retention policy; report on database health metrics Annual audit is the comprehensive reset; compliance review is essential for agencies processing EU candidate data

ATS-Specific Workflows

ATS Export method Duplicate detection Merge capability Bulk update
Bullhorn Admin > Data Management > Export; REST API for programmatic export Built-in duplicate detection on import (matches on email, name + phone); configurable matching rules Built-in merge tool; preserves notes, activities, placements from both records CSV import with field mapping; API for programmatic updates
JobAdder Reports > Custom export; API access Duplicate detection on candidate creation; flags potential matches Built-in merge (select primary record; merge secondary into it) CSV import; API
Vincere Data management > Export; API Duplicate detection on record creation Built-in merge CSV import; API
Zoho Recruit Module > Export (CSV/XLS); API Duplicate detection rules (configurable: email, phone, name) Built-in merge; select master record CSV import; API
Greenhouse Requires API access or support export; no self-service bulk export in standard plans Limited duplicate detection (primarily email match) Manual merge by support or admin API; some bulk actions available in admin

Metrics

Metric Before cleaning (typical) After cleaning Impact
Duplicate rate 15-30% of records Under 5% Accurate candidate count; no duplicate outreach; complete candidate history in one record
Email deliverability 60-75% (recruiting databases have high bounce rates due to work email churn) 85-95% (after verification and enrichment) More candidates receive job opportunities; higher response rates; better sender reputation for email campaigns
Candidate reachability (has valid email or phone) 55-70% 80-90% (after enrichment) Larger reachable candidate pool; more candidates available for each search
Search result relevance Low (outdated titles and skills produce inaccurate boolean search results) High (current titles and skills improve matching) Recruiters find the right candidates faster; reduce time-to-fill; improve candidate quality for submissions
Time-to-fill (average) Longer (recruiters spend time on unreachable candidates, duplicate outreach, manual deduplication) Shorter (clean data means faster sourcing, fewer dead ends) Faster placements mean faster revenue; improved client satisfaction
Redeployment rate (placing previously placed candidates in new roles) 15-25% (many prior placements are unreachable due to outdated contact information) 25-40% (accurate contact information enables redeployment outreach) Redeployment is the most profitable placement type: no sourcing cost, known candidate quality, existing relationship

Extract emails

Explore tools

Verify emails

Check address validity before using your list.

ZeroBounce

Email Verification

Verifies email lists and provides tools for monitoring deliverability.

Useful when list cleaning and sender health belong in one workflow.

Explore ZeroBounce (opens in a new tab)