A few weeks ago, I was deep into an SOW conversation with a prospective client. We’d done the capabilities overview, talked through scope, agreed on a starting point. Then their Head of Marketing came in and scratched ICP work from the SOW. She mentioned their ICPs were already defined, to which I countered:
“I hear you that ICPs are defined, but are they also operationalized? Meaning, are those definitions actually wired into your systems, your scoring, your routing? They’re breathing, not static.”
I’ve been thinking about it ever since. ICPs are almost always either nonexistent, far too broad, or living (and dying) in a spreadsheet.
👋 Hi, I’m Kaylee Edmondson. Looped In lands in your inbox every Sunday with one goal: to give you a sharper way to think about demand gen and growth in B2B SaaS. 2k+ marketers are already reading it. If you're not subscribed yet, fix that below.
A few months back I wrote about rethinking how we segment ICPs – specifically why company size is often the wrong organizing principle. Today I want to go one level deeper: not just how you define your ICP, but whether your ICP definition actually does anything. And how to use AI to make the whole thing work the way it was supposed to.
I’ve found most companies have an ICP. Almost none have operationalized it. And nearly all of them will keep running on that static definition – until something forces them not to.
That “something” varies. Sometimes it’s a huge miss on pipeline one quarter. Sometimes it’s a churn problem that suddenly becomes impossible to ignore. Sometimes it’s a campaign that just...doesn’t work, and nobody can explain why. Sometimes it’s all three at once.
ICP is often static, until it’s not.
Why ICPs drift (and why neither reason is obvious)
There are two distinct failure modes here, and they’re both common.
The first: the ICP was wrong from the start, and nobody knew it. You built the definition off intuition, early wins, or a competitive benchmark, but not off rigorous analysis of your actual customers. Everything looked fine until churn started accumulating in accounts that fit the definition perfectly on paper. That’s not a sales problem. That’s a definition problem.
The second: the ICP was right once, and drifted. The business shifted its go-to-market. The market changed. The product expanded into new use cases. The pricing moved upmarket. Any of those transitions will change who your real ICP is, but if nobody updates the definition, your systems keep targeting the old version of the customer while the business is trying to sell to a different one.
Both versions of this problem have the same symptom: demand gen that feels like it should be working, but isn’t producing the results you’d expect.
And the fix for both starts in the same place.
Step zero: validate the definition before you build anything
Before you wire your ICP into any system, you need to know whether the definition you’re working with is actually correct. I see teams skip this all the time. They operationalize a definition that was never right to begin with, and then wonder why the machine isn’t producing.
Here’s the process I use when I come into a new engagement and suspect the ICP is off.
Pull these lists from your CRM:
The “good” cohorts:
Closed-won customers
Longest-standing customers
Highest-paying customers
Highest cross-sell / upsell customers
The “bad” cohorts:
Churned customers
Shortest contract length customers
Lowest-paying customers
Customers with the highest support ticket volume and/or lowest NPS
Or anything else that’s specifically relevant to your business that you’d want included as part of the ICP analysis.
The thought here is to build a before-and-after picture of your customer base. What do your best customers actually have in common? What do your worst ones have in common? And critically…what do those two groups not share?
Enrich everything with whatever your enrichment tool of choice is before you analyze anything.
The data quality problem is consistent across every brand I’ve worked with. Your CRM exports will have company names, maybe industry and size, and not much else. That’s not enough to do meaningful pattern analysis. Before you do anything analytical, run all eight cohort lists through Clay/ZoomInfo/Apollo/etc. to add firmographics, technographics, funding history, hiring signals, and whatever else is relevant for your business.
Then I’d load everything into Claude (or you can analyze them manually either way).
This is where it’s been getting interesting for me, and to be transparent this is a workflow I’m actively building and refining, not something I’ve run a hundred times. But the approach is sound, and I think it’s where a lot of demand gen teams are going to land over the next year.
Once you have your enriched cohort exports, drop them into a Claude Cowork session. You’re not asking Claude to make up attributes or hallucinate patterns just give it your first-party data and ask it to find what you’d miss doing this manually or what would take you two days in Excel.
Before you run any prompts, set up the project with three context files.
The prompts below will work without them. But they’ll work significantly better with them — especially when you’re running this analysis across multiple clients and need consistent, immediately usable output every time.
icp-analysis-framework.md — a reusable file that tells Claude how to think about ICP analysis: what dimensions to look at, how to weight signals, when to flag something as uncertain versus confident, and what to watch out for (correlation vs. causation, survivorship bias, missing data). Build this once, drop it into every ICP project.
icp-output-template.md — the exact output structure you want back. Narrative description, positive and negative fit signal tables across firmographics/technographics/demographics, fit scoring framework with point values and tier thresholds, and a plain-language summary card you can hand to a sales rep. Claude matches this format exactly instead of inventing something new each time.
client-context.md — fill this out per engagement. Product description, current ICP hypothesis, average ACV and deal cycle, known hard disqualifiers, tech stack dependencies, any attributes the team already suspects matter, and what the output will be used for. This stops Claude from asking questions you already know the answers to and focuses the analysis on what’s actually uncertain.
Here are the prompts I’ve been using:
Prompt 1: Surface the patterns
“I’ve uploaded X CSV files representing different customer cohorts. The good cohorts are: closed-won customers, longest-standing customers, highest-paying customers, and highest expansion/upsell customers. The bad cohorts are: churned customers, shortest contract customers, lowest-paying customers, and customers with the highest support volume and/or lowest NPS scores.
Please analyze all cohorts and tell me: 1. The firmographic attributes that appear most consistently in the good cohorts but not the bad ones 2. The firmographic attributes that appear most consistently in the bad cohorts but not the good ones 3. Any technographic patterns (tech stack, tools) that differentiate good from bad 4. Any signals that appear to have been present at the time of sale for good vs. bad accounts
Weight each attribute by how strongly it differentiates good from bad cohorts. Flag any patterns where the sample size is too small to draw reliable conclusions.”
Prompt 2: Write the ICP definition
“Based on your analysis, please write a revised ICP definition that includes:
- A narrative description of our ideal customer profile
- Positive fit signals (demographic, firmographic, technographic), ranked by predictive strength
- Negative fit signals, ranked by predictive strength
- Positive behavioral and intent signals that suggest readiness to buy
- Negative signals that suggest poor fit or poor timing
- A suggested fit scoring framework with point values for each signal”
The output you’re looking for is a narrative with a structured breakout of patterns.
The reason I’d expect Claude to do this better than a human doing manual analysis isn’t speed (though it is faster). But Claude will surface cross-attribute correlations that are nearly impossible to spot manually. It’s not just “a lot of churned accounts are in healthcare.” It’s “healthcare companies that were Series B or earlier and didn’t have a dedicated RevOps function at time of sale.”
This narrative should give you a solid output, backed by data, to use as a conversation starter internally against your committee of stakeholders that care about your ICP. Typically people like Product, Sales, RevOps, Marketing, and Customer Success.
The goal is to leverage this process, the data, the documentation to gain internal alignment (which typically isn’t an easy feat).
Now operationalize it
Once you have a definition you, and your committee, trust, here’s where it needs to get wired in.
1. The CRM field
Your CRM is almost always the single system of record for your business. Which means if your ICP definition doesn’t live there, as a queryable, filterable, reportable field or set of fields, it effectively doesn’t exist operationally.
What that looks like is different for every company. Maybe it’s a single ICP Tier field with a simple picklist: Tier 1, Tier 2, Not ICP. Maybe it’s a series of fields capturing individual fit dimensions (industry fit, size fit, tech stack fit) that roll up into an overall score. There’s no single right answer. What matters is that there’s a method, it’s consistently applied, and anyone on the team can pull a report against it without exporting and shuffling things around manually.
In most companies I’ve inherited: none of that exists. The ICP is a document somewhere, and the CRM has no idea it was written.
The fix is purely mechanical. Decide on your structure, build the fields, and assign a value to every account in your database. Every downstream workflow like scoring, routing, TAL management, reporting, now has something to reference.
2. Scoring that accounts for fit, signals, and engagement
Most scoring models I inherit are 100% behavioral. Visited pricing page: +20. Downloaded a guide: +10. Hit 50 points: MQL.
The problem is that behavior without fit is noise. A VP of Operations at a 50-person out-of-ICP company who visits your pricing page four times is not a better lead than a VP of Supply Chain at a $2B target account who visited once.
Your model needs three dimensions: fit score (firmographic, technographic, demographic - built from your new ICP definition), signal score (hired a new critical role, just raised a round of funding, is slacking on their security posture, etc.) and engagement score (behavioral - 1st party signals typically from deanonymized activity on your website). Gate MQL status on a minimum fit threshold plus behavioral activity. Your MQL volume will drop. Your pipeline quality will go up.
3. Routing that reflects account value
If a Tier 1 account submits a demo request and hits the same queue, SLA, and rep assignment as a non-ICP startup, your ICP is not working hard enough for you. You defined it and then built a system that ignores it.
Tier 1 inbounds should route differently. Senior reps, faster SLA, Slack alert, different sequence. I set up a routing build at one client where Tier 1 inbounds had a 15-minute contact SLA during business hours. Strictly because their historical data showed a medium first-response time of 11 minutes for deals that closed.
4. A maintained TAL
Most target account lists get built once, saved to a shared drive, and not touched again. But a TAL is just a snapshot of your ICP in time. Companies raise funding. Headcount hits a threshold. A startup on your “watch” list announces a $40M Series B and is now squarely in your sweet spot. Which is all great…but if that TAL isn’t shifting, you’re likely not working an ICP. More likely working a snapshot.
I’d say you want at least a quarterly review cadence. Define three signals that move an account from “watch” to “active” (funding round, headcount milestone, a specific hire). Build a Clay or Apollo view that surfaces accounts hitting those signals monthly.
5. Reporting that filters by ICP fit
Most demand gen reporting: total leads, total MQLs, total pipeline, total revenue. Broken out by channel or campaign. Almost never by ICP fit.
I’ve seen campaigns that look like wins on blended pipeline numbers, where filtering for Tier 1 shows barely any ICP engagement at all. Without the filter you run it again. With the filter you kill it or completely rethink the targeting.
Add ICP Tier as a dimension in every report.
The part most people skip: keeping it dynamic
What I haven’t seen written about much, and what I think is the unlock: an ICP isn’t something you define once and operationalize. It’s an ongoing puzzle.
The market shifts. Your clients’ needs shift. Your business shifts. Any of those will change who your real ICP is and if you’re not actively maintaining the definition, you’ll drift back into the same problem you just fixed. Make this a recurring project that you prioritize.
I’m working on building a project in Claude Code that helps solve for some of the manual parts of this process. Will report back on if it stands up to the test.
Are you using AI for ICP analysis yet, or is that still on the “someday” list? Reply and tell me where you are with it. I’m genuinely curious how people are approaching this, and I’m building my own workflow in real time.
See ya next week,
Kaylee ✌


Super interesting ! Thanks for sharing !