Agent skill
icp-builder
Define and refine ICP segments with persona cards and validation
Filed under Prospecting and list building.
From ekatasingh1107/b2b-gtm-skills · 99 skills · 2 · pushed 2026-04-11
What it does when it runs
Define and refine ICP segments with persona cards and validation
Read from the skill and the 1 file bundled beside it. A skill’s own description is written to be selected by an agent, so it describes the job and not the dependencies.
- Keys and connectors you must supply
- None found.
- Hosts it reaches
- No third-party host appears in the skill or its bundled files.
- Tool permissions it declares
- No
allowed-toolsin the frontmatter. It only issues instructions, so there is nothing to bound. - Actions present in the files
- None. Instructions only.
Install it
View source on GitHub ↗git clone --depth 1 --filter=blob:none --sparse https://github.com/ekatasingh1107/b2b-gtm-skills.git /tmp/b2b-gtm-skills git -C /tmp/b2b-gtm-skills sparse-checkout set "skills/capabilities/icp-builder" mkdir -p ~/.claude/skills/icp-builder cp -R "/tmp/b2b-gtm-skills/skills/capabilities/icp-builder/." ~/.claude/skills/icp-builder/
Picked up without a restart. A project skill of the same name is shadowed by your personal one. For one repository only, swap ~/.claude/skills for .claude/skills. Claude Code docs ↗
The folder is the same in every client that implements the format — 46 of them — so if yours is not above, only the destination changes.
The skill
Source on GitHub ↗Reproduced in full from ekatasingh1107/b2b-gtm-skills/blob/eae8dd0bb98da1c8e84abd297066a87015dd860f/skills/capabilities/icp-builder/SKILL.md, which is licensed MIT (repository). 1,219 words, 11 headings.
ICP Builder
Guides the user through defining, refining, and validating Ideal Customer Profile segments. Produces persona cards for each segment and generates ICP config entries compatible with agency.config.json. The output feeds into signal-scanner for targeted lead generation and message-generator for segment-specific messaging.
Prerequisites
agency.config.jsonin the project root- User input on existing clients and pipeline data
- Optional: CRM data for pipeline validation (Phase 6)
Phase 0: Read Existing Config
- Read
agency.config.jsonfrom the project root. - Extract
icp.segments[]if they exist -- these are the current segments. - Extract
services[].nameandservices[].keywordsto understand what the agency offers. - Extract
outreach.tonefor voice alignment context. - Note any existing
icp.primary_keywords,icp.secondary_keywords,icp.intent_keywords. - If segments already exist, present them to the user:
CURRENT ICP SEGMENTS: 1. [segment_name] -- [markets], [company_size], [industries] 2. ... Refining existing segments or building from scratch?
Phase 1: Client Analysis
Ask the user for their top 5 best clients (or as many as they have). For each client, gather:
CLIENT: [Name]
Industry: [their industry]
Deal Size: [monthly retainer or project value]
How They Found Us: [referral, inbound, outbound, platform, event]
Decision Maker Title: [who signed the deal]
Company Size: [employees, revenue range if known]
Why They Bought: [the specific pain that made them choose us]
How Long to Close: [days/weeks from first contact to signed deal]
Retention: [still active? how long?]
Satisfaction: [high/medium/low -- would they refer?]
If the user has fewer than 3 clients, supplement with:
- "Describe 2-3 companies that would be your DREAM clients"
- "What industry/size companies reach out to you most?"
Store all responses as structured data for pattern extraction.
Phase 2: Pattern Extraction
Analyze across all client data to find common traits:
Industry patterns:
- Which industries appear more than once?
- Are there adjacent industries that share characteristics?
Company size patterns:
- What's the employee range of best clients?
- Revenue range correlation with deal size?
Decision maker patterns:
- What titles are most common? (Founder, CEO, Head of Marketing, Ecommerce Manager)
- Seniority level (C-suite, VP, Director, Manager, Individual contributor)
Acquisition channel patterns:
- Where do the best clients come from?
- Which channel produces the fastest close?
- Which channel produces the highest deal value?
Pain point patterns:
- What problems are repeated across clients?
- Which agency service solves the most common pain?
Buying trigger patterns:
- What event made them buy NOW vs later?
- Seasonal patterns?
- Growth stage correlation?
Present findings:
PATTERN ANALYSIS
---
Strongest industry signal: [industry] (appeared in X/Y clients)
Typical company size: [range]
Primary decision maker: [title] at [seniority]
Best acquisition channel: [channel] (fastest close: [days])
Top 3 pain points:
1. [pain] -- present in X/Y clients
2. [pain] -- present in X/Y clients
3. [pain] -- present in X/Y clients
Most common buying trigger: [trigger]
Phase 3: Build Persona Cards
For each distinct segment identified, create a persona card:
PERSONA: [Descriptive Name]
---
Title: [2-3 typical titles, comma-separated]
Company: [size range] employees, [industry/industries], [stage: early, growth, mature]
Revenue: [range if known]
Geography: [markets]
Pain Points:
1. [specific, actionable pain]
2. [specific, actionable pain]
3. [specific, actionable pain]
4. [specific, actionable pain -- if applicable]
5. [specific, actionable pain -- if applicable]
Buying Triggers:
- [what makes them buy NOW, not next quarter]
- [event or situation that creates urgency]
- [competitive pressure or market shift]
Top Objections:
1. [most common reason they say no or stall]
2. [second most common]
3. [third most common]
Channels:
- Primary: [where they spend professional time]
- Secondary: [backup channel]
- Content: [what content they consume]
Decision Process:
- Type: [solo decision / small committee / formal procurement]
- Timeline: [typical days from first contact to close]
- Influencers: [who else is involved]
- Budget approval: [who signs off]
Budget Range: [typical deal size, monthly or project]
Messaging Angle:
- Lead with: [the value prop that resonates most]
- Avoid: [what turns them off]
- Proof needed: [case study type, metrics they care about]
Build 2-4 persona cards. Avoid creating segments that are too narrow (< 100 addressable companies) or too broad (everyone with a website).
Phase 4: Generate ICP Config
Convert persona cards into agency.config.json compatible segments:
{
"icp": {
"segments": [
{
"name": "[segment_name]",
"markets": ["IN", "US"],
"company_size": { "min": 10, "max": 200 },
"industries": ["industry_1", "industry_2"],
"titles": ["Founder", "CEO", "Head of Ecommerce"],
"seniority": ["C-Suite", "VP", "Director"],
"revenue_range": { "min": "500K", "max": "50M" },
"stage": ["post-pmf", "growth"],
"priority": 1
}
],
"primary_keywords": ["keyword1", "keyword2"],
"secondary_keywords": ["keyword3", "keyword4"],
"intent_keywords": ["looking for", "need help with", "hiring"],
"negative_keywords": ["enterprise", "Fortune 500"]
}
}
Generate one segment entry per persona card. Set priority (1 = highest) based on historical conversion rate and deal value.
Phase 5: Generate Search Keywords
For each segment, generate keywords for signal-scanner:
SEGMENT: [name]
---
Platform search queries:
Reddit: ["need [service] for [industry]", "[pain point] help", "recommend [service type]"]
LinkedIn: ["hiring [role]", "[industry] [pain point]", "[service] agency"]
Twitter: ["looking for [service]", "[industry] [challenge]"]
Job boards: ["[role title]", "[service] specialist"]
Signal keywords (buying intent):
High intent: ["looking for agency", "need help with", "hiring", "RFP"]
Medium intent: ["struggling with", "any recommendations", "best tool for"]
Low intent: ["thinking about", "considering", "next quarter"]
Negative keywords (filter out):
["intern", "course", "tutorial", "free", "DIY"]
Phase 6: Pipeline Validation
If CRM data is available, validate segments against real pipeline data:
- Read existing leads from CRM (pipeline tab).
- For each lead, classify into the new segments.
- Calculate per segment:
- Total leads
- Conversion rate (leads -> demos -> closed)
- Average deal value
- Average time to close
- Win rate vs loss rate
Present validation:
SEGMENT VALIDATION
---
[Segment 1]: [N] leads, [X]% conversion, avg deal [Y], avg close [Z] days
[Segment 2]: [N] leads, [X]% conversion, avg deal [Y], avg close [Z] days
RECOMMENDATION:
- Double down on: [segment with best conversion * deal value]
- Deprioritize: [segment with worst metrics]
- Test more: [segment with insufficient data]
If no CRM data, skip validation and note:
No pipeline data available for validation. Recommend running for 4-6 weeks, then re-running icp-builder with pipeline data to validate and refine.
Phase 7: Output
Return the complete ICP package:
- Persona cards -- one per segment, in the format from Phase 3
- Updated ICP config -- JSON block ready to merge into
agency.config.json - Search keywords -- per segment, ready for
signal-scanner - Validation summary -- if pipeline data was available
- Recommended next steps:
- Run
signal-scannerwith new ICP config - Update
message-generatortemplates to match persona messaging angles - Set calendar reminder to re-validate in 30 days
- Run
If the user confirms, write the ICP config directly into agency.config.json.
Example Usage
Trigger phrases:
- "Build my ICP"
- "Define ideal customer profiles"
- "Who should we be targeting?"
- "Refine our ICP segments"
- "Build persona cards for outreach"
User: Build my ICP
Assistant: [reads agency.config.json, asks for top 5 clients, extracts patterns, builds persona cards, generates config, validates against pipeline]
User: We keep closing skincare brands. Should we make that a segment?
Assistant: [analyzes skincare client patterns, builds persona card, generates segment config, compares to existing segments]
Files bundled with it
These load only when the skill asks for them, so they cost nothing until it runs.
Other skills for the same job
Different authors, same problem. Matched on the words in the skill name, across every library in the catalogue except this one.
- sales-icp by zubair-trabzada · 1,093
- icp-builder by OpenClaudia · 677
- icp-onboarding by growthenginenowoslawski · 668
- icp-prompt-builder by growthenginenowoslawski · 668
- reddit-icp-monitor by Varnan-Tech · 626
- icp-import by Othmane-Khadri · 290
- icp-definer by Othmane-Khadri · 290
- lemlist-campaign-from-icp by Othmane-Khadri · 290
Need help setting it up?
This page tells you what icp-builder does and what it needs. Cheetah builds the agent setup it runs inside: data, CRM, sequencing and the guardrails.
Book a call →The directory stays free. There is nothing gated behind this.