Inform HoldingsBusiness rates advisory
From spreadsheet to sequence: an AI lead engine for Inform Holdings
Operosus built a campaign builder and AI outreach engine for Inform Holdings (CPMAS Group): CSV ingestion, Apollo enrichment, per-prospect AI research, individually generated emails and automatic routing to the right salesperson's sequence. 1,200+ companies enriched, 5,100+ contacts processed, 1,500+ personalised emails generated.
companies enriched
- companies enriched
- 1,200+
- contacts processed
- 5,100+
- personalised emails generated
- 1,500+
Inform Holdings, part of the CPMAS Group, advises UK businesses on business rates. A large slice of their pipeline comes from deadline leads: ratepayer cases tied to specific 2023 Rating List entries where the window to act is closing. The leads arrive as spreadsheet exports, hundreds of rows of company names, addresses and case types, with no contact details and no obvious owner inside the sales team.
The problem: good leads, slow hands
Before this build, every batch meant the same manual slog. Someone had to look up each company, find a decision maker, work out which account manager should own it (the team has specialists by sector and by incumbent rating agent), then write an email worth sending. With hundreds of rows per batch and a hard deadline attached to every case, the maths never worked. Leads aged, allocation was inconsistent, and outreach defaulted to generic templates because personalised emails at that volume were not feasible by hand.
What we built
A campaign builder and AI outreach engine: a React and TypeScript front end on Vercel, an Express API on Render, and Supabase as the datastore, integrated with Apollo for enrichment and sending and with an LLM layer for research and drafting.
The pipeline runs in stages:
- CSV ingestion and qualification. The tool parses each batch, normalises messy headers and lead-type values, and qualifies rows against the active deadline lead types so dead rows never reach enrichment.
- Apollo enrichment. Qualified companies are matched in Apollo and decision-maker contacts are pulled in, turning a name-and-address row into a reachable prospect.
- AI research per prospect. For each contact, the engine gathers context on the company and its situation, so the email that follows has something real to say rather than a mail-merged greeting.
- 1-1 email generation. Every email is generated individually from that research. No shared template, no token-swap personalisation.
- Routing per salesperson. A configurable rules layer maps each lead to the right account manager: sector specialists, rating-agent specialists, and caseload allocation, with each account manager tied to their own exact Apollo sequence so outreach sends from the right person's mailbox under their name.
The routing rules live in configuration, not code paths scattered through the app. When the team changed, account managers leaving, a sequence moving to a different sender, the fix was a config update, not a rebuild.
Day to day
Marketing drops a leads CSV into the tool. It qualifies the rows, enriches them through Apollo, runs research and drafting, and proposes the allocation across the sales team. The team reviews, then pushes each lead into the matching account manager's sequence. What used to be days of manual lookup and writing per batch is now an upload, a review and a click. The sales team's involvement starts where it should: when a prospect replies.
Results
<!-- [METRIC - confirm: Michael] The 1,200+ / 5,100+ / 1,500+ figures below are claimed from the live database but not independently verified by us, and Michael's OK is required before they ship publicly (see docs/PROOF_POINTS.md section 4 and HANDOFF sign-off gate). -->The production system has so far:
- enriched 1,200+ target companies
- processed 5,100+ contacts
- generated 1,500+ personalised, individually researched emails
Those are volumes from the live database, not projections. Every one of those 1,500+ emails was written for one named person at one company, sent from the account manager who actually owns the relationship. At that scale, the alternative is not "a team writing the same emails more slowly". The alternative is those emails never being written at all.
<!-- [METRIC - confirm: Michael] reply and meeting rates from the deadline sequences: not documented anywhere we can read. -->The pattern
This is a productised pattern, not a one-off: take a messy list, enrich it into real people, research each one, generate genuinely individual outreach, and route it to the right salesperson automatically. The business-rates specifics (lead types, specialist routing, Apollo sequences) are configuration on top of a reusable engine. If your pipeline starts life as a spreadsheet and dies in a backlog, the same engine applies: swap the enrichment criteria, the routing rules and the sequences, and you have a lead engine that turns raw lists into personal outreach at a volume no team can match by hand.
How we did it
Related product
Individually researched outreach at volume is exactly what Emailwell does off the shelf.
See EmailwellNext case study
Purple
The tender system that became Bidwell