Somewhere in your CRM right now is a deal that looks perfect on paper. Right company size. Right industry. Right revenue band. Every box on your Ideal Customer Profile checklist, ticked.
It's been sitting in "evaluation" for ten weeks.
Nobody objected to the price. Nobody said the product was wrong. There was no competitor mentioned, no champion who went dark, no single moment you can point to and say: that's where it died. It just... stopped moving. And if you pull up the three deals before it, the pattern repeats. Same profile. Same silence.
Most marketing teams read this as a sales problem, a qualification issue, a follow-up issue, maybe a pricing issue. Fix the process, tighten the SLA, add another touchpoint. It rarely works, because the process isn't broken. The ICP is telling you these are exactly the right accounts. It's just wrong about what "right" means now.
Nobody tells you this when you build your first ICP: during self-serve growth, it never actually gets tested.
A self-serve buyer converts alone. They hit your pricing page at 11pm, put in a card number, and either the product solves their problem or they churn in month two. Your ICP, company size, industry, maybe a tech stack filter, didn't cause that conversion. The buyer did, by self-selecting. The ICP just happened to be sitting there, looking accurate, because it was built by watching who already said yes.
That's a subtle but important distinction: an ICP built this way describes who converted, not who was in a position to buy. Those are usually the same person during self-serve growth, because the only people who ever reach your pricing page unassisted are people already motivated enough to solve the problem themselves. The ICP gets credit for a filter it never actually applied.
Then the company adds an enterprise motion, and the ICP has to do a job it was never built for: predict who's in a buying situation before anyone self-selects. That's a different question entirely, and a firmographic checklist has no way to answer it.
Two companies can match your ICP on every firmographic field, same headcount, same industry, same ARR band, and be in completely different situations. One just hired a new VP of Ops who's auditing every tool in the stack. The other is happy with what they have and won't think about switching for eighteen months. Your ICP can't tell them apart. It was never built to.
That gap gets expensive fast, because a self-serve buyer and a procurement committee aren't doing the same kind of evaluation.
A self-serve buyer decides for themselves, cheaply, and reverses the decision easily if it's wrong. A committee is doing something closer to due diligence, checking whether you understand their world, whether other companies like theirs have solved this with you, whether your positioning matches how they already think about the problem. If your ICP was built around firmographic proxies instead of the actual buying situation, none of that shows up anywhere in your targeting or your messaging. The committee notices the gap even when they can't name it. They just don't move forward.
Anthony Pierri, co-founder of the positioning consultancy Fletch PMM, put a version of this problem well in a recent conversation with Mad Magnet:
"I always start with who they think their target customer is, and most of the time they will list a bunch of what you would call firmographic details... And those things are helpful, but they're not actually a marketable segment, right? If I just get a list of companies that fit those five or six stuff, I really have no indication of whether or not they're going to need my product or be interested in it."
His fix keeps firmographics in place and adds a second layer on top:
"You have to layer one more level of segmentation. And it could either be one of two things. One of them would be people who are doing something. They're trying to accomplish something. We call it like a job to be done... So when I talk to people about their segment and I say, 'Who is your ICP?' And they are missing either some level of job to be done or missing some level of participation in a specific category, I know that it is not truly a marketable segment."
That's the whole mechanism, stated plainly. Firmographics answer "who could theoretically buy." Job-to-be-done answers "who is actually trying to solve this problem right now." A committee is evaluating you against the second question. Most ICPs only ever answer the first.
The instinctive response, once the stalling pattern shows up, is to narrow the firmographic filters further. Raise the minimum company size. Cut a vertical that "never converts anyway." Add a funding-stage requirement.
This usually makes the pipeline smaller and the problem no more solvable, because tightening firmographics is still answering the same question, who could buy, just with a stricter filter. It doesn't add any information about who's currently in a buying situation. You end up with a shorter list of accounts that still contains a mix of in-market and not-in-market companies, in roughly the same proportion as before. The stalling rate on qualified deals doesn't move, because the thing that predicts stalling was never in the ICP to begin with.
Consider two companies that both match a tightened, "enterprise-ready" firmographic filter, 200 employees, Series B, relevant industry. Company A migrated off a spreadsheet-based process eight months ago and has been quietly outgrowing the replacement tool ever since; someone there is actively looking for what comes next. Company B built a comparable internal tool eighteen months ago, it mostly works, and nobody there is thinking about switching anything this fiscal year. Firmographically, they're identical. In a buying situation, they're not even close. No amount of tightening the size or industry filter separates them, only the trigger and the job-to-be-done do.
The fix is the second layer Pierri describes, added on top of the firmographic base you already have, not a new ICP built from scratch.
Two questions do most of the work:
What's the buying trigger?
Not "what does our ideal customer look like," but "what has to happen inside a company before this problem becomes urgent enough to act on." A new hire in a relevant role auditing the stack. A recent funding round with board pressure to show growth. A competitor doing something visibly better. An internal tool or spreadsheet process hitting its ceiling. Triggers are events, not attributes, they have a timestamp, which firmographic fields never do.
What's the job-to-be-done, specifically?
Not the category your product sits in, but the actual task the buyer is trying to get done when they go looking for something like you. This is where a lot of B2B SaaS positioning gets lazy, "we help companies grow" is a category claim, not a job. The job is the thing someone would type into a search bar, half-formed, at 9pm because they're stuck.
Once both are defined, the ICP stops being a static description and starts being a filter you can actually run against your own pipeline. Pull the deals that stalled in the last two quarters. Check them against the firmographic profile, most will pass, because that part was never the problem. Then check them against the trigger and the job-to-be-done. If most of the stalled deals never had a clear trigger, you've found the gap, and you've found it with your own data instead of a hunch.
The recurring argument about lead quality, marketing insists the leads are qualified, sales insists they're not real buyers, usually comes down to two teams applying two different, unstated definitions of "good fit," not a disagreement about the facts in front of them. Marketing is scoring against firmographics because that's what the ICP document contains. Sales is scoring against buying signals they're picking up in calls, because that's what actually predicts whether a deal closes. Neither side has written their definition down, so the argument repeats every quarter with no resolution, because there's nothing shared to check either position against.
A rebuilt ICP, firmographics plus trigger plus job-to-be-done, gives both teams the same instrument. Marketing can build campaigns and content around actual trigger events instead of generic firmographic targeting. Sales can qualify against a documented job-to-be-done instead of a gut read from the call. When a deal stalls, both teams can look at the same three questions and find out together which one wasn't actually true for that account. That's a very different conversation than "the leads aren't good," repeated indefinitely.
It also changes what "moving upmarket" means operationally. Widening or narrowing the firmographic filter was never the work, adding a layer of specificity your self-serve ICP never needed is, because self-serve buyers did that filtering for you, for free, every time one of them typed in a card number instead of asking three colleagues and a procurement checklist first.
None of this requires abandoning the ICP work you've already done. The firmographic layer was never wrong, it was always incomplete, in a way that stayed invisible for as long as self-serve growth handled the buying-situation filtering on your behalf. The moment an enterprise deal enters your pipeline, that free filtering stops, and whatever your ICP doesn't capture starts showing up as a stalled deal you can't quite explain.
That diagnostic, checking whether an ICP describes fit or actually predicts buying situation, is the first thing we run with every company that comes through Mad Magnet's Pilot Program, before any brand audit or messaging work starts, one more reason diagnosis has to come before execution rather than the other way around. If the pattern above sounds familiar and you want a second set of eyes on it, that's the two-to-four-week starting point, not a six-month commitment.