Untracked logoUntrackedGet the full version →
· Get unlimited →

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
  1. 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.)
  2. Paste your CSV into the text box, or click Choose a CSV file… to upload one. First row is treated as headers.
  3. 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).
  4. Click Find duplicates. Certain (exact-match) and possible (fuzzy) groups are listed separately, each with every member's similarity score against the current keeper.
  5. 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.
  6. 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.

or or