Define and refine ICP segments with persona cards and validation
Scanned 9/10/2026
Install to Claude Code
npx -y skills add ekatasingh1107/b2b-gtm-skills --skill icp-builder --agent claude-codeInstalls into .claude/skills of the current project.
Are you the author of Icp Builder?
Add the live security badge to your README — it updates automatically with every re-scan.
[](https://www.skillsdirectory.com/skills/ekatasingh1107-icp-builder)More formats (shields.io, HTML) on the badges page.
---
name: icp-builder
description: Define and refine ICP segments with persona cards and validation
tags: [icp, strategy, segmentation, personas]
---
# 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.json` in the project root
- User input on existing clients and pipeline data
- Optional: CRM data for pipeline validation (Phase 6)
## Phase 0: Read Existing Config
1. Read `agency.config.json` from the project root.
2. Extract `icp.segments[]` if they exist -- these are the current segments.
3. Extract `services[].name` and `services[].keywords` to understand what the agency offers.
4. Extract `outreach.tone` for voice alignment context.
5. Note any existing `icp.primary_keywords`, `icp.secondary_keywords`, `icp.intent_keywords`.
6. 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:
```json
{
"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:
1. Read existing leads from CRM (pipeline tab).
2. For each lead, classify into the new segments.
3. 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:
1. **Persona cards** -- one per segment, in the format from Phase 3
2. **Updated ICP config** -- JSON block ready to merge into `agency.config.json`
3. **Search keywords** -- per segment, ready for `signal-scanner`
4. **Validation summary** -- if pipeline data was available
5. **Recommended next steps**:
- Run `signal-scanner` with new ICP config
- Update `message-generator` templates to match persona messaging angles
- Set calendar reminder to re-validate in 30 days
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]
```
Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.
No comments yet. Be the first to comment!