I built the system that ran my team’s busywork. Then I found what it was hiding.
My best closer spent a Tuesday morning building account briefs by hand, twenty minutes an account. By lunch he had researched six companies and talked to none. The busywork was the symptom. The real problem: nothing told the team which accounts mattered, what to work first, or what to say when they got there. Here is the whole system, end to end, and the version that embarrassed me first.
What this system actually moved, and what it taught me while it was breaking. Both up front, because the lessons are the point, not a footnote.
My rebuilt model scored big companies high and small ones low. When I opened it up, it had learned exactly one thing: big companies are big. That failure built the Signal Library. Every score now shows its reasons, so reps audit it instead of overriding it.
The first scheduled run died on a step that quietly needed a person logged in. I hunted down every place the system assumed a human and removed it. That was the day the agents actually became agents.
I let the system fill its own data gaps from a source that was itself unreliable, and it served bad data with a straight face. The auto-heal stayed off until the source earned the trust back.
The busywork was the symptom. Here is the disease.
Pick the account, enrich it, score it, write the brief, guess the forecast. Five jobs, all by hand, and it is tempting to stop the diagnosis right there: too much busywork. I did, at first. But grounding means running the whys until you hit something worth building against.
Why was my closer researching for twenty minutes an account? Because nothing told him which accounts deserved his morning. No tiering. Why did nobody trust anything to decide for them? Because account selection scored old wins that don’t repeat, pointing good reps at logos that were never going to buy, and the forecast sat at 65%, held up by whoever said their number the loudest. No prioritization anyone believed. And why did every touch start from scratch? Because the context lived in nine open tabs instead of on the account. Nothing to drive the action.
So the grounded problem was never the twenty minutes. A sales team’s scarcest resource is attention, and nothing was allocating it. The busywork was just the tax the team paid for that every single day. A motion that only moves when someone pushes it is not a system. It is a person with a to-do list.
The false starts, because they are the point. First I tried to make the busywork faster: better templates, a tighter cadence. A twenty-minute task on a nicer template is still twenty minutes, and it still stops when the person stops. Then I rebuilt the scoring model and it embarrassed me. It scored big companies high and small companies low, and when I pulled it apart it had simply learned that big companies are big. It was size, wearing fit’s clothes. That was the lesson that changed everything after it: never trust a score you cannot explain.
Score on data reps trust, with the reasons attached.
I threw out the history and rebuilt the score on ICP-only data, the accounts that actually look like our wins, not every closed-won in the table. Octave is the ICP brain behind that: who fits, and the positioning for why. Then I split the score into three signals and kept them apart, so one could not hide behind another.
Buy the plumbing. Build the edge.
Most of this is tooling a growth-stage GTM org already pays for. The work was not buying more tools. It was wiring the ones I had into something that runs itself.
The machine runs the execution. The people keep the call.
The Split, drawn on purpose: enrichment, scoring, and brief-writing go to the machine, because they are repeatable and safe. The account, the conversation, and the close stay with the rep, because they carry context, relationship, and consequence. The brief that took my closer twenty minutes now exists before he asks. The judgment it feeds was never the machine’s to make.
This is the Split in one artifact: everything below the fold is machine work, and everything it exists for is a human conversation.
A build without a motion is dead. This one became the way we work.
I packaged the enrichment, the scoring, and the brief engine as autonomous agents. They run on their own, which is the test that matters: the system stopped being something I operate and became something that operates. Reps audit the score, work the account, and attest the forecast on a weekly rhythm, not as a side experiment. And the sixty-plus reports update themselves, so someone else can run all of it without me in the room.
Here is one account moving through the normalized motion, start to finish. The names are illustrative; the flow is exactly what the system hands a rep before they ask.
The Signal Library on the same card, so the score explains itself:
• New VP of Sales announced three weeks ago; twelve rep openings posted since.
• Closed-lost in the CRM fourteen months ago; the stated reason was timing.
• Four distinct people from the account on the pricing page this month.
• Trial workspace active: six sequences built, two connected to the CRM.
Three weeks into the seat and twelve rep openings already posted. That is not a congratulations situation, that is a ramp-math situation.
New sales leaders usually find the same thing first: pipeline built on activity, a forecast built on hope, and no shared read of what a real deal looks like.
And tooling is rightly last on a month-one list.
The math that makes it urgent: every unramped month per rep is a quarter of lost coverage, and at twelve heads that compounds faster than the hiring plan assumes.
Your team looked at us fourteen months ago and walked on timing. I wrote up what has changed since, attached. No response needed unless the timing changed too.
Every line maps to a letter of SMART Prospecting: the signal wired to the problem, the cost quantified, the empathy under ten words, and a deposit instead of an ask. The rep’s job starts at edit-and-send, not research-and-write.
Every run lands on the number, and the number teaches the system.
Tied back is not a dashboard. It is two loops with owners. Every call and every CRM outcome pushes back into Octave, so the ICP and the personas get re-read constantly instead of annually. And once a month, the QA agents put the model itself on trial: what it suggested, what the rep actually did, and what happened. The forecast gets defended line by line because every line carries its reasons, and each cycle’s receipts feed the next Ground. That loop is GIANT, in full.
Every closed deal, lost deal, and call transcript flows back into the ICP brain. Say three straight losses in one segment all cite the length of the security review: the persona read gets updated, that segment’s weighting shifts, and next month’s ranked list looks different. The ICP is a living document because the data that built it never stops arriving.
The QA agents read all three columns: what the system recommended, whether the rep took the suggestion, and how it turned out. That review runs monthly, so the model improves on evidence instead of opinion, and the mistakes get promoted into fixes instead of folklore.
| THE SYSTEM SUGGESTED | WHAT HAPPENED | THE UPDATE THAT SHIPPED |
|---|---|---|
| Reach out now: trial usage spiking on a scored account. | The rep got to it a week later, and a competitor’s call got there first. | Usage-spike accounts now surface same-day at the top of the queue, flagged as time-boxed. |
| Score of 82, strong fit, worked in full. | Six touches, no meeting. The usage signal came from a junior tester’s sandbox, not a buyer. | Seniority weighting added to the product-usage signal, so a sandbox can no longer look like a committee. |
| A SMART opener wired to a funding announcement. | Reply in two hours, meeting booked the same week. | The funding-signal template promoted to the default for that trigger, and the pattern fed back into Octave’s messaging. |
See where I ran this.
This engine sits under a revenue number. Here is what it moved, and the rest of the fifteen-year arc.