Systems Lab

Agent skill

icp-builder

Define and refine ICP segments with persona cards and validation

dormantSelf-containedInstructions only1,219 words

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-tools in the frontmatter. It only issues instructions, so there is nothing to bound.
Actions present in the files
None. Instructions only.

Ask about icp-builder

Opens your assistant with this page's verified links already in the prompt.

Is this safe to install?ClaudeChatGPT
Adapt it to my stackClaudeChatGPT
What else do I need for it to workClaudeChatGPT
Rather ask a human? Talk to Cheetah
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.

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.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:

{
  "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]

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.

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.