Skip to main content
SalesBusiness

ICP Deep Scanner

Deep-scan any tools you connect (CRM, email, support, reviews, analytics, billing, database) to produce a data-grounded Ideal Customer Profile and a reusable persona library. Read-only by default. Use when you need to define or refresh your ICP, build buyer personas from real data instead of guesses, or generate the persona inputs that the customer-panel-of-experts and prospect-panel-simulator skills consume.

View source1 file · 7 KB

What it does

# ICP Deep Scanner

Turn the data already sitting in your connected tools into a rigorous, evidence-backed Ideal Customer Profile (ICP) and a library of buyer personas. Most ICPs are invented in a slide deck. This one is reverse-engineered from your actual best customers, your won/lost deals, your support tickets, and your reviews — then written so it can drive real decisions and feed the panel skills.

This skill is the data layer beneath `customer-panel-of-experts`, `prospect-panel-simulator`, and `product-launch-war-room`. Run it first; those skills read the persona library it writes.

## Operating principles (read first)

- **Read-only by default.** You may query and read connected sources. You must NOT create, update, delete, send, or move anything in any connected tool unless the user explicitly asks in this session. Before any write or outbound action, stop and confirm.
- **Least data necessary.** Pull aggregates and representative samples, not entire databases. You are building a profile, not exfiltrating a CRM.
- **PII minimization.** Persona artifacts are archetypes, not dossiers. Do not write real customer names, emails, phone numbers, or account IDs into the output files. Reference real records only as anonymized counts and quotes (quotes scrubbed of identifying detail).
- **Secrets via environment only.** Never read, print, or write credentials. Assume tokens live in environment variables (e.g. `$SUPABASE_TOKEN`, `$OPENAI_API_KEY`) or in the MCP connection itself. If a source needs auth that isn't present, list it under "Sources I could not reach" and continue.
- **Cite the evidence.** Every claim in the ICP must trace to a source. "Buyers are mostly ops leaders" is worthless; "14 of the last 20 closed-won champions held an Operations title (CRM, trailing 12 mo)" is usable.

## Step 1 — Inventory connectable sources

Ask the user which tools to scan, or detect what's available. Map each to what it tells you:

| Source (examples) | What to extract | How to reach it |
|---|---|---|
| CRM (HubSpot, Salesforce, internal) | Closed-won vs closed-lost firmographics, titles of champions/buyers, deal size, sales cycle, win reasons | MCP connector or read-only API |
| Email / calendar | Who actually engages, meeting cadence, recurring objection language | Gmail/Calendar MCP, read-only |
| Support / tickets / chat | Top pain themes, words customers use, where they get stuck | Intercom/Zendesk export, logs |
| Reviews (G2, Capterra, Trustpilot, App Store) | Verbatim value language, switching triggers, deal-breakers | WebFetch / `customer-review-aggregator` |
| Product analytics (GA4, Clarity, Mixpanel) | Activation paths, who sticks, drop-off points | Analytics MCP / API |
| Billing (Stripe, Mercury) | Real revenue concentration, expansion vs churn by segment | Read-only API |
| Database (Supabase/Postgres) | Ground-truth usage and cohort behavior | Read-only SQL via `$SUPABASE_TOKEN` |
| Public web | Firmographic enrichment, market sizing, competitor positioning | WebSearch / WebFetch |

Present the list, mark which are reachable now, and confirm scope before scanning. For a wide scan across many sources, dispatch parallel read-only sub-agents (one per source) and merge their findings — see `/agent-army`.

## Step 2 — Extract signal from each source

For each reachable source, pull:
- **Firmographics** — industry/vertical, company size, geography, business model, tech stack.
- **Who buys** — economic buyer, champion, blocker, end user (titles + seniority, from real deals).
- **Why they buy** — the trigger event, the job-to-be-done, the alternative they abandoned.
- **Why they don't** — top closed-lost reasons, top objections, top churn reasons.
- **Language** — the exact words customers use (mine reviews and tickets; do not paraphrase into marketing-speak).
- **Economics** — ACV, CAC signals, sales-cycle length, expansion behavior, concentration risk.

Record sample sizes and date ranges for everything. Flag anything based on fewer than ~5 data points as "thin signal."

## Step 3 — Synthesize the ICP

Write `icp-profile.md`:

```markdown
# Ideal Customer Profile — {COMPANY}
Generated: {timestamp} · Sources scanned: {list} · Confidence: {High/Med/Low}

## The ICP in one sentence
{Vertical} companies of {size} who {trigger}, evaluated against {alternative}, where the champion is a {title} and the economic buyer is a {title}.

## Firmographic fit (with evidence)
- Industry: ... (evidence: N of M closed-won)
- Size: ...
- Geography / model / stack: ...

## Anti-ICP — who to disqualify
- {Segment} — closes slow, churns fast, low ACV (evidence)

## Buying committee
- Economic buyer · Champion · Blocker · End user — each with real titles + what they care about

## Triggers & jobs-to-be-done
## Top buy reasons / top no-buy reasons (ranked, with counts)
## The customer's own language (verbatim, scrubbed)
## Economics — ACV, cycle, expansion, concentration risk
## Confidence & gaps — what's thin, what to instrument next
```

## Step 4 — Build the persona library

Write `personas/` — one file per persona (3–6 personas: typically the champion, the economic buyer, the blocker, and 1–2 key end users or segment variants). Each persona file is structured so the panel skills can load it directly:

```markdown
---
persona_id: ops-leader-champion
role: Champion
archetype: "VP of Operations at a 50–200 person services firm"
based_on: "12 closed-won champions, CRM trailing 12 mo"
---
# {Archetype name}
- Goals / success metrics:
- Pains (verbatim language):
- What earns trust / what triggers skepticism:
- Buying authority & budget reality:
- Objections they raise (real, from lost deals):
- How they talk (tone, vocabulary, 2–3 scrubbed quotes):
- What would make them a hard NO:
```

Also write `personas/index.md` listing every persona, its role in the committee, and its evidence base.

## Step 5 — Handoff

End with:
- A 5-line ICP summary the user can paste anywhere.
- "Sources I could not reach" and what auth/access would unlock them.
- "Confidence ledger" — which conclusions are strong vs. thin.
- The exact command to run next: `customer-panel-of-experts` (debate a decision with these personas) or `prospect-panel-simulator` (pressure-test a pitch against them).

## Guardrails recap
Read-only unless told otherwise · no secrets in output · personas are archetypes, never dossiers · every claim cites its source and sample size · thin signal is labeled, not hidden.
Read the full SKILL.md on GitHub

More sales skills

Champion Identifier

Analyze LinkedIn profiles in target accounts to identify potential internal champions. Evaluates role, career path, mutual connections, interests, and suggests personalization approach. Use when you need to find who will champion your solution internally.

Cold Email Sequence Generator

Generate personalized cold email sequences (7-14 emails) with A/B test subject lines, follow-up timing recommendations, and integrated social proof. Creates multi-touch campaigns optimized for response rates. Use when users need outbound email campaigns, sales sequences, or lead generation emails.

Contact Hunter

Search and extract contact information for people or companies including names, phone numbers, emails, job titles, and LinkedIn profiles. Aggregates data from multiple sources and provides enriched contact details. Use when users need to find contact information, build prospect lists, or enrich existing contact data.

CRM Data Cleanup

Cleans up CRM data from HubSpot, Salesforce, Pipedrive, Zoho, Close, Attio, or any CRM CSV export. Finds duplicate contacts and companies with fuzzy matching (not just exact email), normalizes emails, phones to E.164, names, domains, states, and countries, flags stale, invalid, role, and test records, finds broken contact-company associations, and produces a reviewable merge plan plus import-ready files without touching the live CRM. Use this skill whenever the user wants to dedupe, find or merge duplicate contacts, merge companies or accounts, clean up a CRM, prep a CRM migration or re-import, or says the CRM export is a mess. Also use it when they mention only one symptom, like "the same person is in here three times", "half our leads are junk", or "our company records don't match".