Live Outreach LinkedIn

Personalization hooks, anchored to the profile.

Drop in a LinkedIn URL or paste the profile text. The skill returns 3–5 specific hooks, every one tied to a quote from the source. The generic "saw you've been busy lately" stuff gets dropped, not dressed up.

v1.0 Web fetch (with paste fallback) Outputs ranked hooks HIGH / MED / LOW strength
PE
profile-personalization-extractor.zip
13.7 KB · Bundle: .skill file + SKILL.md inside · v1.0
Download skill
Want to read what it does first? View source ↓
What it does

Specificity is the whole game.

Generic personalization is worse than none, it signals automation. Fabricated personalization (claiming experience they don't have, naming companies they never worked at) is a disqualifier that ends conversations before they start.

The skill scores each candidate hook on three dimensions: specificity (could this ONLY apply to this person?), recency (last 90 days = strong, 2+ years old = drop), and engageability (gives the user something to actually say, not just acknowledge).

Recent activity ranks highest, posts they authored, comments they engaged with, their Featured section. Static credentials like skills endorsements rank last. Everyone has those; referencing them signals automation.

Try saying

Any of these will work.

Find personalization hooks for [LinkedIn URL]
What should I open with for this prospect?
Give me 5 hooks from this pasted profile.
Personalization angles for this LinkedIn
How it works

Five steps.

01

Fetch or paste

Tries web_fetch first; falls back to pasted content when LinkedIn blocks. Tells you plainly when it can only see partial data.

02

Inventory four tiers

Recent activity → career narrative → About/Headline → static credentials. In that priority. Everyone has skills; not everyone has a recent opinionated post.

03

Score each candidate

Specificity, recency, engageability. Drops LOW-specificity hooks even if they're real. "Your impressive career in B2B SaaS" applies to millions.

04

Flag what's missing

Thin profile, no recent posts, partial fetch, surfaced as gaps. Doesn't fill them with invention.

05

Emit ranked hooks

Each hook ships with source, signal, an example opener, and a strength rating. Plus a "hooks not included and why" block.

Why it doesn't lie to you

Built around the things that usually go wrong.

!

Never invent profile content

If you can't see a "recent post about pricing", the skill won't claim there is one. Login-walled fetches get surfaced as such; nothing gets quietly paraphrased.

@

Static credentials = weak hooks

Degrees, certifications, skills endorsements. Everyone has them. Referencing them in cold outreach signals templated work, so the skill flags them as weak and won't lead with them.

?

Strength rating attached

Every hook ships with HIGH/MEDIUM/LOW specificity. The user picks which to use. Nothing gets silently promoted to "strong" to pad the count.

×

Tone-sensitive content stays off-table

Health journeys, family situations, activism, layoffs, flagged and skipped. Never used as cold-outreach openers, even when they'd "personalize" well.

The output

Each hook ships with its source quote.

Three parts per hook: where it came from, what's specifically true about this person, one concrete way to open with it. Plus the draft opener so the user can decide whether the hook is actually usable.

Sample output
HOOK 1, Pricing post on Oct 14 Source: LinkedIn post, prospect's profile activity feed The signal: Argued RevOps should report to the COO, not CFO How to use it: Reference the COO/CFO framing, ask what changed their mind. Strength: HIGH specificity
Hook contract
Output
Markdown / text
Hooks per profile
3–5 (or fewer)
Required tools
web_fetch (paste fallback)
Strength rating
HIGH / MED / LOW
Tone-sensitive flag
Yes
Pairs with
connection-request-writer
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
profile-personalization-extractor-SKILL.md 9.2 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.