---
name: "linkedin_dm_outreach"
description: "Run LinkedIn DM outreach that gets replies without burning the account: the 200 character connection note, invite pacing and weekly limits, a first message that starts a conversation instead of a pitch, two follow ups with a clean exit, reply triage, and a simple tracking sheet. Use when planning or running a LinkedIn connection or message campaign, drafting connection notes or follow ups, or fixing low acceptance or reply rates."
metadata: { "includeInPrompt": true }
---

# LinkedIn DM Outreach

## Purpose

Run a manual LinkedIn outreach sequence from research to clean exit, at a
pace the account can survive. The sequence is: research and pre touch, a
short personalized connection note, a first message that opens a real
conversation, two follow ups, and a clean exit. Replies get triaged the
same day. Everything is logged in one tracking sheet.

Evidence tiers apply throughout. Official means LinkedIn Help states it.
Reported means practitioners and vendor guides agree in practice but
LinkedIn does not publish the number. Opinion means this skill's own
operating rule. Full figures and sources are in
[references/limits_and_safety.md](references/limits_and_safety.md).

LinkedIn forbids the shortcut version of this work. User Agreement Section
8.2 bans bots and unauthorized automated methods to add contacts or send
messages, and the prohibited software rules ban tools that automate
activity on the site. This skill is a human sends, agent drafts workflow:
draft, check, track, and remind with the tools here, and a person reviews
and sends every invite and message.

## Workflow

### 1. Check the account before any outreach

- Confirm the profile is complete and reads clearly: role, specialty, and
  one piece of proof in the headline and Featured section. Outreach from a
  thin profile converts badly and looks like spam to the recipient.
- Check standing: no active invitation warning, no identity verification
  request, no pile of old pending invitations. Fix standing first.
- Know your note budget. Official: free accounts can add a personalized
  note to up to 3 connection requests per month, each up to 200
  characters. Premium accounts can personalize every invitation, with a
  reported note length of 300 characters. Trust the live counter in the
  composer over any guide, including this one.

### 2. Build a tight target list and pre touch

- Research each person by hand: current role, a recent post or comment, a
  shared group or event, a role change. Write the one specific hook in the
  tracker notes before drafting anything. No hook, no send.
- Tight beats big. Reported restriction logic rewards it: LinkedIn names
  invitations ignored, left pending, or marked as spam as a restriction
  trigger, so a small list with a high acceptance rate protects the account
  better than a large list sprayed widely.
- Pre touch warm targets where you can: one substantive comment on their
  post, or a follow, a few days before the invite. A familiar name gets
  read. A cold name with a pitch gets ignored.

### 3. Pace inside the limits

Full table in [references/limits_and_safety.md](references/limits_and_safety.md).
The working rules:

- Weekly invitations: a limit exists for every account, LinkedIn does not
  publish the number, and the reported ceiling is about 100 per week. Plan
  under it: 15 to 20 invitations per weekday, spread through the day,
  never in one burst. Opinion.
- New or quiet accounts start at 10 per day for two weeks. Opinion.
- Keep weekly acceptance at or above about 30 percent, checked on at
  least 20 invitations. Below that, pause sends and fix targeting.
  Practitioner guidance, not a LinkedIn threshold.
- Withdraw invitations still pending after 3 to 4 weeks, in small batches.
  Official: withdrawing blocks a new invite to that person for up to 3
  weeks, the person is not notified, and withdrawing does not lift a
  restriction already in place.
- Stop the day any limit warning appears. Do not switch accounts or tools
  to work around it.

### 4. Write the connection note

Formula: name, one specific hook, plain reason to connect. No pitch, no
link, no request for a call. Draft it, then run it through the checker:

`python3 scripts/outreach_tracker.py check-note "your note here"`

Worked example, 143 characters, verified with the checker: "Hi Maya, saw
your post on cutting onboarding time at Fieldset. We ran into the same
wall last quarter. Would like to connect and compare notes." More examples
and the bad note to avoid are in
[references/message_scripts.md](references/message_scripts.md).

On a free account, spend the 3 monthly notes on the warmest targets only:
people who saw your comment, spoke at an event you attended, or came by
referral. Everyone else gets a plain invite after a pre touch, or waits
for next month's notes.

### 5. Send the first message after acceptance

Send within 24 hours of acceptance. Goal is a conversation, not a pitch:
one observation tied to the hook, one question they can answer from
experience in under a minute. Aim for 300 to 600 characters. No calendar
link, no deck, no feature list.

Worked example: "Thanks for connecting, Maya. Your post said onboarding
drop off spikes in week two. Is that still where it breaks, or has it
moved earlier?" Full templates are in the scripts reference.

If they message you first, drop the template and answer what they wrote.

### 6. Run two follow ups, then exit clean

- Follow up 1, at 3 to 4 business days with no reply: bring one new useful
  thing, a plain observation or a reframed question. Never resend the
  first message, never use bump filler.
- Follow up 2, at 5 to 7 business days after follow up 1: the exit. Say
  plainly that you will leave it here, wish them well on a real current
  thing, and stop. Templates in the scripts reference.
- After the exit, mark the row exited with no next step. A later restart
  needs a real new trigger at least a month on, or an inbound signal from
  them. Wording changes alone do not count as a trigger.

InMail is a separate lane, not a louder first message. Use it only when
there is no honest connection path. It costs a credit, reported subject
cap 200 characters and body cap 2,000 characters, and you cannot send a
second InMail until they reply. A reply, accept, or decline within 90
days returns the credit, so relevance decides whether InMail is cheap or
wasted.

### 7. Triage every reply the same day

Sort replies into positive, curious or question, not now, objection,
referral, negative, and opt out. Scripts and actions for each type are in
[references/reply_triage.md](references/reply_triage.md).

Two hard rules:

- Answer the question they actually asked before adding anything of yours.
- An opt out gets one short apology, then silence on every channel from
  this campaign. Mark reply type opt_out, stage exited, and clear the
  next step and date. No exceptions, no one last resource.

### 8. Track in one sheet and review weekly

Use [templates/tracking_sheet.md](templates/tracking_sheet.md) or the
bundled tracker. One row per person, updated in place:

`python3 scripts/outreach_tracker.py init campaign.csv`
`python3 scripts/outreach_tracker.py add campaign.csv --name "Maya R" --company "Fieldset" --stage invited --note-used yes --touch-date 2026-10-26 --next-step "wait for accept" --next-date 2026-10-30`
`python3 scripts/outreach_tracker.py summary campaign.csv`
`python3 scripts/outreach_tracker.py due campaign.csv --on 2026-10-30`

Weekly 15 minute review: check acceptance rate, work the due list, clean
pending invitations older than 3 to 4 weeks, count the free note budget
for the month, and confirm every opt out row is fully closed.

### Worked campaign (illustrative, built on the rules above)

A founder targets 60 ops leads over 4 weeks, all researched with a named
hook. Pace is 15 invitations per weekday in week 1 (60 total is too many
for week 1 alone, so the list is split: 40 invitations across weeks 1 and
2, 20 held for week 3 in case acceptance dips). Free account, so only 3
notes go out in the month, all to warm referrals. The other invites follow
a comment pre touch.

Reading the numbers the way this skill teaches: if 40 invitations produce
16 accepts, acceptance is 40 percent, above the guardrail, so the held 20
can go out in week 3. If 16 accepts produce 5 first message replies, 2
follow up replies, 1 meeting, 2 not now replies with dates logged, and 1
opt out closed on the spot, the campaign is working. The fix list for the
next round comes from the losses: which hook got ignored, which question
got answers. Volume stays flat until reply quality, not just acceptance,
holds for two rounds.

If instead the first 20 invitations produce 3 accepts (15 percent), the
campaign stops. The list, the profile, or the hook is wrong. Sending the
remaining 40 at that rate is exactly the ignored invitation pattern
LinkedIn names as a restriction trigger.

## Output Contract

When asked to plan a campaign, deliver: the target criteria and list size,
the pacing plan with the limit tier for each number used, the note budget
plan for the account type, drafts of the connection note, first message,
both follow ups, and the exit, the reply triage plan, and the tracking
sheet set up with the first rows logged.

When asked for a single draft, deliver just that draft, checked: note
drafts with a character count against the right cap, message drafts short
enough to read on a phone. State the evidence tier of any limit you cite.

When asked to review a running campaign, lead with the numbers from the
tracker: sent, acceptance rate, reply rate by stage, pending age, opt outs
closed. Then name the one fix that matters most. Do not recommend raising
volume into a low acceptance rate.

## Operating Rules

- Human sends, always. Drafting, checking, tracking, and reminders can be
  assisted. Sending invites or messages with bots, extensions, scrapers,
  or browser automation breaks LinkedIn rules and risks the account. Say
  so plainly if a request asks for it, and offer the manual workflow.
- No pitch, link, or call request in the connection note or the first
  message. Earn the conversation first.
- One specific true detail per send. If the detail could fit anyone on
  the list, rewrite it or drop the target.
- Respect every no the first time it is said. An opt out closes the row
  permanently for this campaign.
- Never invent numbers. Limits in this skill carry a tier label for a
  reason. When LinkedIn and a vendor blog disagree, say LinkedIn does not
  publish the number and give the reported range.
- No em dashes in any draft this skill produces. Plain, direct sentences.
  Write the way a person talks at work.
