← All work

Case · AI · Data

A CRM clean-up: 160,000+ changes, each one checked, nobody emailed by mistake.

The sales team was not short of leads. It was short of a CRM that could show the leads it already had. In two months I rebuilt the data behind 25,000 contacts with AI pipelines, and every change was checked before and after it was written.

The CRM clean-up update: every contact now has a grade, from ready to use to unusable, with the count in each grade
Role
Designed and ran it
Organisation
Sales team selling to governments
Period
August to October 2026
Scope
25,000 contacts in 7 regions

The situation

Only 18% of the contacts were visible to the sales tools. The other 82% could not be picked as targets, and the tools could not warn that a colleague was already talking to them. In a test, 9 of 15 draft emails were addressed to people a colleague had just contacted; all were caught before sending.

For ten months the website form had saved about 5,300 people in the wrong places: the role in the job title, a guessed city, no organisation. Some organisations existed more than once, and 22,209 contacts had no grade at all.

The approach

Fix the data, not the symptoms, and build it for agents. Every contact gets a grade that says what is missing, so an AI agent knows what to do next. Every change goes through one tool that checks it, logs it and can undo it. The machine flags the doubtful rows, so a person reviews only the exceptions.

What I built

  • A write tool with rollback and more than 100 tests: every change is checked, logged and reversible, and it refuses any write that could add people to an email sequence by accident.
  • A grade for every contact, from "ready to use" to "unusable", that says exactly what is missing, so filling a gap moves the contact up on its own.
  • Built for agentic operations: AI agents filter the contacts by what is missing, then find the employer, add the title or link the account, enrich and qualify the lead, and the contact moves up a grade on its own. A person reviews only the exceptions.
  • Labels you can filter and combine: what the job is about (9 interests), seniority, ecosystem role and region, so a sales question becomes a list in seconds, and each list gets a message written for it.
  • A repair of the report downloaders: 6,586 now recorded correctly (it was 1,153), and 493 more linked to their organisation.
  • Job-change tracking at almost no cost: 2,163 signals checked and 672 updates written, including 508 people who had left their role.
  • A weekly re-run with the same rules, so new contacts are graded as they arrive. About 600 paid checks in total, and no new software bought.

The labels

Interest, seniority and region: a question becomes a list, and each list gets its own message.

Every contact carries three labels: what their job is about (9 interests, from ecosystem strategy to AI and emerging tech), how much power they have (policymaker, decision-maker or champion) and where they work (7 regions).

Combine them and a sales question becomes a list in seconds. Because everyone on a list shares the same job and level, the message can be written for them: the offer that fits that interest, the angle that fits that level, the proof that fits that region.

Combining labels in the CRM: policymakers in Latin America working on innovation policy (16), decision-makers in Europe running startup programmes (217), champions in MENA working on scaleup, trade and FDI (19), and 501 ready targets never contacted

Results

160,000+
changes written, each one checked, with zero people emailed by mistake
1,856
ready-to-use targets found that were missing from the old list; 501 never contacted
100%
of contacts graded, where 22,209 had no grade before

Related

01 · AIAI advisor for companies that need it to actually work

Let's talk about what you're building.

Thirty minutes, no deck. Tell me where it's stuck and I'll tell you honestly whether I'm the right person.

Email is the fastest way to reach me. I read everything.