The brief
Every tool you'd expect was already in place. HubSpot, Clay, an outbound platform, a meeting scheduler, Slack notifications wired into half the channels. On paper, the funnel was modern. In reality, AEs were spending the first two hours of every morning manually scoring inbound leads, hand-writing replies to outbound responses, and arguing about whose lead was whose.
The CRO had a number in their head: if their five AEs could each get 90 minutes back per day, they could run 30% more pipeline with the same team. We were hired to find those 90 minutes.
What was actually broken
Five things, all small, all compounding:
- Forms went into HubSpot raw. Enrichment was a 24-hour batch job, so leads sat without context overnight. AEs would either work them cold or skip them.
- Routing was an Excel sheet. Territory rules, vertical preferences, who was on holiday — all of it locked in a doc the RevOps lead maintained by hand.
- Outbound replies came back to a shared inbox. AEs took turns triaging. Half the replies were positive but ambiguous; the other half were polite no's that nobody bothered to mark as such.
- The CRM lied. Stage transitions weren't being logged consistently. Half the dashboards were wrong by Friday. Nobody trusted the numbers.
- Handoffs were verbal. SDR → AE was a Slack message, not a record. AE → CSM was a calendar invite, not a record. Everyone re-asked the customer the same five questions every time.
"We had a dashboard for everything and a system of record for nothing." — RevOps lead, week one
The shape of the system
We didn't replace any of their tools. We rewired what sat between them. The new spine had five jobs:
- Real-time enrichment. Form fill → Clay → HubSpot, end-to-end in under 90 seconds, with firmographic data, tech stack signals, recent funding, and a confidence score on each field.
- Code-defined routing. A routing service (~300 lines of TypeScript on Cloudflare Workers) reads the lead, the rules, and the team calendar, then assigns deterministically. The RevOps lead updates rules in a single config file. No more Excel.
- LLM-classified inbound replies. Every reply to an outbound campaign is read by Claude with the original message as context. Output: a category (positive / referral / not-now / not-interested / out-of-office / unsubscribe), a confidence score, and a suggested next action. Below the confidence threshold, it lands in a human queue with the model's reasoning attached.
- CRM hygiene on a clock. A nightly job sweeps for missing fields, stale stages, broken handoffs and silent deals. Some it fixes itself. The rest land in a single "things to look at" Slack channel for RevOps, ranked by impact.
- Handoffs as records. SDR → AE and AE → CSM transitions are now first-class objects, with a structured handoff note generated by Claude from the recent conversation history and approved (or edited) by the human in a single click.
What changed for the team
The AEs noticed it in the first two weeks. Morning admin dropped from 90+ minutes to under 25. The "is this lead good?" question got answered before they opened it. Outbound replies came in pre-triaged, so they only saw the ones worth responding to, with a suggested response drafted and ready to edit.
The CRO noticed it in the dashboards. Pipeline figures started matching what was actually in the system, because the system actually reflected what was happening. Forecasts got tighter. Reviews got shorter.
The RevOps lead noticed it last — because their job changed from maintaining the funnel to improving the funnel. They spent month three running experiments instead of fighting fires.
The outcome
The 90-minute target the CRO had picked? They hit it inside six weeks. The pipeline lift came a quarter later — because some of the time saved went into actual selling, and some of it went into things like better discovery calls and more thoughtful follow-ups. Both showed up in close rates.
What we learned
Don't replace the stack. Rewire it.
The client was already paying for everything they needed. The fix wasn't another tool; it was the connective tissue between the ones they already had. Most "RevOps transformations" we see are platform migrations dressed up as solutions. They almost never are.
The LLM is the easy part. The contract is the hard part.
Claude classifying a reply is trivial. The hard part is deciding what categories matter, what the confidence threshold should be, what to do below it, and how to teach the model your specific definition of "qualified". That's a week of sitting with the sales team. There is no shortcut.
If the CRM lies, automation will amplify the lie.
We almost shipped the first version before noticing that the source-of-truth stage data was unreliable. Automation built on bad data writes bad data faster. Three days of cleanup at the start saved three months of cleanup later.
The one thing to take away
Most B2B funnels don't have a tooling problem. They have a connective-tissue problem. The hours you'd save by buying another platform are tiny compared to the hours you'd save by making the platforms you already own talk to each other properly.