17 AI skills for finding customers and making content
linkedin-outreach
get requests accepted and messages opened
How the two work together
Claude thinks it through. Paste the Claude prompt into Claude Code, or drop the folder into your skills folder. Claude does the judgement: what to look for, what is worth doing, what is right.
Codex gets it done. At the hand-off point Claude runs Codex on your machine with one command and passes it the Codex prompt. Codex does the mechanical part and hands the result back. Claude checks it before you see it.
No API key to set up: Claude calls the Codex you already have installed. If Codex is not installed, Claude does that half itself and tells you.
Prompt for Claude
---
name: linkedin-outreach
description: Signal-led LinkedIn notes, first messages, InMails and follow-ups that get replies; use for all LinkedIn outreach.
---
# Get LinkedIn connection requests answered, not just accepted
Per person: note or blank, giving first message, variant, one follow-up, written for the reply.
## Claude does
1. Inputs: {SENDER} (first name, assistant yes/no), {PREMIUM}, profiles, invites plus pending this week and acceptance so far, {GIVES} (genuine offers), who also gets email.
2. Volume guard (Rules) first; under 20% acceptance, segment by industry before writing.
3. One observed public signal each (post, job change, funding, hiring); reject any fitting 100 people or working without the company name; none: "needs context".
4. Stage: unengaged, comment on their posts two weeks first; engaged, invite now; connected, skip to message one (12.2% against 7.9% reply).
5. Note only when genuinely specific: notes barely move acceptance (about 26% either way) but roughly double replies; otherwise blank.
6. Pick the give tied to the signal and one reaction-inviting question, never a commitment.
7. Rotate openers (signal curiosity, market observation, buyer-world, mutual context); no two notes share one.
8. Write {TARGETS}: name, headline, stage, note yes/blank/skip, signal, opener (pattern and angle), give, question, emoji yes/no.
## Then Codex does
Codex turns {TARGETS} into a file per person plus a counted index; only fitting and counting remain.
```
codex exec --sandbox danger-full-access --skip-git-repo-check -C "<working folder>" - < CODEX.md
```
Fill {SENDER}, {PREMIUM}, {TARGETS} into CODEX.md first; read every output before the user does.
## Claude checks
1. Recount by code: notes 200 characters max (300 with {PREMIUM}), unpadded; message one under 400; sentences under 30 words.
2. Strip the company name from each note; still reads fine, reject.
3. Nothing banned in Rules, no unfilled brackets, one real question per message, reacting to the give.
4. No two notes share an opener or first line; every fact traces to {TARGETS}; follow-up adds something new; sign-off matches {SENDER}.
On failure: quote it to Codex, rerun that person, recheck all four.
## Rules
- Public information only; never invent a hook, fact, metric, date or example.
- No pitch, "I build", "I run", link or call ask before they reply; sell in message two or three; one follow-up a week later if new, then silence.
- Banned: repeated notes, generic openers, merge tags, "I came across your profile", "love your work", "impressive", "thought leader", verb first words, em dashes, exclamation marks, AI vocabulary.
- No emojis in notes; at most one per message, if they use them.
- Sign off first name only; an assistant says so.
- Under 40 invites a day, 100 a week including pending, nothing auto-sent, no bursts or pods (LinkedIn UA 8.2); under 20% acceptance, stop.
- Judge by replies, not accepts, against your industry's benchmark.
- Never the email's signal or framing on LinkedIn.
- Name the topic, never where or with which tool you saw it.
## If Codex is not installed
Claude does that section itself and says so.
## Built from
- alirezarezvani/claude-skills, linkedin-engagement: https://github.com/alirezarezvani/claude-skills/blob/main/marketing/linkedin/skills/linkedin-engagement/SKILL.md (25,542 stars, api.github.com)
- xx254/linkedin_skills, draft-outreach: https://github.com/xx254/linkedin_skills/blob/main/draft-outreach/SKILL.md (16 stars)
- julienamorgan/signal-prospecting-kit, outreach: https://github.com/julienamorgan/signal-prospecting-kit/blob/main/skills/outreach/SKILL.md (10 stars)
- Belkins, Outreach Benchmarks 2026: https://belkins.io/blog/linkedin-outreach-study (14,077 contacts)
- Expandi, Connection Message Templates: https://expandi.io/blog/linkedin-connection-message-templates/ (20M+ requests)
- LinkedIn Talent Blog, InMail response rates: https://www.linkedin.com/business/talent/blog/talent-strategy/these-inmails-get-best-response-rates (first-party data)
Prompt for Codex
# Get LinkedIn connection requests answered, not just accepted - Codex task
## You are given
- {SENDER}: first name to sign with; whether an assistant sends.
- {PREMIUM}: yes or no; note cap 200 characters, 300 if yes.
- {TARGETS}: per person: name, headline, stage (engage first, invite now, already connected), note (yes/blank/skip), signal (one observed fact), opener (pattern and angle), give, question, emoji yes/no.
Use only these blocks: no research, no added context, no invented fact, metric, date or example. No signal: write only "needs context".
## Produce
Folder `outreach/`: one file per person, `outreach/<firstname-lastname>.md`, plus `outreach/INDEX.md`.
Each file:
1. **Send when**: "after two weeks of commenting on their posts", "now; message one after acceptance and a pause", or "connected: message one now".
2. **Connection note** (note yes only): one or two sentences on the signal in the assigned opener, ending on a question or implied curiosity, never a call to action, well under the cap. If blank: "Send the request with no note."
3. **Message one**, under 400 characters: opens on the signal, gives the give, ends with the one question and nothing else.
4. **Variant**: message one from another angle on the same give and signal.
5. **Follow-up**, labelled "send once, 7 days later, then stop": opens with something new about the give. Never "just bumping this".
Print each note's and message's character count, counted with code.
INDEX.md: one row per person (file, stage, note yes/blank/skip, opener, note's first three words, character counts for note, message one, follow-up), then a batch check naming any two notes sharing an opener or first three words.
## Rules
- Sentences under 30 words; one question per message at most, with a question mark; conversational, peer to peer, no salutation or sign-off padding.
- Never start with a verb. Never "I came across your profile", "love your work", "impressive" or "thought leader".
- No em dashes, exclamation marks, hedging or AI vocabulary (leverage, seamless, unlock, delve).
- No pitch, "I help", "I build", "I run", call ask or link in the note or message one: "Curious if this matches what you're seeing?" passes, "Open to a 15-minute call?" fails.
- Never say how they were found or name a platform or tool.
- No emojis in the note; at most one in a message, only when emoji is yes.
- Sign off with the {SENDER} first name, no title or company; an assistant signs "<Name>'s assistant".
- No two notes share a first line or opener. No third message.
## Return
Print people processed, files written, folder path, any note that could not fit the cap without losing its signal, any batch clash, then `outreach/INDEX.md` in full.
Built from the best public work on this
Sources for "Get LinkedIn connection requests answered, not just accepted"
Every source below was opened and its figures re-checked on 5 September 2026. GitHub star counts come from api.github.com on that date and matched the claimed numbers exactly.
Built from
- alirezarezvani/claude-skills, linkedin-engagement: https://github.com/alirezarezvani/claude-skills/blob/main/marketing/linkedin/skills/linkedin-engagement/SKILL.md (25,542 stars, api.github.com; 3,607 forks, MIT, pushed 30 August 2026). Gave us the goal ("the note earns the conversation, not the meeting"), the sequence (comment for two weeks, invite with something specific, ask once and small after acceptance, one follow-up a week later only with something new), the 200-character cap (300 on Premium), the volume guard (refuse over 40 invites a day, stop under 20% acceptance), the rule that nothing is auto-sent (LinkedIn User Agreement 8.2), and the correction that a note barely moves acceptance (about 26.4% either way) but roughly doubles post-accept replies.
- xx254/linkedin_skills, draft-outreach: https://github.com/xx254/linkedin_skills/blob/main/draft-outreach/SKILL.md (16 stars; 6 forks, pushed 18 May 2026). The most copy-pasteable message-writing rule set found: open on the specific signal, never "I came across your profile", no verb openers, no em dashes, sentences under 30 words, at most one question, no fabricated claims, message one must give something tied to the signal, meeting asks only in message two or three after a reply, plus a variant with a character count. Its vendor plug for LinkedNav was stripped.
- julienamorgan/signal-prospecting-kit, outreach: https://github.com/julienamorgan/signal-prospecting-kit/blob/main/skills/outreach/SKILL.md (10 stars; 1 fork, pushed 24 May 2026). The only source with a self-check list for notes: count the characters before presenting, no two notes in a batch share an opener pattern, and "remove the company name; if it still works for any company, personalisation failed". Also the four rotating opener patterns (signal curiosity, market observation, buyer-world, mutual context), the ban on "I build" and "I run" in the note, and the rule never to explain how you found them or name the platform.
- Belkins, Outreach Benchmarks 2026: https://belkins.io/blog/linkedin-outreach-study (14,077 contacts; 34 campaigns, January to December 2025, plus 15.1M Expandi touchpoints). Primary data: with a note 25.3% accept and 8.2% reply; without, 27.6% and 5.3%. Existing connections reply at 12.2% against 7.9% for new requests. AI-assisted copy 7.3% against 7.0%, so targeting matters more than wording; segment by industry before touching copy.
- Expandi, Connection Message Templates: https://expandi.io/blog/linkedin-connection-message-templates/ (20M+ requests; 26.42% acceptance with a note, 26.37% without; 9.36% against 5.44% reply; plus Expandi's own 13,302-account benchmark at 29.61% acceptance). Source of the 200-character rule, "no sales ask in the request", and the trigger-led templates.
- LinkedIn Talent Blog, InMail response rates: https://www.linkedin.com/business/talent/blog/talent-strategy/these-inmails-get-best-response-rates (first-party data; tens of millions of InMails, May 2021 to April 2022). Under 400 characters gets 22% more responses than average, over 1,200 gets 11% fewer, individually sent messages respond about 15% better than bulk, 65% of responses arrive within 24 hours. The only first-party message-length dataset.
Best public prompt we found for this job
From xx254/linkedin_skills, draft-outreach/SKILL.md, Step 3, quoted verbatim (two signal-type bullets elided with [...]; the em dashes and arrows are the source's own punctuation, kept unchanged):
https://github.com/xx254/linkedin_skills/blob/main/draft-outreach/SKILL.md
Write a connection request message under configured char cap. Hard rules:
- Reference the signal or recent activity directly
- No pitch in the first message
- Never say "I came across your profile"
- Do not start with a verb
- No em dash
- Write as if speaking, not composing an email
- Max questions = configured value
- Include no fabricated claim, date, or metric
**Value-first rules (strictly enforced):**
- Never end the first message with "Open to a quick exchange?", "Open to a quick chat?", "Would love to connect", or any variation of a meeting/call ask
- The first message must give something — a relevant resource, an insight tied to their role or signal, a specific data point, a piece of content they would actually want
- The value offered must connect to the signal. Examples by signal type:
- `post_engagement` / `post_comment` → reference what they engaged with; share the most-requested follow-up material or a related insight
- `profile_view` → connect to their current role challenge; offer something that addresses that challenge directly
- `job_change` → acknowledge the transition; share something useful for the new role
[...]
- Meeting or calendar asks belong in the **second or third message**, after a reply has been received
- A question at the end is allowed only if it invites a reaction to the value given, not a commitment to a call ("Curious if this matches what you're running into" — yes. "Open to a 15-minute call?" — no)
Also write one variant with a different value angle on the same signal.
Why this one: it is the most complete copy-paste rule set for the message itself, and every rule in it is corroborated by the 25,542-star alirezarezvani/claude-skills linkedin-engagement skill (refuses templates, refuses an ask in a first-touch note, 200-character cap) and by the Belkins, Expandi and LinkedIn data above. Pair it with the alirezarezvani sequencing rule: comment for two weeks, invite with something specific, then after acceptance ask once, small; one follow-up a week later, only with something new.
Want this running in your business?
I optimise how businesses run — your sales, your visibility, your social media — and build bespoke software where nothing off the shelf fits. The first conversation is free. Work starts from £150 a day.
Foxera