Clean a Candidate List for Your ATS

Candidate lists come from job boards, referrals and events, each in its own format. This example prepares a fictional list for import and shows why some repeated candidates should stay.

ℹ️ A worked example you can check. The before and after tables below were produced by the free tool on this site from a fictional sample file. Open the same file yourself and you will get the same result.

What Usually Goes Wrong

• One full-name column when the ATS wants first and last name
• Names in ALL CAPITALS from a job board export
• The same candidate applying for two different roles
• The same application exported twice
• Application dates in several formats

The Sample File, Before

7 rows of fictional data with the problems above. Every person and company is invented.

Open This File in the Workspace Download the CSV

Clean a Candidate List for Your ATS sample before cleaning
Candidate NameEmailPhoneApplied OnRoleSource
ROSALIND HARGREAVESrosalind.h@example.com(303) 555-01313/16/2026Data AnalystJob board
emeka obiemeka.obi@example.com303.555.01323/17/2026Data AnalystReferral
Tavita Leotatavita@leota-example.nz+64 9 555 01332026-03-18Operations CoordinatorCareer fair
ROSALIND HARGREAVESrosalind.h@example.com(303) 555-01313/16/2026Data AnalystJob board
Rosalind HargreavesRosalind.H@example.com(303) 555-01313/21/2026Senior Data AnalystJob board
Anders de Vriesanders@devries-example.nl+31 20 555 013522 March 2026Operations CoordinatorReferral
Mei-Ling O'Connormeiling.oconnor@example.com303 555 01363/25/2026Data AnalystJob board

How to Clean It

1. Combine the sources into one CSV with the same columns and keep the originals.
2. Run it with duplicates, emails, phones, dates, name capitalization and Split full name.
3. Read the review list. The candidate who applied for two roles is listed as a pair that disagrees on Role and date.
4. Keep both of those rows if your ATS tracks applications; keep one if it tracks people.
5. Map first_name and last_name to the ATS fields and import.

Prefer the command line or an AI agent? The same result comes from smartdata-clean clean candidate-list.csv --dedupe-rows --lower-emails --merge-duplicate-emails --phones --dates --names --split-names. See tools for agents.

The Result

7 rows in, 1 removed, 6 out. The application that was exported twice is removed. Rosalind's second application, for a different role on a different date, is kept and flagged, because it is a different application and not a repeat. Names are split, including the two-part surname and the hyphenated first name.

Clean a Candidate List for Your ATS sample after cleaning
Candidate Namefirst_namelast_nameEmailPhoneApplied OnRoleSource
Rosalind HargreavesRosalindHargreavesrosalind.h@example.com+130355501312026-03-16Data AnalystJob board
Emeka ObiEmekaObiemeka.obi@example.com+130355501322026-03-17Data AnalystReferral
Tavita LeotaTavitaLeotatavita@leota-example.nz+64955501332026-03-18Operations CoordinatorCareer fair
Rosalind HargreavesRosalindHargreavesrosalind.h@example.com+130355501312026-03-21Senior Data AnalystJob board
Anders de VriesAndersde Vriesanders@devries-example.nl+312055501352026-03-22Operations CoordinatorReferral
Mei-Ling O'ConnorMei-LingO'Connormeiling.oconnor@example.com+130355501362026-03-25Data AnalystJob board

What the tool left for you

The tool listed these 3 items for a person to check:

• Row 6 shares an email with row 2 but has different Applied On, Role. Both rows were kept. Decide which is right.
• This list contains international numbers. 5 ten-digit number(s) with no country code were read as US/Canada (+1) (rows 2, 3, 5, 6, 8). Check that those rows are US or Canadian numbers.
• Name capitalization was applied to "Candidate Name". If that column holds company names or acronyms, check the changes in the log.

Checked, not just claimed

The original file, the cleaned file and the change log were run through the separate verifier. Result: PASS.

✓ Removed rows with a valid, verified reason: 1 of 1
✓ Rows: 7 in, 1 removed with a logged reason, 6 out
✓ Cells compared: 36; changed: 14; every change matched to the log: yes
✓ Log entries: 18; not matching the files: 0

The verifier confirms that the change log explains every difference between the two files. It does not judge whether each cleaning choice suits your situation; that part is yours.

The cleaning report

Where a Tool Stops and a Person Starts

Deciding person-level versus application-level records, matching roles to requisition IDs and fitting a specific ATS template are setup-specific. That is the CRM Import Prep service, which also covers ATS imports.

See Service Levels From $19 How We Check Our Work

Candidate data is personal data. Use the browser tools so the file stays on your computer, and follow your own retention rules.