The ABM & Buying Intent Playbook
Account-based marketing fails when it is just a target list and a hope. It works when you concentrate effort on high-fit accounts and time it to the moment they are actually in-market. This is a plug-and-play workflow to build a composite buying-intent score from signals you can get for free, then turn it into a coordinated play across the buying committee. Apollo, Google Sheets, and Claude. The prompts and the steps are below.
ABM has two failure modes. The first is a target list with no timing: you market to two hundred logos all quarter, most of whom are not buying anything, and call it account-based. The second is intent data bought from a vendor for six figures that surfaces accounts “researching your category” with no fit filter and no committee map, so your SDRs chase ghosts. Both burn the budget and the team's belief in the motion.
The play that works multiplies three things, and missing any one stalls it. This is the whole playbook in one line.
Priority = Fit × Intent × Reach. Fit: does the account match your ICP. Intent: is it in-market right now. Reach: can you actually get to the buying committee. Intent without fit is noise. Fit without intent is early. Both without reach is just frustration. You score the first two and engineer the third.
And here is the part the vendors will not tell you: you do not need a six-figure intent platform to start. A credible composite intent score can be assembled from signals you can get cheaply or free — leadership changes, open GTM reqs, funding, technographic shifts, your own first-party engagement, and review-site activity. Claude turns that pile of signals into a score and a defensible “why now.” These are the same trigger signals the Data Quality Playbook taught you to capture; here you weight and combine them.
What to buy, what to build
Apollo + free sources
Leadership changes, hiring, funding, technographics, and your own engagement are all gettable without a six-figure intent platform.
Claude + Sheets
The composite Fit × Intent score and the why-now is judgment you own and can tune — not a vendor's black box you cannot inspect.
Prospecting Engine
Tier the accounts, map the committee, and hand the play to a human-approved outreach motion. Owned end to end.
Five stages: Score fit against your ICP, assemble the intent signals, score intent into a tier and a why-now, map the buying committee, then orchestrate the play by tier. Fit narrows the field; intent times it; the committee map makes it land.
Stage 1 — Score fit
Start by narrowing, not broadening. Fit is the cheap filter that keeps intent honest: a high-intent account that does not match your ICP is a distraction, not an opportunity. Codify the ICP, pull matching accounts from Apollo, and let Claude score the match so the line is consistent rather than a gut call.
You are scoring how closely each account matches our Ideal Customer Profile. ICP definition (edit these to your ICP before running): - Stage: Series A through D - Revenue: $3M-$120M ARR - Headcount: 50-1000 - Sector: B2B SaaS - GTM maturity: has a RevOps or GTM function, or is hiring one For each account return, tab-separated: account fit_score fit_reason - fit_score: 0-100, how closely the account matches the ICP above. Weight stage and sector most heavily. - fit_reason: one short phrase naming the strongest match, or the disqualifier if the score is low. Return only data rows. No header, no commentary. Input, tab-separated: account stage revenue_range headcount sector has_revops Rows: [PASTE ACCOUNTS]
Stage 2 — Assemble the intent signals
Intent is not one number you buy; it is a pile of small signals you assemble. Stand up a signals tab — account, signal_type, signal_date, source, detail — and feed it from sources you can get for free or cheap:
- Leadership & hiring. New CRO/CMO and open RevOps, GTM-engineering, or marketing-ops reqs — pulled from Apollo and job boards. The strongest, freshest signals you have.
- Funding & growth. Recent rounds and headcount jumps — fresh capital becomes a buying budget within a quarter.
- Technographics. An account adding or dropping a competing or adjacent tool — a category they are actively shopping.
- First-party engagement. Pricing-page visits, repeat email opens, webinar attendance — the highest-quality intent because it is yours and unambiguous.
- Review-site activity. G2 or category-page movement — weaker, but a useful tiebreaker.
Stage 3 — Score the intent
Now turn the pile into a number, a tier, and a sentence. Weighting and recency are the whole game: a new CRO last week beats a webinar signup last quarter. The prompt encodes both, the same way the Prospecting Engine's priority logic does.
You are computing a composite buying-intent score for target accounts from their recent signals. Recent signals count more than old ones. Signal strength (stronger = more in-market): - New CRO or CMO appointed: very high - Open RevOps / GTM-engineering / marketing-ops req: high - Recent funding round: high - Technographic change in our category (added or dropped a competing or adjacent tool): high - First-party engagement (visited pricing, opened 2+ emails, attended a webinar): high - Review-site or G2 activity in our category: medium - General headcount growth: low Recency rule: a signal in the last 14 days counts full weight; 15-45 days, half weight; older than 90 days, ignore. For each account return, tab-separated: account intent_score tier why_now - intent_score: 0-100, the signals combined by strength and recency. - tier: P1 if 70+, P2 if 40-69, P3 if 15-39, otherwise "watch". - why_now: one sentence a human could actually send, grounded only in the signals provided. Invent nothing. Input, tab-separated, one line per signal, grouped by account: account signal_type signal_date detail Rows: [PASTE SIGNALS]
Combine fit and intent into a single account priority in the sheet.
// Account priority = fit x intent, normalized to 0-100. // fit tab: account in A, fit_score in B. intent tab: account in A, intent_score in B. =ROUND( VLOOKUP(A2, fit!$A:$B, 2, FALSE) * VLOOKUP(A2, intent!$A:$B, 2, FALSE) / 100 ) // Tier the combined score =IFS(B2>=60, "Tier 1", B2>=30, "Tier 2", TRUE, "Tier 3")
Stage 4 — Map the buying committee
This is the reach term, and it is where most ABM quietly fails: a perfect account with one contact is not reachable. For every priority account, map who sits on the committee, what each one owns, and where the gaps are — using the same segments you built in the earlier playbooks.
You are mapping the buying committee for a priority account and the angle that moves each member. For the contacts I paste, return one row per contact, tab-separated: name title committee_role segment angle - committee_role: Economic Buyer | Champion | Technical Evaluator | Blocker | End User - segment: GTM Ops Leaders | Sales Leadership | Marketing Leadership | Growth & Marketplace | Client Success | Finance & Founder - angle: the one business lever this person owns that our offer affects, in a short phrase (e.g. "forecast accuracy", "pipeline quality", "net retention", "GTM efficiency"). Then check for gaps. If no Economic Buyer or no Champion is present in the list, add a final line for each missing role: GAP -- find this person before running the play Return only data rows. No commentary. Input, tab-separated: name title account Rows: [PASTE CONTACTS AT THE ACCOUNT]
Stage 5 — Orchestrate the play
Tier dictates effort. Do not run the same motion on every account — that is how ABM collapses back into spray-and-pray with extra steps.
- Tier 1 — full committee. Highest fit × intent. Multi-threaded, multi-channel, exec-sponsored where you can. Personalized to each committee member's angle.
- Tier 2 — champion + economic buyer. Strong on one axis. Reach the two roles that move a deal; earn the rest.
- Tier 3 — nurture. Fit but not yet in-market. Keep in touch with content until a signal fires and they promote into Tier 2.
The tiered, committee-mapped accounts are exactly what the Prospecting Engine runs: each contact becomes a step, the angle becomes the message, and every send is human-approved. Fit × intent in, a ranked outreach queue out.
Make it run every week
- Manual, free. Each week, refresh the signals tab, re-run the intent prompt, re-tier. Accounts promote and demote as their signals move — your list is always pointed at who is in-market now.
- Scheduled, with the API. An Apps Script trigger pulls fresh signals, calls Claude for fit, intent, and committee, and writes the tiered account list. New Tier 1 accounts surface the morning they cross the line.
What good looks like
- Every account carries both a fit score and an intent score — you never act on one without the other.
- Intent is recency-weighted: this week's signals outrank last quarter's.
- Every Tier 1 account has a mapped committee with a named Economic Buyer and Champion — gaps are flagged, not ignored.
- Each committee member has a message angle tied to the lever they own.
- Tier dictates effort; no account gets the same motion as every other.
- Accounts promote and demote automatically as signals change — the list is never stale.
ABM is not a bigger list, it is a sharper one, pointed at the accounts that are in-market and reachable right now. Score fit to narrow, score intent to time it, map the committee to land it — and let the engine do the reaching. That is account-based marketing that actually earns the name.