Guide — partner ICP

How to define a publisher ICP that a machine can screen for

A precise partner profile is what turns a vertical of hundreds of thousands of candidate domains into a clean recruitment list. This guide shows how to write an ICP as required, preferred, and disqualifying signals — and how to calibrate it on a reviewed sample until the error rate is low.

Hundreds of thousands
candidate domains a sharp ICP filters down per vertical (estimate)
3
signal tiers: required, preferred, disqualifying
~4%
error target on a reviewed calibration slice
First principle

An ICP is a signal set, not a paragraph

"We want quality travel blogs" cannot be screened — it means something different to every reviewer. A machine-screenable ICP breaks the idea into discrete signals, each one a yes/no question an LLM can answer from what the site actually publishes, each shipped with a confidence score.

Required signals

Every one must hold. These define the floor — a domain that misses any required signal is out, no matter how good it looks otherwise.

Preferred signals

Nice to have. They raise the fit score and let you rank the strongest partners first, without excluding a solid site that lacks one.

Disqualifying signals

Any match removes the domain structurally. This is where you kill whole classes of false positive — competitors, own-commerce sites, thin spun content.

The test of a good signal: two different reviewers, given the same site, would answer it the same way. If a signal is ambiguous, it is not one signal — split it until each piece is decidable.
The drafting steps

Writing the first draft of your ICP

Start from how your affiliate team already vets partners by hand, then make each unspoken rule explicit. Five moves get you from intuition to a screenable definition.

1

List your best partners' traits

Look at the publishers already converting for you. Name the concrete things they share — format, independence, freshness, monetization — not vibes.

2

Name what you always reject

Write down the sites you decline on sight: competitors, coupon-only shells, AI-spun filler. Each becomes a disqualifying signal.

3

Sort into three tiers

Assign every trait to required, preferred, or disqualifying. Keep required tight — over-stuffing the floor shrinks the pool without improving quality.

4

Make each signal decidable

Rewrite fuzzy wording until a reviewer could answer yes or no from the live site. "Reputable" becomes "hands-on testing with original screenshots."

5

Set a fit threshold

Decide how many preferred signals lift a domain to "strong fit." This is the dial you tune during calibration, not a fixed rule.

6

Write it down before running

The definition is agreed in writing before any full run. Everyone sees the same signals, so the output is auditable against a fixed spec.

Worked examples

Three ICPs, expressed as signals

The same three-tier structure adapts to any vertical. Notice how each disqualifier removes a specific, predictable class of false positive rather than a generic "low quality."

Independent travel content publisherfor a flight-metasearch program
Required
Relevant to travel Blog-like structure Individual or duo
Preferred
Affiliate links present Evergreen guides
Disqualifying
Sells inventory itself (OTA)
Hands-on SaaS reviewerfor a developer-tool vendor
Required
SaaS / software focus Hands-on product testing Editorial independence
Preferred
Head-to-head comparisons Fresh reviews
Disqualifying
Thin AI-spun content Vendor-owned
Personal-finance educatorfor a brokerage affiliate program
Required
Personal-finance focus Educational / how-to content
Preferred
Newsletter Tools / calculators
Disqualifying
Get-rich-quick / signals-selling Regulated broker itself
The calibration loop

Precision is measured before it is promised

A draft ICP is a hypothesis. You confirm it by screening a slice, reviewing the results by hand, and tuning the signal wording until the measured error rate is low — then, and only then, running the full universe.

0
domains in a typical review slice
0
target error rate before full run
0
precision confirmed on a reference vertical
0
tuning passes on a hard ICP is normal

Illustrative figures. On a large-scale production run on our own classification platform, a reviewed sample of the full run measured ~96% precision against the client's own judgment. Slice size and passes vary by ICP.

Inside one pass

The ~4% error story, generically

A first draft rarely lands clean. On a representative slice you might see the LLM mark a handful of sites as fits that a human would reject — usually because a signal was worded too loosely and caught word-matches instead of intent. Each disagreement points at exactly which definition to sharpen.

Screen a ~1,000-domain slice Review each: fit or not fit Trace errors to a signal Reword, re-screen, remeasure

"The disagreements are the valuable part — they tell us precisely which signal definition to tighten."

The calibration principle, applied to every engagement

A note on confidentiality

When we share worked examples or sample profiles, the underlying domains are withheld and descriptions are generalized, so the specific publishers stay intentionally not traceable — including via web search. This protects the sites without changing the data or the method. Your own pilot and paid deliverables carry the real domains, screened against your real ICP.

Questions

Defining a publisher ICP — FAQ

How many required signals should an ICP have?
Usually two to four. Each required signal is an AND, so every one you add shrinks the pool. Keep the floor to the traits a partner genuinely must have, and push the rest into the preferred tier where they rank fit without excluding good sites.
What makes a good disqualifying signal?
One that removes a specific, predictable class of false positive — an OTA that sells inventory, a vendor's own comparison page, purely spun content. Structural disqualifiers do more work than a vague "low quality," because they catch sites that otherwise look relevant to a keyword filter.
What is the calibration loop, exactly?
Screen a representative slice with the draft ICP, review each domain by hand as fit or not fit, trace every disagreement to the signal that caused it, reword, and re-screen. The loop repeats until the measured error rate on the slice clears your bar — commonly a few percent — before the full run starts.
Can I define a signal that isn't in your standard set?
Yes. Custom signals — "already works with affiliate networks," "accepts sponsored posts," "covers the enterprise tier" — are defined per engagement and calibrated on the same reviewed sample as the standard ones, so they arrive with the same measured reliability.
Do I need my ICP finished before the pilot?
No. Most clients start from a template ICP for their vertical and refine it during the pilot's calibration. The free pilot delivers the first 20 qualified domains plus a full-run projection, so you see your definition working on real sites before committing.

Turn your partner profile into a screened list

The free pilot calibrates your ICP on a reviewed sample, then delivers your first 20 qualified publishers plus a full-run projection. No cost, no obligation.

Request a Free Pilot