Refining your ICP
A vague ICP is the single biggest cause of junk leads downstream. Everything — watchlist keywords, prospect scoring, outreach angles — inherits from it.
Read what exists first
get_gtm_status— existing profiles, lead counts, email activity. If leads are already flowing against an old ICP, changing it changes their results; say so before you rewrite anything.get_business_context_private— the currentideal_customersmodule.get_growth_plan— whether theicpmodule is confirmed.
Extend what's there. Do not silently overwrite a definition someone confirmed.
Narrow to one beachhead
Pick ONE reachable segment, not everyone who could benefit. Push until they can name three real companies that fit. If they cannot, it is still too broad.
Interrogate each axis, and accept "I don't know" as an answer worth recording rather than a blank to invent:
- Who decides — actual job titles that sign, not departments
- Where — country, region, or metro if it constrains
- Size — headcount or revenue band
- What's true right now — the trigger that makes them buy this quarter
- What they already tried — what failed tells you the pitch
The trigger matters most. "Regenerative businesses" is an identity; "just hired their first salesperson and their spreadsheet broke" is a buying moment.
Write it
update_gtm_icp — definition, job_titles, geo_include /
geo_subdivision / geo_city, size, revenue_annual, industries, focus
(people vs companies), criteria. Use business_slug to target a specific
workspace when the account has several.
If the Growth Plan's icp module is open, write the same definition there via
update_growth_plan_module so the plan and the live GTM profile agree.
Prove it before trusting it
An ICP is a hypothesis until it surfaces real fits. Run discover_prospects
and read the reasons, not the count:
- Reasons that restate the ICP back at you → too generic; add a trigger.
- Results that are all one company type when you wanted several → a criterion is dominating; loosen it.
- Institutions when you wanted small businesses → the title list is pulling
enterprise procurement roles; tighten
job_titles.
Two or three tightening passes is normal. Say that up front so a mediocre first run doesn't read as failure.