Linkedin Outreach — The Loop and Its Ledger
SkillDocs & knowledgeUse 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`).
Available today. Use it from your connected AI after setup.
No other account needed.
Connect ahel once, and every AI you use reads what you have installed.
Then ask your AI: use the Linkedin Outreach — The Loop and Its Ledger skill
What this skill tells your AI
The instructions your AI receives, as published by ericrisco/rsc-harness in skills/linkedin-outreach/SKILL.md and read by ahel’s review.
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.
- 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).
- 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).
- 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.
- 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.
- 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:
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:
- Book the call or send the warm intro.
- Log the outcome (
call_booked) in the ledger. - 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):
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.
Signals
- GitHub stars
- 82
- Forks
- 3
- Last commit
- Sep 2026
Advanced
- Catalog kind
- skill
- Gateway key
linkedin-outreach- Source
- github.com/ericrisco/rsc-harness