Use when running LinkedIn social selling as a repeatable motion — Sales Navigator saved searches and trigger alerts, weekly request budgets, fixing a low acceptance rate, turning profile views and post engagers into warm threads, logging every touch. NOT the note or DM copy (that is `cold-outreach`), NOT the deal after a reply (that is `sales-pipeline`).
Scanned 9/2/2026
Install to Claude Code
npx -y skills add ericrisco/rsc-harness --skill linkedin-outreach --agent claude-codeInstalls into .claude/skills of the current project.
Are you the author of Linkedin Outreach?
Add the live security badge to your README — it updates automatically with every re-scan.
[](https://www.skillsdirectory.com/skills/ericrisco-linkedin-outreach)More formats (shields.io, HTML) on the badges page.
---
name: linkedin-outreach
description: "Use when running LinkedIn social selling as a repeatable motion — Sales Navigator saved searches and trigger alerts, weekly request budgets, fixing a low acceptance rate, turning profile views and post engagers into warm threads, logging every touch. NOT the note or DM copy (that is `cold-outreach`), NOT the deal after a reply (that is `sales-pipeline`)."
tags: [linkedin, social-selling, sales-navigator, outreach, pipeline]
recommends: [cold-outreach, lead-gen, sales-pipeline, linkedin-strategy, linkedin-content]
origin: risco
---
# Linkedin Outreach — The Loop and Its Ledger
*You run the LinkedIn social-selling motion and keep its score: **who** to touch, **when**, through **what** warm-up, and **how** the loop is run and logged. The thesis is warm-first — engagement before connection, signal before send, ledger before "I'll remember it." The output is a running system plus a touch ledger under `02-DOCS/`, never a finished line of copy: when prose is needed you write the brief and hand it off, then stay in the loop.*
## Boundary
The sharpest line is against `../cold-outreach/SKILL.md`, and it splits on message-vs-system:
- **A single message** — the connection note (≤300 chars), the DM bump, its wording and per-inbox send cadence → cold-outreach. If the ask is "write this" or "fix this template," it is not yours.
- **The system** — who to touch, when, the warm-up, the budget, the ledger → here. When both are in play, this skill drives and delegates the copy.
Also not yours: sourcing / scoring the raw prospect list and ICP definition → `../lead-gen/SKILL.md`; the deal after a reply, i.e. stages, forecast, CRM tasks → `../sales-pipeline/SKILL.md`; writing or scheduling LinkedIn *posts* → `../linkedin-content/SKILL.md`; brand growth and positioning → `../linkedin-strategy/SKILL.md`.
## The loop
Five phases, in order. Each has a *why* and yields one artifact; the artifact gates the next phase. Skipping a phase is how acceptance collapses.
1. **Target** — *why:* outreach timed to a reason beats outreach timed to a calendar. → Yields a Sales Nav saved search + trigger alerts (job change, funding, recent post).
2. **Warm** — *why:* a cold, context-free request is the worst-accepting move you can make; engaging first is what fixes it. → Yields a logged pre-touch (profile view + one genuine comment/like 1–2 days prior).
3. **Connect** — *why:* the request is the smallest, most rate-limited move; spend it deliberately. → Yields a sent request inside the weekly budget, note-or-no-note chosen by goal.
4. **Convert** — *why:* an accept is not a conversation; the choreography turns a signal into a warm 1:1. → Yields a thread with a real reply, copy delegated to cold-outreach when needed.
5. **Log** — *why:* a motion you can't measure you can't repeat or fix. → Yields a row in the `02-DOCS/` ledger with the outcome.
Each phase gets a section below; the last one compresses all five into a day.
## Target with Sales Navigator
Build the saved search from the ICP, not from a name list:
- **Filters that matter:** geography, current job title (use the title field, not keywords, to avoid past-role noise), seniority, company headcount, industry, and `Posted on LinkedIn in past 30 days` (active profiles accept and reply far more). Save it; Sales Nav re-runs it and surfaces new matches.
- **Trigger alerts worth turning on:** *changed jobs in last 90 days* (new role = new budget, new pain), *company funding events*, and *posted recently* (a fresh post is your warm-up hook). Time the request to a trigger, never to a Tuesday.
- **InMail reality:** Core and Advanced both ship **50 InMail credits/mo**, rolling over up to 3 months (max 150 accumulated); an InMail that gets a reply within 90 days is **credited back**. Spend InMail on out-of-network leads where a connection request can't reach — not on people you could warm up and connect to for free.
Free vs Core vs Advanced — buy on the job, not the brand:
| You need | Tier | 2025 price | Why |
| --- | --- | --- | --- |
| Run the loop on a tight ICP, manual budget | Free | $0 | Works if you stay disciplined; no saved-search alerts. |
| Saved searches, 40+ filters, lead/account alerts, 50 InMail/mo | Core | $119.99/mo ($1,079.88/yr) | The default for a working social seller. |
| + TeamLink, Smart Links, buyer-intent, Account/Lead IQ, CRM sync | Advanced | $159.99/mo ($1,799.88/yr) | Only when a team or CRM sync is real. |
Filter recipes per ICP, trigger-alert setup, and the full Core-vs-Advanced buy math → `references/sales-navigator-playbook.md`.
## The connection motion
**Engagement-before-connect ritual.** 1–2 days before the request: view the profile, follow the company page, and drop **one genuine** comment or like on a recent post. This is what moves acceptance from ~20–30% (cold) to ~60%+. Log the pre-touch — it is phase 2, not optional flavor.
**Note or no note — read the paradox correctly.** A personalized note barely moves *acceptance* (26.42% with vs 26.37% without; some 2025/26 datasets show no-note accepting *higher*). But a note with real context nearly **doubles the post-accept reply rate** (9.36% vs 5.44%). So decide by goal:
| Your goal | Note? | Why |
| --- | --- | --- |
| Maximize the **accept** (build network, retarget later) | No note (or near-empty) | Notes don't lift acceptance; an empty request often accepts as well or better. |
| Maximize the **reply** after accept | Short context note | Real context roughly doubles reply; worth the friction only when you have a true hook. |
| No genuine hook exists | No note | A generic note is worse than none — it reads as a pitch. |
When you do send a note, you do **not** write it here — hand the brief (the hook, the person, the goal) to `../cold-outreach/SKILL.md`.
**Weekly request budget — the cap is a rolling weekly limit, not a daily reset.**
| Account | Realistic weekly cap | Daily target | Health rule |
| --- | --- | --- | --- |
| Free | ~100/wk | ~20/weekday, stay under ~80/wk | Pause and warm more if acceptance drops below ~30%. |
| Premium / Sales Nav | up to ~200/wk | up to ~40/day | Only with strong SSI and acceptance >40%; otherwise treat as free. |
Over the cap, requests get throttled or the account flagged. Below ~30% acceptance you are spraying — go back to phase 2 instead of pushing volume, and withdraw stale pending requests before they pile up.
## Engagement → conversation
A signal is an opening. Match the signal to a play; the play is choreography (timing, sequence, what to reference), never finished prose.
| Signal | Play | Copy? |
| --- | --- | --- |
| Connection just accepted | Wait, don't pitch. Reference *why* you reached out (their post/role/trigger), ask one genuine question. | Brief → cold-outreach |
| Profile viewer (they viewed you) | Soft, warm reply: "Saw you stopped by — noticed [their thing], curious how you handle X?" | Brief → cold-outreach |
| Post engager (liked/commented your post) | Thank or build on their comment, then DM a related question tied to their work. | Brief → cold-outreach |
| Comment thread (they engaged a third party's post) | Add value in-thread first, connect with that context the next day. | Brief → cold-outreach |
Worked example — the move, not the words:
```text
Bad (pitch-on-accept):
Accepted → "Thanks for connecting! We help teams like yours cut reporting
time 40% with our analytics platform — open to a 15-min demo Thursday?"
Reads as a trap; reply rate craters.
Good (reference-then-ask):
Accepted → "Appreciate the connect — your post on attribution gaps in
ecommerce hit home. How are you splitting paid vs organic credit right now?"
Opens a real thread; the product never comes up until they ask.
```
## Hand off to pipeline
You run the loop up to a **warm intro or a booked call** — then you stop and hand off.
Buying-signal tells in a thread: they ask about price/timeline, mention an active project or pain, reference budget or a decision date, or say "send me more." When you see one:
1. Book the call or send the warm intro.
2. Log the outcome (`call_booked`) in the ledger.
3. Hand the thread + context to `../sales-pipeline/SKILL.md` — the moment a deal exists it is theirs, and you set no stages or forecasts.
## The ledger (02-DOCS)
One file. Path: `02-DOCS/linkedin-outreach/touches.csv`. The header row is fixed (verify.sh checks it verbatim):
```csv
date,name,profile_url,channel,trigger,action,stage,outcome,next_touch
```
- `channel`: `connect` | `inmail` | `dm` | `comment` | `view`.
- `outcome` (enum, no blanks): `requested` | `accepted` | `replied` | `conversation` | `call_booked` | `dead`.
- Never leave a literal merge token (`{first_name}`, `[company]`, `XXXX`, `TODO`) in a cell — verify.sh fails on it.
Full column spec, the outcome enum, a filled 5-row example, and the weekly-review formulas → `references/ledger-schema.md`.
**Weekly review ritual** (15 min, same day each week). Compute from the ledger:
- **Acceptance %** = accepted ÷ requested.
- **Post-accept reply %** = replied ÷ accepted.
- **Conversations → calls %** = call_booked ÷ conversation.
- **Touches/week** = rows added this week (is the loop actually running?).
If acceptance < ~30%, warm harder (phase 2). If reply < ~10%, your hooks are weak (better brief to cold-outreach). If touches/week is near zero, the loop stopped — that's the real failure.
## Anti-patterns
| Bad | Why it bites | Do instead |
| --- | --- | --- |
| Spray connection requests over the cap | Rolling weekly limit; throttled or account-flagged | Stay under ~80/wk free, ~200 Premium with >40% accept |
| Pitch the instant a connection accepts | Reads as a trap; reply rate craters | Reference their context, ask one real question first |
| Automation that ignores the rolling limit | Bursts trip LinkedIn's detection; account at risk | Pace within the budget; warm-up beats volume |
| Read "notes don't help" as "context never helps" | Notes don't lift *accept*, but context doubles *reply* | Decide note by goal: accept→none, reply→context |
| Chase SSI as the goal | SSI is a lagging proxy; high SSI ≠ pipeline | Track acceptance/reply/calls; let SSI follow |
| Run outreach with no ledger | No measurement → no repeatable motion | Log every touch + outcome to `02-DOCS/` |
## Daily 30-minute routine
Run this as a checklist; it is the loop compressed into a day.
- [ ] **Engage (10 min):** comment genuinely on 5–8 posts from your saved search and from people you plan to connect with this week (phase 2 warm-up bank).
- [ ] **Connect (5 min):** send today's requests from the saved search / trigger alerts, inside the weekly budget; note-or-no-note by goal (phase 3).
- [ ] **Convert (10 min):** progress 2–3 warm threads — accepted connections, profile viewers, post engagers — using the signal→play table; delegate any copy to cold-outreach.
- [ ] **Hand off (2 min):** any buying signal → book/intro, then route to sales-pipeline.
- [ ] **Log (3 min):** write every touch and outcome to `02-DOCS/linkedin-outreach/touches.csv`.
Weekly, run the review ritual and adjust the next week's targeting. That closes the loop back to phase 1.
Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.
No comments yet. Be the first to comment!