Clean duplicate contacts from a CSV — without uploading it
Paste or upload a messy CSV of contacts, map the name/email/phone columns, and find the duplicates — certain ones (same email or phone) and fuzzy ones (typos, nicknames, reordered names) alike. Nothing is merged automatically: every group is yours to review, pick a keeper, and decide.
How it works: an exact-match pass groups records with an identical normalized email or phone number. A separate fuzzy pass compares names with a real string-similarity algorithm (Levenshtein edit-distance plus token-based matching, so "Jon Smith" / "Jonathan Smith" and "Smith, Priya" / "Priya Smith" are both caught) at a sensitivity you control. Nothing is uploaded: this page makes no network requests at all.
How to use this tool
Use the dropzone below — that's the whole tool. (The downloaded version is the same tool as a file that opens in any browser, no install or internet needed.)
Paste your CSV into the text box, or click Choose a CSV file… to upload one. First row is treated as headers.
On the mapping screen, confirm which columns are Name (or First/Last), Email, and Phone — they're pre-guessed for you. Adjust the fuzzy-match sensitivity slider if you want (70% is a reasonable default).
Click Find duplicates. Certain (exact-match) and possible (fuzzy) groups are listed separately, each with every member's similarity score against the current keeper.
For each group: pick which record to Keep, then check Remove as duplicate on any others that are truly the same person. Leave genuinely different people unchecked — they'll both stay in your export.
Click Export cleaned CSV for the final file, with casing/whitespace normalized and a notes column documenting what happened to each row.
Load your contact list
CSV only, first row treated as headers. Everything happens in this tab — nothing is sent anywhere.