AI SavvyFounders How-To Guide
How-To Guide

How to create an icp.md file

One markdown file that holds who you sell to, what keeps them stuck, what they actually say, and why they buy. Claude reads it before writing anything, so every email, page, and post lands on a real person instead of a guess.

60 minutes, mostly evidence gathering Beginner friendly Updated July 2026

What an icp.md is, and why yours is probably missing

Copy misses when the writer is guessing who it is for. Most founders carry their ideal customer profile in their head, which means the AI writing their content never sees it. An icp.md fixes that: a plain markdown file describing your ideal customer in evidence-backed detail, stored where Claude reads it automatically, in a project, inside a skill, or in a repo.

The one rule: everything in the file traces back to something a real customer said or did. An ICP built from imagination produces copy for a person who does not exist.

Sales call notes Testimonials and reviews DMs and emails Claude
01

Gather the raw customer evidence

Collect everything real customers and near-customers have said, in their own words.

  • a.Sales and discovery calls: transcripts or notes from your last 5 to 10 calls, especially the moments where the prospect described their situation before you pitched.
  • b.Testimonials and reviews: what buyers say changed after working with you. The before-state hidden inside a testimonial is pure ICP material.
  • c.DMs, emails, and comments: questions people ask before buying, and the replies to your content that describe their own struggle.
  • d.Lost deals and refunds: why people said no or left. Disqualifiers are as valuable as qualifiers.
  • e.Paste everything into one raw document, labeled by source. Strip names and confidential details.
Note

Thin on evidence? Mine public sources where your customer already talks: reviews of competing offers, niche community threads, comments on creators your audience follows. Real strangers describing the same problem beat your own assumptions.

02

Run the ICP extraction

Open a fresh Claude conversation, attach the raw evidence document, and run this prompt:

Extraction promptAnalyze the attached customer evidence and extract an ideal customer profile. Every finding must be backed by at least two quotes from the evidence. Do not invent anything and do not fill gaps with assumptions. If a section has no evidence, write "NO EVIDENCE YET" instead. Extract: 1. IDENTITY: role, business stage, team size, situation patterns 2. PAINS: the specific problems they describe, ranked by how often and how emotionally they come up 3. DESIRED OUTCOMES: what they say they want, in their words, separated into surface wants and deeper drivers 4. OBJECTIONS AND FEARS: what made them hesitate, stated reasons and the fear underneath each one 5. BUYING TRIGGERS: what was happening in their life or business right before they reached out or bought 6. VERBATIM LANGUAGE: 20-30 exact phrases they use to describe the problem, the goal, and the hesitation 7. DISQUALIFIERS: who kept showing up in the evidence as a bad fit, and the early signals of that Output as a structured markdown document with those seven sections and the supporting quotes under each finding.
  • a.Read the output next to the evidence. Delete any finding that leans on one quote stretched thin.
  • b.Keep the "NO EVIDENCE YET" markers. They are your research to-do list, not a failure.
03

Choose your ICP scope

Decide before writing the file, because scope mistakes are expensive to unwind later.

Your situationScopeFile setup
One core customer, multiple offers at different stagesSingle profileOne icp.md with an "offer fit" section mapping offers to stages
Two genuinely different buyers (e.g. solo founders and agency owners)Separate profilesicp-solo-founders.md and icp-agency-owners.md, never merged
Unsure, early stageSingle, narrowOne icp.md built on your best customers only, widened later with evidence
Important

One blended file for two different buyers produces copy that speaks to neither. When in doubt, go narrower. Copy written for one specific person converts strangers who resemble that person.

04

Write the icp.md file

Create a file named icp.md in your text editor and structure it from the corrected extraction:

Markdown template# Ideal Customer Profile Last updated: [date] · Evidence base: [X calls, Y testimonials, Z DMs] ## Who they are - Role and business: [e.g. service business founder, 1-5 person team] - Stage: [revenue range, years in business, current setup] - Day-to-day reality: [what their week actually looks like] ## Pains (ranked) 1. [Top pain, in one sentence] - "verbatim quote" 2. [Second pain] - "verbatim quote" 3. [Third pain] - "verbatim quote" ## Desired outcomes - Surface want: [what they ask for] - "quote" - Deeper driver: [what it is really about] - "quote" ## Objections and fears - Objection: [stated reason] / Underneath: [the real fear] - "quote" ## Buying triggers - [What was happening right before they bought] - "quote" ## Language bank [filled in Step 5] ## Disqualifiers - [Who is a bad fit and the early warning signs] ## Offer fit - [Offer name]: right for them when [condition] ## Writing rules - Speak to one person, never "founders" as a crowd - Use language bank phrases before inventing new framing - Lead with the pain or behavior, then the solution - If a claim is not backed by this file, do not make it
  • a.Keep the whole file under two pages. An icp.md that nobody, human or AI, reads end to end is decoration.
  • b.Date the file and note the evidence base at the top, so future you knows how much to trust it.
05

Fill the language bank

This section earns its keep more than any other, because copy built from customer phrasing reads like mind-reading.

  • a.From the extraction, pick 20 to 30 verbatim phrases and sort them into three groups: problem language, goal language, and hesitation language.
  • b.Keep the phrases raw. "I'm drowning in admin every evening" stays exactly like that. Cleaning it up destroys the value.
  • c.Cut duplicates that say the same thing in weaker words, and keep the sharpest version of each idea.
06

Deploy the file where AI can read it

An icp.md sitting in a folder Claude never sees does nothing. Put it in at least one of these places:

  • a.Project knowledge: upload icp.md to the Claude project where you do marketing and content work. Every conversation in that project loads it.
  • b.Inside a skill: place it at references/icp.md in your voice or copywriting skill, and add a process rule: "Read references/icp.md before writing anything customer-facing."
  • c.In your repo: if you build with Claude Code or Cowork on local files, keep icp.md at the project root next to your other context files, and reference it from your instructions file.
07

Wire it into your writing workflows

  • a.Add one line to your project instructions or skill: "Before writing any marketing, sales, or content piece, read icp.md and target the person it describes."
  • b.Test it: ask for a piece of copy without mentioning the ICP, and check whether the draft uses language bank phrases and speaks to the documented pains.
  • c.Use it as a review filter too: "Score this draft against icp.md. Which lines would land, and which would slide past?"
Tip

The icp.md pairs with your voice skill: voice governs how you sound, the ICP governs who you are talking to. Together they close the two biggest gaps in AI-written copy.

08

Keep it alive

  • a.Every time a sales call or DM surprises you, drop the quote into a running "new evidence" note.
  • b.Quarterly, feed the new evidence back through the Step 2 extraction and update the file: refresh quotes, re-rank pains, prune anything the last three months contradicted.
  • c.Bump the date at the top and re-upload the file everywhere it is deployed.
Warning

A stale ICP is worse than none, because it fails silently. The copy still sounds confident, it just targets who your customer was a year ago. If the file's date is older than two quarters, treat everything built on it with suspicion.

FAQs

Why a markdown file instead of a doc or a slide?

Plain text travels everywhere: Claude projects, skill references, repos, and Cowork sessions can all read it directly. It also diffs cleanly if you keep it in version control, so you can see exactly how your customer understanding evolved.

What if I have very few customers so far?

Build a narrow file from your best two or three customers plus public evidence: competitor reviews, community threads, comments in your niche. Mark thin sections with "NO EVIDENCE YET" and treat them as research tasks, not blanks to fill with guesses.

How is this different from a buyer persona?

Classic personas are often fiction with a stock photo: "Marketing Mary, 34, likes yoga." An icp.md bans invention, requires quotes behind every claim, and exists specifically to be read by AI before writing, not to sit in a brand deck.

Should the icp.md include my offers?

Yes, briefly. The offer fit section maps each offer to the customer condition it serves, which stops Claude from pitching the wrong thing to the right person. Full offer details belong in a separate file.

Troubleshooting

SymptomLikely causeFix
Copy still feels genericLanguage bank unused or too cleanAdd a writing rule requiring at least two language bank phrases per piece, and keep quotes raw
ICP reads like a horoscopeFindings not evidence-backedDelete anything without two supporting quotes and rerun the extraction with the strict prompt
Claude ignores the fileFile not deployed or not referencedConfirm it is in project knowledge or skill references, and add the explicit "read icp.md first" instruction
Copy speaks to nobody in particularBlended profile for two different buyersSplit into separate icp files and pick one per piece
File keeps growing past two pagesHoarding instead of rankingKeep top 3 pains, top phrases only, and archive the rest in a separate evidence file

Version 1.0 · First published July 2026