
AI intent data sounds like it should solve account prioritization for you.
Feed a model every signal you have, get back a ranked list, and work the top of it.
That is the pitch, and it fails in a specific way that I want to name early.
AI does not fix bad intent data.
It makes bad intent data more confident.
If your inputs are anonymous topic surges from a vendor you cannot audit, an AI layer just wraps a guess in better prose and a higher number.
The teams getting real value are doing something narrower and much more useful.
They use AI for the three jobs a score cannot do, and they are strict about which signals the AI is allowed to trust.
This post is that method: how to rank your intent signals by how verifiable they are, how to weight fit and recency, how to read what an account actually cares about, and how to turn all of it into a “why now” your reps will act on.
A quick overview:
/intent-report, /account-engagement, /company-deep-dive and /sales-handoff.Two very different things get marketed as AI intent data.
The thing is: intent signals have been around for more than ten years, and what improved recently is not the data so much as how teams apply it, so the win is in better implementation rather than chasing novelty.
Be precise about what you are asking the model to do.
You have ad engagement, website visits, CRM activity, form fills, and maybe a third-party feed. Merging those into one ranked list with a stated reason per account is tedious, rule-heavy work. AI is very good at it.
Working out what an account cares about, based on which messages it responded to, is a language problem.
This is where a model beats a numeric score outright, and it is the section I care most about below.
Turning an account’s history into one sentence a rep can open a call with is a writing task. A score cannot do it. An AI with access to the real timeline can.
Notice the job that is missing: inventing the score itself.
Ranking accounts by fit and recency is arithmetic, and you want it transparent and reproducible, not generated fresh each time.

This is the step nearly everyone skips, and it decides whether the rest works.
Before an AI touches your signals, sort them by how confidently you could defend them to a skeptical rep.
| Signal | What you can actually prove | How much weight to give AI |
|---|---|---|
| LinkedIn ad engagement (from the Ads API) | A named company interacted with a specific ad on a specific date | Highest. Traceable to one interaction, so a rep can be told exactly what happened |
| Google and Reddit ad engagement | The same account responded on another paid channel | High. Strong as a confirming signal alongside LinkedIn |
| Website visits to buying pages | Someone from an identified company viewed pricing or demo pages | High, but only for the share of traffic you can identify |
| Organic and AI referral traffic stitched to CRM | A known account arrived from search or an AI assistant | Medium. Good context, weak on its own |
| Third-party topic surge | Someone somewhere at a company read about a broad topic | Lowest. Use for widening the net, never as a trigger to call |
The gap between the top and bottom rows is bigger than most stacks assume.
A topic surge does not tell you who researched, on what page, with what job title, or whether they were a buyer at all, rather than an intern writing a report.
It is also lagged.
By the time a surge appears in your dashboard, the research often happened weeks ago.
That is fine for building a wider prospecting pool. It is a bad input for a model that decides who your BDR calls today.
One practical limit to build into your expectations: website visitor de-anonymization typically matches 20 to 40 percent of traffic (per the Syft study), so treat that layer as partial coverage rather than a complete picture.

Gabriel Ehrlich at Remotion has been blunt about what happens when teams stack too many of these layers together.
“Don’t overengineer your LinkedIn Ads accounts. It’s killing your account. It makes everything more expensive.” Gabriel Ehrlich, Remotion, in his LinkedIn post
Having more signal sources is not automatically a better situation, but having more verifiable sources is.
Here is the actual model.
It is deliberately simple because a model a rep can follow gets used.
An account only enters scoring if it passes your ICP. Industry, size, region, and any hard disqualifiers.
Skip this, and your top-ranked accounts will include agencies, competitors, job seekers, and students, all of whom engage enthusiastically and buy nothing.
The approach here should be to identify people already engaging with relevant content, qualify them against the company and job title with an AI step, and only then enrich the ones that survive.
He reports one opportunity for every 44 people he contacts, which is what precision buys you.
The same sequencing applies to prioritization.
Qualify first, score second.
Intent on its own is a weak predictor.
Intent plus a confirming signal is a much stronger one.
So write the rule explicitly: an account is a priority when it shows an intent signal and at least one of the following.
The committee point matters because the average B2B buying committee is 11 people, as per Gartner.
One person clicking once is not an in-market account.
Four people from three teams? That is a different story.
Tas Bober makes a sharp version of this point about depth of visits.
In the ABM Bootcamp, she describes tracking multi-touch patterns, where an account returning for a second and third visit across landing pages is a strong buying signal even when nobody converts.
![]()
Repeat depth beats a single big spike.
Intent decays, and cumulative scores hide it.
An account with a huge all-time score and nothing in the last 60 days is not hot.
It is a re-engagement play, and calling it as though it were in market makes your team look uninformed.
This is why ZenABM keeps two scores rather than one.
The current engagement score measures engagements against impressions in a window you choose, and the total score covers all time.
The gap between them is the signal.
Rising current score on a modest total means an account is heating up right now, which is the one you route to sales today.

Sort the surviving accounts by current engagement, then hand the top slice to sales.
Keep the slice small enough to actually work.
A list of 200 “priority” accounts is not a priority list.
Kyle Poyar’s read in Growth Unhinged is that account-based motions pay off most for companies above roughly $50,000 ACV with an addressable market under 20,000 companies.

At those numbers, the whole point is depth on a few accounts, so ruthless cutting is the strategy, not a compromise.
He also ranks intent-based outbound second among the GTM channels B2B companies are investing in for 2026, with 49 percent running it as an experiment, which tells you the competition for these accounts is about to increase.
Most intent data is quantitative.
It tells you how much an account engaged.
That ranks accounts, and then leaves your rep with nothing to say.
Qualitative intent tells you what the account engaged with, and that is what writes the first line of the outreach.
ZenABM captures this by letting you tag campaigns with intent themes.
You define the themes around your real buying triggers, so Analytics, Security, AI features, pricing pressure, whatever your product competes on.
Any account that engages with a tagged campaign inherits that theme.


The difference in practice is large.
A quantitative system says: Acme scored 87, call them.
A qualitative system says: Acme engaged four times this month, all with security and compliance messaging, and nobody there has touched the pricing content.
The second one tells a rep how to open the call, and it is auditable, because every theme traces back to specific ads the account actually interacted with.
This is also where an AI layer earns its keep.
Reading a mixed history of touches and summarizing what an account cares about is a language task, and it is the one thing a numeric model structurally cannot do.
You can push the resulting theme into your CRM as a property so it sits on the company record next to the score.

You can do a version of this in a spreadsheet, but the reason to use AI is that the whole model runs in one instruction.
The cleanest setup is to connect your data to the AI directly rather than exporting files.
The ZenABM MCP server does that: MCP is the standard that lets an AI client query an outside data source, so Claude Code, Claude Desktop, or ChatGPT can read your live LinkedIn ads and ABM data.

The endpoint is https://app.zenabm.com/api/mcp with a Bearer token or OAuth, and running /init writes a CLAUDE.md so the agent keeps standing context about your account.

Once connected, this prompt runs the whole model:
Pull the last 90 days of company-level ad engagement. Keep only accounts matching my ICP (B2B SaaS, 200 to 2000 employees, North America and Western Europe). For each remaining account give me: current and total engagement score, number of distinct people who engaged, number of distinct campaigns engaged with, the intent themes they carry, and the date of the last interaction. Then rank them, but only include accounts that show engagement from more than one person or across more than one campaign. Exclude any account with no interaction in the last 45 days. Show the underlying numbers for each row so I can check the ranking.
What the result would look like:

The last sentence is doing real work.
If the model cannot show the numbers behind a rank, it did not compute the rank.
For the “why now” line, ask separately rather than bundling it into the ranking prompt:
For the top 15 accounts from that list, write one sentence per account explaining why a rep should call them this week. Base it only on what actually happened: which ads they engaged with, which themes, how many people, and when. Do not speculate about their business priorities or invent context. If an account has a weak reason, say so instead of writing something generic.
That instruction to refuse weak reasons is the difference between a usable call list and 15 sentences of filler.
The MCP server also ships 15 analysis workflows as slash commands, so you do not have to write these prompts every week.
The following wporkflows matter most for account prioritization:
/intent-report shows who has shown intent, ranks the feeders by how many fresh intent accounts each generates per dollar, and tells you which themes actually predict deals./account-engagement sorts every account into warm, cold, budget hog or bad fit, with an exclusion list and the total spend you would save./company-deep-dive returns everything on one account: campaign membership, intent, stage history, one merged timeline, people, deals, and a single verdict on whether to hand it to sales, keep nurturing, or exclude it./sales-handoff produces today’s call list, scored by stage moves, fresh intent and engagement spikes, each row carrying a talking point from that account’s real journey.If you want a package of four skills instead of the server:
/plugin marketplace add ZENABM/linkedin-abm-skills
/plugin install linkedin-abm-skills@zenabm

And if you would rather not set anything up, Zena, the AI chatbot inside ZenABM, answers the same questions in plain English.


A ranked list that a human has to check every morning stops being checked by week three.
So encode the model as a threshold instead.
ZenABM‘s ABM stages let you define the stage names and the exact conditions, built from ad engagement, CRM properties, form fills, webinar signups, or deal stages in any combination.
Set the rule once.
For example, an in-ICP account with 5 or more clicks or 10 or more engagements in 30 days moves to Interested.

That stage then syncs to HubSpot or Salesforce as a company property, alongside the intent theme, so the record a BDR opens already carries both the priority and the reason.

If your team runs enrichment and sequencing in Clay, the same accounts flow out by webhook.

The engagement journey is what makes the handoff credible. It maps every ad touchpoint against CRM deal events on one timeline, so a rep can see the actual sequence rather than being handed a number.

Intent rarely lives on one channel either, which is why ZenABM stitches Google Ads, Reddit Ads, organic traffic and AI chatbot referrals into the same account view. An account that saw four LinkedIn ads and then arrived through an AI assistant is further along than the LinkedIn data alone suggests.
Four rules I would not run this without.
If a rep asks why an account ranked third and the honest answer is “the model said so”, you have rebuilt the black box you were trying to escape.
Every rank should decompose into fit, signals, and dates.
Under about 10 accounts in a segment, there is nothing to conclude.
ZenABM’s /revenue-attribution skill states this outright rather than reporting a confident number off four companies, and your own analysis should hold the same line.
Once a quarter, look at which intent themes actually preceded closed deals.
Some of your themes are buying triggers, and some are just interesting content, and only the deal data tells you which is which.
Competitors research you.
Agencies engage with everything.
Candidates read your careers-adjacent content.
The fit gate catches most of it, but review the top of your list by eye each month.
The useful version of AI intent data is less magical than the pitch and far more reliable.
Sort your signals by how well you could defend them.
Gate hard on fit.
Require a second signal before anything counts.
Weight what happened recently over what happened ever.
Then use AI for the parts it is actually good at: pulling messy inputs together, reading what an account cares about, and writing the reason to call.
If you want the shortest path, start with one thing this week. Tag your campaigns with three intent themes, then ask for the accounts carrying each theme with more than one person engaged in the last 45 days.
That list is usually short, and it is usually right.
The piece you cannot improvise is verifiable first-party intent, because LinkedIn does not hand you named accounts and deals in a report.
If you want to see it on your own data, ZenABM is free for 37 days with full functionality, and you can have company-level engagement, intent themes, and the MCP connection running before your next pipeline review.
AI intent data in ABM means using AI to interpret buying signals and rank target accounts, rather than reading a static score. Done well, AI handles three jobs: merging messy signals from several sources into one ranked list, reading what an account actually cares about based on which messages it responded to, and writing an auditable reason for a rep to act now. The ranking arithmetic itself should stay transparent.
No. Third-party topic intent is modeled, lagged and anonymous at company level, so it cannot tell you who researched, on what page, or whether they were a buyer. An AI layer on top does not add information that was never collected, it just presents the same uncertainty more fluently. Use third-party intent to widen a prospecting pool, and use first-party signals you can trace for decisions about who to contact.
Weight by verifiability. Ad engagement pulled from the LinkedIn Ads API is highest because it traces to a named company interacting with a specific ad on a specific date. Other paid channel engagement and buying-page visits come next. Third-party topic surges rank lowest. Then require a second confirming signal, such as multiple people or multiple campaigns, and weight recent activity above all-time totals.
Quantitative intent measures how much an account engaged, which ranks accounts but gives your rep nothing to say. Qualitative intent captures what the account engaged with, such as security messaging rather than pricing content. ZenABM captures qualitative intent by tagging campaigns with intent themes, so any account engaging with a tagged campaign inherits the theme and the outreach can reference something real.
Few enough that each one gets real attention. Account-based motions pay off best above roughly $50,000 ACV with an addressable market under 20,000 companies, which means depth matters more than coverage. A list of 200 priority accounts is not a priority list. Cut to what your team can genuinely work in a week, and refresh it as engagement recency changes.
Usually because the scores are unexplainable. If a rep calls flagged accounts and finds people who have never heard of the product, they stop opening the list, and no amount of model accuracy recovers that. The fix is traceability: every prioritized account should come with the specific interactions behind it, which is why first-party signals and an engagement timeline outperform a vendor score in practice.