Live ICP Research

An ICP, pulled from any signal source.

URL, transcript, deck, brief, or customer list. The skill reads it and emits a structured ICP. JSON plus readable summary. Every field traces back to evidence. Anything load-bearing it cannot find, it asks you about.

v1.0 Web search required Outputs JSON Schema-compatible
IC
icp-extractor.zip
17.2 KB · Bundle: .skill file + SKILL.md inside · v1.0
Download skill
Want to read what it does first? View source ↓
What it does

Built to feed downstream targeting.

An ICP is only useful if the next skill in the chain (account discovery, lead lists, outreach) can trust it. The fastest way to ruin that chain is to fill blanks with plausible defaults the source never supported.

This skill is opinionated about evidence. Every field on the output JSON traces to either a quote in the source or a confirmed answer from you in chat. Anything load-bearing that's missing gets flagged as an ASK before the ICP is written, not silently defaulted.

It handles five input shapes natively: company URLs, sales call transcripts, decks and one-pagers, pasted briefs or Slack notes, and customer lists. The customer-list path runs in reverse-ICP mode, finding patterns across real deals.

Try saying

Any of these will work.

Extract the ICP from teamlinkd.com
Here's a sales call transcript. Turn it into an ICP doc.
These are our 12 best customers. Build an ICP from them.
Pull an ICP from this deck.
How it works

Five steps. Asks before assuming.

01

Detect the input shape

URL, transcript, deck, brief, customer list. Each gets read differently. The skill picks the right reader.

02

Extract anchored signals

Pulls every targeting hint actually present, tied to a quote or page section. No anchor means the category is absent, not assumed.

03

Map and flag

Tags every signal as direct, inferred, ask, or unknown. Stops to confirm anything load-bearing before emission.

04

Build the schema

Firmographics, technographics, personas, pain points, triggers, exclusions. Empty fields stay empty, never filled with defaults.

05

Emit JSON and summary

Downloadable ICP JSON (schema-compatible with the rest of the library) plus a one-screen readable summary.

Why it doesn't lie to you

Built around the things that usually go wrong.

!

Unknown is a real field

Empty fields stay marked "unknown" on the output. They never get filled with a plausible default that downstream skills then treat as truth.

@

Marketing vs. reality

When customer logos on the site contradict the hero copy, both get surfaced. The skill doesn't silently pick which version to trust.

?

Source traces required

Every non-unknown field has an anchor: a quote, a URL, or a confirmed user answer. Downstream skills can audit where each criterion came from.

×

Headcount language is fuzzy

"Mid-market" means very different things in different categories. The skill confirms the actual band, never accepts the label at face value.

The output

Structured JSON, plus a summary you can scan.

The ICP gets emitted in two forms. A JSON file that downstream skills consume directly (same schema across all the Linkd ICP skills) and a readable preview in chat so you can sanity-check before running discovery on it.

Sample output
{ "icp_name": "Mid-market SaaS RevOps", "firmographics": { "industries": ["B2B SaaS"], "headcount_range": {"min": 200, "max": 2000}, "geographies": ["United States"], "customer_type": ["mid-market"] }, "personas": [{ "title_patterns": ["VP RevOps", ...], "role_type": "economic_buyer" }] }
ICP contract
Output
JSON (.json)
Schema
Linkd ICP v1
Cross-skill
Lookalikes, account lists
Required tools
web_search, web_fetch
Source traces
Every field
Reverse-ICP mode
Customer lists (5+)
Install

Pick your Claude. Drop in the skill.

The download is a zip containing two things: the .skill file (what you upload to Claude) and a SKILL.md sidecar (the human-readable instructions). Unzip first, then follow the steps for your Claude.

Most people

Claude.ai or Desktop

  1. Download and unzip the bundle.
  2. Open or create a Project in Claude.
  3. Go to Project knowledge, click Add content.
  4. Upload the .skill file from the unzipped bundle.
  5. Start a new chat in that project. Ask it to run the skill.
Download bundle ↓ No restart needed
›_
Developers

Claude Code

  1. Download and unzip the bundle.
  2. Unzip the inner .skill file too (it's also a zip).
  3. Move the resulting folder into ~/.claude/skills/
  4. Restart Claude Code.
  5. Type a prompt that fits the trigger. The skill loads automatically.
Download bundle ↓ macOS / Linux / WSL
{ }
Builders

API or Agent SDK

  1. Download and unzip the bundle.
  2. Open the SKILL.md sidecar to read the full instructions.
  3. Load via the Skills API, or paste the instructions into your agent's system prompt.
  4. Make sure your agent has web_search and file output enabled.
  5. Ship it.
Source

Read the full instructions.

This is exactly what Claude reads when the skill triggers. No hidden prompts, no separate config. What you see here is what you get.

MD
icp-extractor-SKILL.md 11.9 KB · the full skill instructions
Loading SKILL.md...

Need help implementing this on your team?

We'll install the skills, customize them to your workflow, and run the output through your team's combined LinkedIn network. Skills do the research, Linkd does the motion.