New customersGet 10% off your first payment on any Prosyo plan.Not available for INR (₹) billing. Valid on your first payment only, for new Prosyo customers.Claim 10% off
Prospecting Open source · MIT v1.0.0

List cleaning Claude skill

Use this before any list touches a sequence or a CRM import. It produces a clean list and a report of exactly what was removed or changed and why.

  • 6-step play
  • 4 guardrails
  • 2 files
  • Human approval built in

Use it when a prospect or contact list needs cleaning before outreach or import.

Then just ask your agent

“Clean this 3,500-row CSV for a cold email campaign.”

Watch it work

One request in, expert work out

What happens when you ask your agent with this skill installed. Every step below comes straight from the skill.

Your agentApproval on
You

Clean this 3,500-row CSV for a cold email campaign.

Loaded skill list-cleaning
  1. Profile the file
  2. Normalise
  3. Deduplicate
  4. Remove risk
  5. Suppress
Clean send-ready list · Cleaning report · Rows needing review

Ready for your review. Nothing is sent or changed until you approve.

  • 6Steps in the play
  • 4Guardrails
  • 2Files in the skill
  • 3 minTo read it all

What good looks like

  • A random 20-row sample reads perfectly in a merge preview: "Hi Ana," at "Northwind", never "Hi ANA" at "Northwind Holdings, Inc.".
  • Removed rows keep their reason, so nothing disappears silently.
  • Bounce rate on the cleaned list stays under 2%.

What you bring

  • Raw list (CSV or export)
  • Customer and opt-out lists
  • Target campaign

What you get

  • Clean send-ready list
  • Cleaning report
  • Rows needing review
Raw
name:list-cleaning description:Use this skill when a prospect or contact list needs cleaning before outreach or import: "clean this CSV", "dedupe my leads", "fix the names and titles", "why are my bounces high". Normalises names, titles,…

Use this before any list touches a sequence or a CRM import. It produces a clean list and a report of exactly what was removed or changed and why.

Inputs

  • The raw list.
  • Suppression sources: customers, open opportunities, opt-outs, do-not-contact, recent contacts.
  • The campaign it is for, so you know which columns must be filled.

The play

1. Profile the file

Count rows, columns, blanks per column, and obvious junk (test rows, header repeats, rows with only an email). Note the encoding problems: broken accents in names are common and visible in a first line.

2. Normalise

  • Names: proper case, strip titles and suffixes (Dr., PhD, MBA), split full names, fix all-caps. Keep particles like "van", "de", "Mc" correct.
  • Companies: strip legal suffixes for display (Inc., Ltd, GmbH, LLC) while keeping the original in another column. "Acme Holdings Inc." becomes "Acme" in an email.
  • Titles: keep the original, add a normalised seniority and function column.
  • Domains: lower case, strip www and paths, derive from email when missing.

Read references/cleaning-rules.md for the full normalisation and risk rules with edge cases.

3. Deduplicate

Match on email first, then on LinkedIn URL, then on first name + last name + domain. Keep the most complete record and merge the rest.

4. Remove risk

Drop invalid emails, disposable domains, role addresses (info@, sales@, admin@, support@), personal domains for B2B campaigns, and anything that bounced before. Flag catch-all domains rather than dropping them; decide by campaign size.

5. Suppress

Remove customers, open deals, opt-outs and anyone contacted in the last 90 days. Match suppression on email and on domain where the list is account-level.

6. Report

Show what happened to every removed row and hand back a list of rows that need a human decision.

Output format

Input: N rows  →  Output: N send-ready rows
Fixed: N names, N company names, N domains
Removed: N duplicates | N invalid | N role | N personal | N disposable | N suppressed (by reason)
Flagged for review: N catch-all | N missing first name | N possible job change
Files: clean list, removed rows with reason, review list

What good looks like

  • A random 20-row sample reads perfectly in a merge preview: "Hi Ana," at "Northwind", never "Hi ANA" at "Northwind Holdings, Inc.".
  • Removed rows keep their reason, so nothing disappears silently.
  • Bounce rate on the cleaned list stays under 2%.
  • The common mistake is deduplicating only on email, which leaves the same person in the list twice with a work and an old address.

Rules

  • MUST keep the original values alongside normalised ones.
  • MUST output a removed-rows file with reasons.
  • NEVER delete records from the user’s CRM; cleaning produces new files or proposed changes for approval.
  • NEVER guess an email address and mark it as verified.

Example prompts

  • "Clean this 3,500-row CSV for a cold email campaign."
  • "Dedupe these two lists and remove our customers."
  • "Fix the names and company names so merge fields look natural."
Try it

Ask your agent like this

Once the skill is installed, plain requests like these load it automatically. Swap in your own company, buyer and numbers.

  • “Clean this 3,500-row CSV for a cold email campaign.”

  • “Dedupe these two lists and remove our customers.”

  • “Fix the names and company names so merge fields look natural.”

FAQ

List cleaning skill: your questions

What it does, how to install it and how it keeps you in control.

Rather have it done for you? Book a short demo and see Penny run this play on your own market.
Book a demo
Book a demo
What does the List cleaning skill do?

Use this before any list touches a sequence or a CRM import. It produces a clean list and a report of exactly what was removed or changed and why. You get: clean send-ready list, cleaning report, rows needing review.

When should I use the list cleaning skill?

Use it when a prospect or contact list needs cleaning before outreach or import.

How do I install List cleaning in Claude Code?

Run /plugin marketplace add prosyo-ai/gtm-skill and then /plugin install gtm-skills@prosyo to add the whole library, or run npx skills add prosyo-ai/gtm-skill –skill list-cleaning for this skill alone. In Claude.ai, download the .zip from this page and upload it under Settings, Capabilities, Skills.

What do I need to give the agent?

Have these ready: raw list (csv or export), customer and opt-out lists, target campaign. If something is missing, the skill tells the agent to ask for it rather than guess.

Does it work with ChatGPT, Codex, Cursor or Gemini?

Yes. The skill is a plain SKILL.md file with no vendor lock-in. Agents that load skills natively (Claude Code, Claude.ai, Codex, Cursor, Gemini CLI and others) pick it up automatically; anywhere else, paste the file into the conversation as instructions.

Will it send emails or messages on its own?

No. Every skill in the library drafts, researches and analyses, and waits for a person to approve anything that sends, schedules or changes records in bulk. Your inbox, CRM and accounts stay under your control.

Is it free, and can I change it?

Yes. It is free and MIT-licensed. Copy it, adapt it to your market and voice, and if you improve it, open a pull request so everyone gets the better version.

Open source

Have a play that works? Share it as a skill.

Paste this into Claude, Codex or any agent. It interviews you about your play, writes the skill in the house format, checks it and opens the pull request. Once it is merged, it shows up here with your name on it.

Prompt for your agent

Fetch https://raw.githubusercontent.com/prosyo-ai/gtm-skill/main/AGENTS.md and follow its submission flow. Interview me about my GTM play (the real numbers, rubrics and examples), draft it in their format with reference pages, validate it and open the pull request.

Two ways to run it

Run it yourself, or put it on autopilot

The skill gives your agent the playbook. Penny, the Prosyo AI SDR, runs plays like this for you every day across LinkedIn and email.

Free · this skill
You and your agentBest for trying the play and one-off work
  • Your agent follows the list cleaning playbook step by step
  • You bring the inputs and run it when you need it
  • Works in Claude, Codex, Cursor and 40+ agents
  • You review every draft before it goes anywhere
Prosyo AI SDR
Penny runs it for youBest for a pipeline that grows every day
  • Finds the right buyers for your ICP every day
  • Writes from what each prospect actually posted
  • Follows up on LinkedIn and email at a safe, human pace
  • Every reply lands in one inbox with an answer drafted
  • You approve what goes out
Meet Penny
Meet Penny
7 days free · no card

Skills draft the play. Penny runs it.

Penny, the Prosyo AI SDR, finds your buyers, writes from what they actually posted, follows up on LinkedIn and email and lands every reply in one inbox with an answer ready. 7 days free, no card.

  • 7 days free
  • No card required
  • Cancel in two clicks