Clean the CRM weekly with an agent that proposes fixes you approve
Once a week, this agent reviews the CRM for duplicates, bad values, gaps and dead deals and proposes fixes that a person approves before anything changes. Cleanup becomes routine instead of a rushed purge.
Paste this into ChatGPT, Claude or your agent tool. See the prompt
- Pipeline Hygiene / CRM
- intermediate
- RevOps
- Sales leader
- Founder
- Category
- Pipeline Hygiene / CRM
- Difficulty
- Intermediate
- Est. cost
- A couple of dollars per weekly run on a mid-tier model, plus enrichment credits (sourced, author estimate)
Works with
Problem
CRM cleanup is owned by RevOps but rarely scheduled, so it happens as a rushed purge before a board meeting. Duplicates, non-standard values and dead deals pile up in between.
Setup
A scheduled weekly Claude Code run reads the CRM over MCP, applies a written rulebook, and sorts candidates into five buckets: duplicates, non-standard values, gaps, orphan records and dead deals. It writes a proposal list with evidence and a confidence score per line and posts it to Slack. A separate executor writes only the lines a human ticks and logs every change.
Prompt
Starter prompt by The GTM Agent Weekly, written from the setup described on this page. It is not the source's own prompt; see the source link below for their write-up.
# ROLE
Once a week you review the CRM against our rulebook and propose fixes. You never change
anything yourself; a person ticks the fixes to apply.
# INPUTS
- {{CRM}}: read access to accounts, contacts, deals (e.g. HubSpot or Salesforce).
- {{RULEBOOK}}: our written data rules: required fields, allowed picklist values, naming
conventions, what counts as a duplicate, when a deal counts as dead.
- {{CHANNEL}}: where the proposal list is posted.
# TASK
Sort every issue into one of five buckets:
1. Duplicates: records that match on {{DUPLICATE_KEYS}}.
2. Non-standard values: values outside the allowed list, with the suggested standard value.
3. Gaps: required fields that are empty, with a suggested value only if evidence exists.
4. Orphans: contacts with no account, deals with no contact, records with no owner.
5. Dead deals: open deals with no activity for {{DEAD_DAYS}} days or a close date long past.
# OUTPUT (one line per proposed fix)
bucket | record link | current value | proposed value | evidence | confidence (high, medium, low)
# GUARDRAILS
- Proposals only. The executor applies only lines a person ticked, and logs every change.
- Never propose deleting records; propose merge or close instead.
- Low-confidence lines go at the bottom, clearly marked. Replace every {{PLACEHOLDER}} before running. Works with any capable LLM and runner.
Tools
Steps
- Write a rulebook: duplicate matching, canonical values, which gaps are worth enrichment credits, and what counts as a dead deal.
- Schedule a weekly run that reads the CRM and sorts candidates into the five buckets.
- Fill gaps from an enrichment source within a per-run credit budget, as proposals only.
- Post one line per proposed change with evidence and confidence to Slack for tick-to-approve review.
- Let a separate executor write only approved lines and post a change log.
Results
No outcome data is reported. The author gives rough estimates of run cost and review time.
Used in recipes
What goes wrong
Gotchas
- Subsidiaries sharing a parent domain look like duplicates; the author routes those to a human instead of merging.
- Enrichment can silently overwrite human-entered values; the rulebook forbids that.
- Records modified in the last 48 hours and high-value deals are flagged, never auto-proposed, to avoid fighting active reps.
Get 5 like this every week, free.
Real agent setups with sources and failure modes, in one short weekly email.
Free. One email a week. Unsubscribe anytime.
Source and credit
Vikash Koushik, Get Wicked Growth · newsletter
Source dated 2026-09-22 · last reviewed 2026-10-11. Summarized in our own words; see the source for details.