# Icp Summary

> When the user wants an ICP summary, ideal customer profile, or buying committee map built from a website or domain. Also use when the user mentions 'ICP summary,' 'ideal customer profile,' 'who should we sell to,' 'buying committee,' 'define our ICP,' 'segment our market,' 'buyer personas,' 'economic buyer,' 'champion,' 'who signs the check,' 'buying signals,' 'why now trigger,' 'four forces,' 'push pull anxiety habit,' 'firmographics,' or 'target account profile.' Input is a website or domain. Output is a segmented ICP summary as markdown plus a multi-sheet xlsx. For turning the ICP into a scored job matrix, see jtbd-matrix. For turning that matrix into positioning, see value-prop-canvas.

- Skill: `aj-suresh/icp-summary` (Agent Skill, multi-file: 5 files)
- Install (CLI): `npx skillmds@latest add aj-suresh/icp-summary`
- Raw SKILL.md: https://api.skillmd.com/api/skills/aj-suresh/icp-summary/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Marketing & Growth
- Author: aj-suresh (https://skillmd.com/u/aj-suresh)
- Updated: 2026-09-17
- Page: https://skillmd.com/skills/aj-suresh/icp-summary

---


# ICP Summary

You build an ICP summary from a domain: who to sell to, split into segments where the buying committee genuinely differs, with the trigger that makes each segment buy now.

Your output is a **research artifact, not a persona poster**. Everything in it is either sourced or explicitly marked as inferred. A reader should be able to check any claim against a URL, and a rep should be able to use the buying signals to build a target list this afternoon.

The failure mode you exist to prevent: a confident, well-formatted ICP doc that is entirely invented. Fluent output about a company you researched for four minutes reads exactly like output about a company you understand. Sourcing is what separates them.

## What you produce

Two files in the output directory (default `icp/`):

- `icp-summary.md`: the source of truth
- `icp-summary.xlsx`: generated from the markdown by `scripts/md_to_xlsx.py`

The markdown uses `## Sheet: <Name>` headings to mark workbook sheets. See `references/icp-template.md` for the exact structure to fill.

## Process

### 1. Intake

Take the domain. Ask once, in a single message, for anything optional the user may have:

- Call recordings, transcripts, or discovery notes
- Win/loss analysis, closed-lost reasons, CRM exports
- An existing ICP, positioning doc, or sales deck
- Named customers, or a customer list

Say plainly that these are optional and you will proceed without them. Do not block.

**First-party materials outrank web research.** When a transcript contradicts a marketing page, the transcript wins and you note the conflict in the evidence log. A marketing site tells you what the company wants to be true; a call tells you what the buyer actually said.

### 2. Research

Run the full pass in `references/research-playbook.md`. Do not skip to writing after the homepage.

Every fact you collect gets a source URL and an evidence grade (see `references/evidence-grading.md`). You will need the graded log again in `value-prop-canvas`, so build it properly the first time.

Stop and tell the user if the site is a stub, gated behind a login, or so thin that a real ICP cannot be built from it. Say what is missing rather than filling the gap with plausible invention.

### 3. Segmentation gate (stop here)

Do not build the band sheets until the user confirms the axis.

Propose:

- **The axis** and why it is the one that changes the buying committee for this business. Company size is the default, not the answer. Vertical, regulatory exposure, deployment model, technical maturity, or use case may each be the real axis. Say what you considered and rejected.
- **2 to 4 segments** along that axis, with boundaries.
- **The exclusions**: at least the segment above and the segment below, each with a specific reason they do not buy or are not worth the CAC. "Too small" is not a reason. "Pre-revenue, so no budget holder exists and no enterprise deal is forcing the purchase" is.

Present this as a short numbered proposal and wait. If the user corrects the axis, take the correction without arguing.

### 4. Build the sheets

Fill every sheet in `references/icp-template.md`:

| Sheet | What it holds |
|---|---|
| Overview | Size bands, industry, region, department, why-now triggers, buying signals, exclusion rationale |
| Committee | Big Hire vs Little Hire per segment, the extended committee, what each role can and cannot do |
| One per segment | Stage, buyer, job statement, jobs in 3D, pains today, gains sought, four forces, hidden competition, competitors |
| Big Picture vs Daily Chores | The purchase decision vs the daily use, and the job-to-feature map |

### 5. Generate the workbook

```bash
python3 scripts/md_to_xlsx.py icp/icp-summary.md icp/icp-summary.xlsx
```

The markdown is authoritative. If a number needs to change, change the markdown and regenerate. Never hand-edit the xlsx.

### 6. Hand off

Tell the user the file paths, the segmentation axis you used, the three biggest evidence gaps, and that `jtbd-matrix` takes this file as its input.

## The rules that make this useful

**Job statements name no product and no category.** "When my product finally has traction with buyers who won't sign without proof of security, I want to be audit-ready fast without hiring a compliance team, so I can close the deal in front of me." That is a job. "Users want an automated compliance platform" is a product pitch wearing a job costume. If the sentence stops making sense when the category disappears, rewrite it.

**Buying signals must be externally observable.** A rep with LinkedIn, the company's site, and a news alert has to be able to find them. Good: a job posting for a first Head of Security; a trust center showing SOC 2 Type I with ISO 27001 language; a competitor badge in the page footer; a funding round; a new region on the pricing page. Not a signal: "feeling pain around compliance," "growing fast," "cares about security."

**Distinguish who can select from who can delay.** This is the single most useful thing in a committee map and the thing most personas get wrong. Procurement and Legal usually cannot choose the vendor, but they control when it can be signed. That makes them a timeline risk, not a selection risk, and it changes when in the cycle you engage them. Technical buyers are the inverse: real veto, no say on price. Write the decision power column in those terms.

**Track the Little Hire separately from the Big Hire.** The person who signs is often not the person who uses it daily. The Big Hire is sold on the pitch; the Little Hire decides the renewal. A product sold on "runs itself" that still generates hours of manual chasing churns regardless of how good the pitch was. State that risk explicitly for each segment.

**Hidden secondary competition is mandatory and it is not a vendor list.** Every segment must name: non-consumption (doing nothing until forced), and at least one non-software substitute (hiring a person, a consultant or agency, a spreadsheet plus a shared drive, an internal build). The vendor list goes in a separate row. At the smallest segment, doing nothing is usually the real competitor and the ICP should say so.

**All four forces or none.** Push and Pull without Anxiety and Habit is a pitch, not an analysis. Anxiety is what the buyer fears about your product specifically. Habit is the pull of the current setup, including sunk cost in a tool they already bought. These two are where deals actually die.

**Segments must differ on the committee, not on adjectives.** If two segments have the same economic buyer, the same trigger, and the same competitor set, they are one segment. Merge them. Three real segments beat five decorative ones.

## Quality gate

Before writing the file, check every line. Fix what fails; do not ship with a note.

1. Every segment has a job statement that names no product and no category.
2. Every buying signal is observable from outside the company.
3. Every segment has a distinct economic buyer, trigger, or competitor set. No decorative segments.
4. Decision power distinguishes selection power from timeline control.
5. The Little Hire is named for every segment, with the churn risk stated.
6. Hidden competition includes non-consumption and at least one non-software substitute.
7. All four forces are filled for every segment.
8. Exclusions have specific reasons, not size cutoffs.
9. Every factual claim carries a source URL or is marked `[inferred]`.
10. The evidence log lists what you could not verify.

If you cannot satisfy a row honestly, write the gap into the doc. A named gap is worth more than a confident guess, and the `value-prop-canvas` proof audit will catch the guess anyway.

## Anti-patterns

| Do not | Instead |
|---|---|
| Segment by demographics alone | Segment by the circumstance that changes the committee |
| Write "decision maker" as a role | Name the title, and what they can and cannot approve |
| List competitors as the only competition | Lead with non-consumption and the non-software substitute |
| State a pain with no evidence | Quote a review, a forum post, or a case study, or mark it inferred |
| Give every segment the same pains | If pains do not change across segments, the axis is wrong |
| Present research as complete | Publish the gap list alongside the findings |

