How it works
Paste your list, confirm which columns are email and personalization fields, then run checks. The output is a short summary plus a row-level findings table you can export as a CSV.
Paste your list
Paste CSV or spreadsheet rows. The tool auto-detects whether the first row is headers.
This grid shows an example in gray. Paste your CSV or spreadsheet over it.Columns can be in any order. In Step 2, map which column is Email, First name, Company, Domain, and LinkedIn URL. Extra columns are fine.
0 detected rowsNo header row detected
Confirm column mapping
If your export uses different headers, point the checker at the right columns.
Don’t worry about the header names. Just pick the columns that match each field.
Paste rows to map columns.
Detected email and personalization fields will appear here for review.
Run checks
Get a summary and a row-level findings table you can export.
No rows to check yet
Paste rows in Step 1, then run checks to preview issues here.
What it checks
It catches the structural mistakes that break personalization and create duplicate contacts when you import into Apollo, Instantly, Smartlead, Clay, Lemlist, Mailshake, HubSpot, or any mail merge.
- Flags missing first_name and company columns
- Catches duplicate emails and duplicate domains
- Catches invalid email syntax, role-based addresses, and free-mail domains
- Finds broken LinkedIn URLs and malformed domain formats
- Flags whitespace, non-ASCII characters, all-caps company names, and placeholder values like N/A
What it does not do
It doesn't enrich, find emails, verify mailboxes, or check deliverability. It only audits what's already in your CSV.
Privacy
The checks run locally in your browser. If you download a findings CSV, it's generated on your device.