Data Cleanup

Paste your messy list or spreadsheet. It profiles the mess, proposes cleanup rules before touching anything, then returns a deduped, standardized list with a log of every change it made.

Run the business Save Time on AdminResearch and Lists
Runs in
Claude or ChatGPT (free)
What you need
The messy list, pasted from your spreadsheet or wherever it lives. A few hundred rows works fine in one pass.

The skill

Copy the full prompt

This is the whole skill, free to take. Paste it into Claude or ChatGPT and it runs the phases on its own, starting with questions for you.

You are cleaning up a messy list for me: customers, contacts, inventory, jobs, whatever I paste. The rule that overrides everything: never silently change data. Every edit gets logged, every judgment call gets asked. Work in four phases.

PHASE 1: PROFILE THE MESS.
Ask me to paste the list, then, before changing anything, report what you see:
- What the columns appear to be, including any you cannot identify.
- The damage: duplicates and near-duplicates, inconsistent formats (phone numbers, dates, capitalization, states spelled five ways), blanks, rows that look like tests or garbage, values in the wrong columns.
- A count: how many rows in, how many look clean, how many need work.
Then ask what this list is FOR, because a mailing list and a billing list have different definitions of clean.

PHASE 2: PROPOSE THE RULES.
Before executing, propose the cleanup plan and wait for my yes:
- The standard format for each column (phone as 555-123-4567, dates as 2026-07-13, names as First Last, and so on), adjusted to what I said in phase 1.
- The dedupe rule: what counts as the same record, and which copy wins when two conflict (most recent, most complete, or ask me).
- The judgment calls: list every ambiguous case you found (is "J. Smith, 555-0182" the same person as "John Smith, (555) 018-2000"?) and ask me to rule on them, batched so it is quick.
- What gets quarantined rather than deleted: junk rows go to a separate list, never silently dropped.

PHASE 3: EXECUTE.
Apply the agreed rules to every row. Where the list is too long for one pass, do it in batches and keep a running count so nothing is lost between batches. Merge duplicates per the rule, standardize formats, fill what is derivable (city from a full address), and never invent what is not (no guessed emails, no guessed zip codes).

PHASE 4: DELIVER WITH RECEIPTS.
Return three things:
1. The clean list, as a table I can paste back into my spreadsheet, sorted the way I said I use it.
2. The change log: rows merged (showing both originals), formats fixed (by count, per column), rows quarantined and why.
3. The honest gaps: what is still missing or unverifiable, and, if useful, the shortest path to fixing it (for example, "12 customers have no email; they all came from the 2024 paper forms").

Rules:
- Deletion does not exist. Everything removed lands in the quarantine list.
- When in doubt, ask. A wrong merge is worse than a duplicate.
- Tell me the final counts: rows in, rows out, duplicates merged, rows quarantined. The math must add up.

What comes back

The deliverable, not a wall of text

Run well, this skill ends in a document you can act on. Here is a condensed sample of the shape.

212 rows in · 187 out · every change logged · sample output

Cleanup report: customer list

The math

Rows inMergedQuarantinedRows out
21219 duplicate pairs6 junk rows187 clean

Change log, sample entries

  • Merged: "Pat Kowalski / 555-0161" and "Patricia Kowalski / (212) 555-0161". Same phone once standardized. Kept the more complete record per your rule.
  • Standardized 43 phone numbers to (212) 555-0161 format; 31 dates to 2026-07-13 format.
  • Quarantined: row 118 ("test test, asdf@") and 5 rows with no name and no contact method.

Honest gaps

  • 14 customers have a phone but no email. All 14 predate your website form, so the emails likely never existed.
  • Two addresses failed a plausibility check (zip does not match city). Flagged in the list, not guessed.
A condensed sample of the real deliverable. The rows shown are illustrative sample data.

How to run it

3 steps, no setup

  1. 1

    Paste the mess, do not pre-clean it

    A few hundred rows in one pass is fine. Fixing the obvious ones first robs it of the pattern it uses to find the rest.

  2. 2

    Approve the rules before it touches anything

    It profiles the mess and proposes cleanup rules first, and waits. This is the safety step. Read them: this is where you catch it about to merge two customers who are genuinely different.

  3. 3

    Keep the change log

    It returns the cleaned list and a log of every change it made. The log is the thing that makes the list checkable, and it is the reason you can hand this to someone else.