← Blog

How do you use Claude to clean up a CRM and sort a list?

Upload the export, describe the job in plain language, push back when the first pass is thin, and check every judgment call yourself. No agent needed.

4 min readBy Deisy LewisRevOps

Key takeaways

  • For one-off CRM and list jobs, Claude with a plain-language brief is often faster than building filters or an agent.
  • A list with no record IDs can be matched against a full CRM export by fuzzy matching, with owner filters, legal suffixes stripped and similarity scores.
  • When the first pass looks wrong or thin, push back with a specific instruction or an example. The second pass is usually right.
  • Claude removes the grunt work, not the judgment. A person still reviews every match and every edge case before anything changes in the CRM.

You use Claude to clean up a CRM by uploading the export, describing the job in plain language, pushing back when the first pass looks wrong, and reviewing every judgment call yourself before anything changes. For one-off jobs such as matching a remove list or splitting a territory, that is faster than building filters, and you do not need an agent.

I wrote up two of these jobs on my LinkedIn, along with the list work Claude saves me time on every week. This post puts them together.

When is Claude the right tool for CRM and list work?

Claude is the right tool when the job is a one-off that would otherwise mean an afternoon of filters, manual counting and copy-paste. Matching a list against the CRM, splitting accounts between reps or cleaning a file before a campaign all fit. You upload a CSV, say what you need, and check the result.

Everyone is talking about AI agents automating the whole GTM stack. Most of the time I just ask Claude to sort a spreadsheet. That is fine. Sometimes the best use of AI is not building an agent; it is skipping the grunt work.

The weekly list jobs are the simplest examples, and each takes a couple of minutes with no workflow setup:

  • Split a list into separate lists by rep territory.
  • Group contacts by job title or industry.
  • Remove all .edu emails before a campaign goes out.

You can do all of that in Clay too. Claude is faster for it because there is no filter to set up and nothing to re-run.

How do you match a list with no record IDs against your CRM?

You match a list with no record IDs by uploading it with a full export of the CRM and asking Claude to fuzzy match the two. Fuzzy matching compares names by similarity instead of exact spelling, so "Acme Holdings LLC" can still find "Acme Holdings". Filtering by owner and stripping legal suffixes first makes the matching far more reliable.

A client sent us a remove list of 118 companies to delete from HubSpot. There were no HubSpot IDs in the file; every record showed -1. The old way would have been to search for each name, hope the spelling was close, and delete records one at a time.

Instead, I pulled a full export of more than 4,200 companies, uploaded it to Claude with the remove list, and asked it to fuzzy match the two. It filtered by owner, stripped legal suffixes and ran similarity scores across every record. The output was two clean files, contacts first and companies second, formatted for HubSpot's import-to-delete workflow.

It took 30 minutes. The same job had taken our last RevOps consultant three hours.

What do you do when the first pass looks wrong?

When the first pass looks wrong or thin, push back with a specific instruction or an example. Claude's first attempt is a draft. Telling it exactly what to try harder on, or showing it one worked case, usually gets the second pass right, and that second pass is where most of the time savings come from.

On the cleanup, the first pass returned eight matches, which was too low for a list of 118. I told it to try harder on partial name matches, look for key words and flag anything above 70% similarity. The second pass found 19.

On a territory list, the mistake was different. A client sent 1,500 companies spread across seven reps, and I needed the top 200 manufacturing companies with 50 to 500 employees for our rep to work. The original rep had to stay on as secondary owner, and I could not gut any one rep's book, so the 200 had to be pulled proportionally.

I enriched the list in Clay, uploaded it to Claude and gave it the brief: filter to manufacturing, headcount 50 to 500, pick 200 in proportion to each rep's account count, add a primary owner column for our rep and a secondary owner column with the original rep, and split the result into one file per rep.

The first try pulled an even number from each rep. So I gave it an example: "Rep A has 300 accounts. Rep B has 60. Pull more from A, fewer from B." The second try was exactly right. Thirty minutes, against at least two hours of spreadsheet work, and eight clean files ready for Clay and then HubSpot.

Where do you still need a person?

You still need a person for every judgment call: reviewing matches before anything is deleted, deciding edge cases and checking that the output does what the brief meant. Claude removes the hours of grunt work before the judgment. It does not remove the judgment, and it should not be trusted to.

On the cleanup, I reviewed all 19 matches by hand. Two were false positives: a different union, and a different foundation with a similar name. I confirmed the other 17. Those two would have been deleted by a process that trusted the similarity score.

That is the actual use case for AI in RevOps. Not replacing judgment, but replacing the two hours before you get to use it. Keeping the CRM clean as a habit, rather than as a rescue, is what we build in RevOps, and what a RevOps control plane does in HubSpot covers the rules that stop the mess coming back.

What should you try first?

Pick the last manual CRM task you did by hand, the one that took an afternoon. Export the data, upload it to Claude, and write the brief you would give a new colleague, step by step.

When the first pass comes back, check it properly. If it is wrong, tell Claude exactly what is wrong or give it one example. Then review every row that changes something before you import it.

Questions, answered.

Do you need an AI agent for this kind of work?

No. Everything here is a single conversation with Claude and a file upload. An agent makes sense when the same job runs every day without anyone watching. For a cleanup or a territory split you do once, a clear brief and a careful review are faster than building anything.

Is fuzzy matching accurate enough to delete records?

Not on its own. Fuzzy matching finds the likely matches quickly, but similar names catch the wrong records too. Use it to build the shortlist, then review every match by hand before you import anything that deletes. In our cleanup, that review caught two false positives.

Why use Claude instead of Clay for list work?

For quick, one-off jobs Claude is often faster, because there is no filter setup and nothing to re-run. You upload a CSV and say what you need. Clay is still the right place for enrichment and anything that runs repeatedly, which is why we often enrich in Clay first and do the sorting in Claude.

Part of

RevOps. Pipeline numbers everyone trusts.

Show us your pipeline report.

Thirty minutes. Share your screen and we will tell you what we see: where records disagree, where leads wait, and what we would fix first.

Or call +1 317 414 1157, or pick a time without the form.