Live Outreach LinkedIn

Connection requests that get accepted.

The format is brutal: 300 characters, no pitch, no preamble, has to read like a thoughtful human in two sentences. The skill drafts 2–3 variants anchored to a real reason to connect, and never tries to pitch in the request itself.

v1.0 Hard 300-char cap 2–3 variants per profile No pitching in request
CR
connection-request-writer.zip
15.2 KB · Bundle: .skill file + SKILL.md inside · v1.0
Download skill
Want to read what it does first? View source ↓
What it does

The request is the door, not the pitch.

The connection request is NOT outreach. Its only job is to get accepted. The pitch comes AFTER. Pitching in the request itself is the #1 reason requests get ignored or rejected, and even when accepted, it sets a salesy tone that ruins the follow-up.

Three hard rules: no pitch, one specific reason to connect (not three), and the 300-character cap is real. Drafts that exceed it get truncated badly by LinkedIn. The skill drafts to spec or notes the overflow explicitly.

The skill requires a specific hook, a profile element, a signal, a mutual connection, or shared context. "Because they're in my ICP" isn't a hook; that's segmentation. The skill pushes back rather than producing generic invites.

Try saying

Any of these will work.

Write me a connection request for [LinkedIn URL]
Draft an invite note that references their recent post.
Personalized connect message to [name] at [company]
Help me phrase a LinkedIn invite, same alma mater as me.
How it works

Five steps.

01

Gather the hook

Profile hook, signal, mutual connection, shared context. If the user can't name a specific reason, the skill pushes back or runs profile-personalization-extractor first.

02

Pick ONE reason

Not three. One. The shorter and more specific, the higher the accept rate. A two-hook request reads as templated.

03

Draft 2–3 variants

Different angles, direct vs curious vs warm. Each under 300 characters, with the character count shown.

04

No pitch, no preamble

No "I hope this finds you well". No "Quick question". No mention of what the user sells. Just: reason + soft pivot.

05

Recommend the strongest

Variants ranked. The skill says "use #2 for this profile" rather than dumping three options without guidance.

Why it doesn't lie to you

The format does the work.

!

No pitching in the request

The pitch comes after acceptance. A mini-pitch in the request is the #1 reason invites get declined. The skill won't draft one even if asked.

#

Hard 300-char cap

LinkedIn truncates over the cap. The skill drafts under by design, with character count shown per variant, and notes overflow explicitly if forced.

@

One reason, not three

Two-hook requests read as templated. The skill commits to one specific reason per variant and uses the rest of the budget for the soft pivot.

?

Generic = pushed back

"They're in my ICP" isn't a reason. The skill asks for the specific hook rather than producing a generic invite that won't get accepted.

The output

Two or three variants, ranked.

Each variant ships with its character count, the hook it's built on, and a one-line note on when to use it. The skill recommends the strongest variant for the specific profile, different angles work for different prospects.

Sample variant
VARIANT 2 (direct) Chars: 247 / 300 Hi Sarah, your post last week on usage-based pricing hit a nerve internally (we're rethinking ours). Would love to follow your thinking. No pitch, just curious about how you arrived at the framework. Hook: Recent LinkedIn post
Request contract
Output
Text (2–3 variants)
Hard char cap
300 (LinkedIn limit)
Required tools
None (hook supplied)
Pitch in request
Never
Variants ranked
Yes
Pairs with
profile-personalization-extractor
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
connection-request-writer-SKILL.md 10.4 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.