Account tiering
You need to decide which accounts get the most effort.
You get Tiered account list · Score breakdown · Effort rules per tier
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.
Use it when a prospect or contact list needs cleaning before outreach or import.
“Clean this 3,500-row CSV for a cold email campaign.”
What happens when you ask your agent with this skill installed. Every step below comes straight from the skill.
Clean this 3,500-row CSV for a cold email campaign.
list-cleaningReady for your review. Nothing is sent or changed until you approve.
What good looks like
What you bring
What you get
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.
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.
Read references/cleaning-rules.md for the full normalisation and risk rules with edge cases.
Match on email first, then on LinkedIn URL, then on first name + last name + domain. Keep the most complete record and merge the rest.
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.
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.
Show what happened to every removed row and hand back a list of rows that need a human decision.
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
| Raw | Clean | Rule |
|---|---|---|
| JOHN SMITH | John Smith | Proper case all-caps names |
| john o’neil | John O’Neil | Capitalise after apostrophe |
| Dr. Sarah Lee, PhD | Sarah Lee | Strip honorifics and post-nominals |
| Ludwig van Beethoven | Ludwig van Beethoven | Keep lowercase particles: van, von, de, da, di, le |
| mcdonald | McDonald | Mc and Mac prefixes (check Mack, Macy exceptions) |
| J. | (flag) | Initial only: not usable as a first name |
| Jos├⌐ | José | Fix encoding before anything else |
Strip for display: Inc, Inc., LLC, Ltd, Ltd., Limited, GmbH, AG, SA, S.A., BV, Pty Ltd, PLC, Corp, Corporation, Co., Holdings, Group (only when it is a suffix and the remainder is still recognisable).
Keep: "The" at the start only when it is how the company refers to itself. Brand casing like "eBay" or "iRobot" should be kept exactly as the company writes it on its site.
| Status | Action for cold email |
|---|---|
| Valid | Keep |
| Invalid, unknown mailbox | Remove |
| Catch-all (accept-all domain) | Keep for small Tier 1 lists; remove for volume campaigns or send to them last |
| Role address (info@, sales@, hello@, admin@, support@, careers@) | Remove |
| Disposable or temporary domain | Remove |
| Personal domain on a B2B list | Remove, or keep only if the person is a sole founder and the domain is their business |
| Previously bounced | Remove |
Flag for review when:
When merging, keep values from the record with, in order: verified email, most recent update, most filled columns. Never merge two people who share only a first name and a domain.
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.”
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.
Use it when a prospect or contact list needs cleaning before outreach or import.
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.
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.
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.
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.
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.
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.
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.
The skill gives your agent the playbook. Penny, the Prosyo AI SDR, runs plays like this for you every day across LinkedIn and email.
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.