A purchased B2B list is not a lead list yet. It is a raw pile of records that has to earn its way into your CRM.
Sales teams lose trust in prospecting data the first time they dial a disconnected number or email someone who left the company two years ago. The cleaning work has to happen before distribution, not after complaints.
Treat the incoming file as untrusted. Keep it in a staging area such as a spreadsheet, an import staging object, or a dedicated list inside the prospecting tool. Nobody should be able to send to it or sync it until it passes every check below.
The goal is simple. Every record that reaches a rep should have a plausible person, a working company domain, a valid email format, and a reason to be contacted. Records that cannot meet that bar are cheaper to delete than to defend later.
Count the list before you change it
Record the raw row count first. You will want that number when someone asks why the delivered list was smaller than advertised, and it protects you from accidentally loading the same file twice. Save a copy of the original so you can always trace a record back to its source.
Then count the unique company domains and the unique email addresses. A file with 5,000 rows but only 900 distinct domains usually means duplicate companies pulled from several sources. That is normal, but it changes how you think about the real size of the audience.
Write the three numbers in the QA summary: raw rows, unique domains, and unique emails. These become the baseline for every later decision.
Remove duplicates before you enrich anything
Deduplicate on the email address first, because that is the field you will use to send. Keep the most recent or most complete version of a duplicate record, and note which source won so the decision is auditable. If two records share an email but carry different names, flag them rather than guessing which is right.
Next, deduplicate on the company domain plus the person's name. This catches the same person entered twice with a personal email and a work email. Decide in advance which one you will keep, and apply that rule consistently across the whole file.
Only after duplicates are gone should you spend money on enrichment or verification. Cleaning first avoids paying to enrich a record you are about to delete.
Validate the email format and the domain
Syntax checking is the easy part. Confirm that every address has a local part, an at sign, and a domain with a valid top level. Reject anything with spaces, doubled at signs, or obvious typos such as a trailing comma or a missing dot.
Then check the domain itself. A domain that does not resolve, points to a parked page, or belongs to a free consumer provider may still be valid, but it needs a different treatment. Free-provider addresses belong in a separate segment, not in the same cold campaign as verified business domains.
The Apollo knowledge base documents how its verification and enrichment fields behave, including the difference between a risky and an undeliverable address. Use the tool's own definitions instead of inventing your own buckets.
Standardize company and title fields
Reps scan a list quickly, so inconsistent formatting costs them time on every record. Normalize company names by removing legal suffixes such as Inc, LLC, and Ltd, and by fixing capitalization. Pick one convention for ampersands and punctuation, then apply it everywhere.
Job titles need the same treatment. Map variations like "VP of Sales," "V.P. Sales," and "Sales Vice President" to a single canonical value, and keep the original title in a separate field.
This makes filtering by seniority reliable and stops the same role from appearing three different ways. Store the country as a two letter code and the state or region as a standard abbreviation. Small consistency wins compound across thousands of rows.
Check consent and contactability rules
Not every record is safe to email. Check the list against your suppression list, your current customers, and anyone who has opted out. Remove those records before the list reaches a sequence, because a single complaint can damage a sending domain.
Respect regional rules for the geographies in the file. Some markets have stricter requirements for cold outreach, and the sender, not the list vendor, carries the risk. When the source or the consent basis is unclear, set the record aside instead of assuming it is fine.
Flag records that are missing a direct contact, a company domain, or any verifiable source. A record you cannot describe in one sentence is a record you cannot defend.
Load a staged view, not the live table
Import the cleaned file into a staging list or a view that sales can inspect but cannot send from. Give the team a short window to scan the first fifty rows and report anything obviously wrong before the full sync.
When the staged sample looks right, promote the records into the working list with a source tag and an import date. That tag is how you will later measure whether purchased data performs as well as inbound or referred leads.
Keep the original file, the cleaned file, and the QA summary together. If a record is questioned months later, you can show exactly how it was treated.
Hand off with a short QA summary
A one page summary is enough. Include the raw count, the cleaned count, duplicates removed, invalid emails removed, records suppressed, and the date of the import. Add the top three reasons records were rejected so the buyer knows what to negotiate next time.
Deliver the summary with the list, not in a separate message that gets lost. The rep who inherits the list should be able to see why it is the size it is.
Cleaning a list is unglamorous work, but it is exactly the kind of repeatable task a trained VA can own every time a new file arrives. If you would rather not run this by hand, our lead list building service, or request a consultation and bring your current list.
