# Outreach

> Use this skill when the user needs to draft, sequence, or refine outbound prospecting messages — cold email, cold LinkedIn DM, warm-intro requests, follow-up touches, or multi-touch sequences. Triggers include any mention of 'outreach', 'cold email', 'cold outbound', 'cold DM', 'LinkedIn outreach', 'warm intro', 'intro request', 'reach out to', 'prospecting', 'outbound sequence', 'follow-up', 'prospecting messages', 'how do I contact', or 'help me write an email to'. Founder-led, plain-spoken, specific-not-generic style. Reads `pmm-context.md` and (if available) persona and positioning artifacts first. Outputs channel-specific messages with subject lines, hooks, CTAs, and a multi-touch cadence. Do NOT use for content marketing, customer-facing email campaigns to existing customers, lifecycle marketing, or competitive battlecards — those are different skills.

- Skill: `dirknicol/outreach` (Agent Skill, multi-file: 2 files)
- Install (CLI): `npx skillmds@latest add dirknicol/outreach`
- Raw SKILL.md: https://api.skillmd.com/api/skills/dirknicol/outreach/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Marketing & Growth
- License: MIT
- Author: dirknicol (https://skillmd.com/u/dirknicol)
- Updated: 2026-09-17
- Page: https://skillmd.com/skills/dirknicol/outreach

---


# Outreach

## What this skill does

Outbound that actually books meetings — cold email, LinkedIn DM, warm-intro request, follow-ups. The default failure mode of outbound is generic templates that get ignored; this skill produces messages that sound like a specific person reaching out to a specific other person about a specific reason.

Especially built for founder-led sales motions: solo or small teams running outbound directly, not handing it to an SDR factory.

## When to invoke

- User is starting a prospecting sprint and needs the actual messages
- User has a target list and needs to write to them
- User has sent a first touch and needs the follow-up cadence
- User has a warm connector and needs the intro-request language
- User's cold messages are getting ignored and they need to debug what's failing

## Prerequisites

1. **Read `pmm-context.md` first when available.** Specifically pull voice, positioning, proof points, and claim boundaries. If it is missing, offer to run `pmm-context`. If unavailable or declined, collect a minimum brief covering offer, recipient, reason now, proof, voice, constraints, CTA, and channel. Mark assumptions and continue.
2. **Read persona artifacts if available** — outbound to "Alex" (agency principal) is fundamentally different from outbound to "Carmen" (RIA CCO). Match the message to the recipient.
3. Ask the user for the specifics:
   - **Who** are they reaching out to? Specific person + role + company, or a target profile?
   - **Why this person, why now?** (the hook — must be specific, not generic)
   - **What's the desired next step?** (15-min call, demo, intro to someone, response to a question)
   - **Cold or warm?** (Are they a stranger, a connection, a referral?)
   - **Channel?** (Email, LinkedIn DM, in a community/Slack, text)

If the user can't articulate "why this person, why now," **stop and ask**. Outbound without a specific reason for THIS person is what fails. Generic "I'd love to chat about AI" doesn't work.

## Core principles

Internalize these before drafting anything:

1. **Specificity beats persuasion.** "I saw your post about agency lead-gen on Tuesday" beats "I help agencies grow." Every cold message earns or loses its right to be read in the first 8 words.
2. **Show, don't tell.** Don't claim you understand their problem — demonstrate it by referencing something specific they've said, written, or done.
3. **Short wins.** Keep cold email and LinkedIn messages as short as the specific context allows. Treat the word limits below as editing constraints, not universal performance benchmarks.
4. **One CTA.** Every message ends with exactly one ask. Multiple options = decision fatigue = no response.
5. **No fake personalization.** "I noticed your company is in [industry] and growing" is worse than no personalization. People can smell template-merge.
6. **Voice consistency.** The message should sound like the same person who wrote the company's website, the founder's LinkedIn posts, the demo. Mismatch breaks trust.
7. **Measure outcomes, not opens.** Track positive reply rate, qualified meetings, and pipeline created. Use negative replies and non-response diagnostically; treat open rates as noisy directional data.

## Workflow

### Step 1 — Capture the brief

Ask the user (in this order, but conversationally — don't dump as a form):
- Who are they reaching out to?
- What's the specific reason for THIS person? (the hook)
- What's the desired outcome of the message?
- What channel?
- Cold, warm, or referred?
- Anything they want included or specifically avoided?

Do not draft until you have specifics. If user says "PR agencies" — push back to ask for the specific person or at minimum the specific firm they have in mind. Generic outreach drafted from generic targets is worthless.

### Step 2 — Build the hook

The hook is the first sentence — what earns the right to be read. Strong hooks come from:

- **Something they said publicly** — recent post, podcast appearance, talk, article, hire announcement
- **Something they did** — launched a product, raised a round, posted a job, expanded to a region
- **Something specific to their company's situation** — competitor pressure, market shift, a customer they just announced
- **A shared connection or context** — mutual person, shared event, similar role at a previous company
- **A specific observation about their work** — *not* generic flattery; a specific noticing

The hook is **not**: "I see you're a [title] at [company]." That's metadata, not a hook.

### Step 3 — State the bridge

One sentence that connects the hook to why you're reaching out. The bridge is where most outreach fails — it either jumps to "and so I do X" too fast, or it disappears into a paragraph of company description.

Bridge formula: *"[Hook]. [Specific reason this matters to them]. [One-sentence reason you're relevant]."*

Bridge example (cold email to agency principal):
> *"Saw your post on Tuesday about agencies needing AEO services. We've been running an AI visibility audit specifically as a lead-gen wedge for PR agencies — three boutique agencies are testing it now."*

### Step 4 — Make one specific ask

End with one CTA. Choose the smallest plausible commitment.

| Ask | When to use |
|---|---|
| "Worth a 15-min call to compare notes?" | Cold, peer-to-peer, exploratory |
| "Can I send you the audit output for [their company]?" | Cold, with a specific value-add |
| "Are you the right person to talk to, or is there someone else on your team?" | Cold, you're not sure of the right contact |
| "Mind if I send a 2-min Loom?" | Cold, you want to demo without scheduling |
| "Would love your honest take — even a 'not interested' reply would help me calibrate." | Cold, calibration sprint |
| "Could you intro me to [name]? Happy to share context first." | Warm-intro request |

### Step 5 — Generate variants

For most outreach, produce 2-3 variants on different vectors:

- **Different hooks** (if the user has multiple plausible hooks to test)
- **Different lengths** (short version + slightly longer version)
- **Different asks** (15-min call vs. send-them-something)

Variants let the user pick what feels right and learn from what works.

### Step 6 — Build the cadence

A single message is rarely enough. Default cadence for cold outbound:

| Touch | Day | Channel | Purpose |
|---|---|---|---|
| 1 | Day 1 | Email or DM | Initial outreach (Step 1-4 above) |
| 2 | Day 4 | Email/DM | Bump — "wanted to make sure this didn't get buried" |
| 3 | Day 10 | LinkedIn or alt channel | Channel switch + value add (share a relevant link, observation) |
| 4 | Day 21 | Email | Final touch — "breaking up" message; specific reason to revive in future |

Adjust for context — warm intros usually need fewer touches; enterprise sales need more.

## Outputs

### A. The primary message
Channel-appropriate format. For email: subject line + body. For LinkedIn DM: ~60 words max. For warm-intro request: short, structured for the connector to easily forward.

### B. 1-3 variants
On different hooks, lengths, or asks.

### C. Cadence (if multi-touch)
A 3-4 touch sequence with timing and channel. Each follow-up message drafted.

### D. The "what to do with replies" notes
Quick framing on:
- Positive reply → what to send next
- Objection ("we don't need this") → response or graceful exit
- No response → when to stop and how to leave the door open

## Channel-specific templates

### Cold email (the workhorse)
```
Subject: [specific to recipient — not "Quick question" or "Re: AI"]

[Hook — 1 sentence, specific to them]

[Bridge — 1-2 sentences, why you're reaching out + why you're relevant]

[Optional: 1 specific proof point or evidence]

[One CTA — specific, low-commitment]

[Sign-off — first name, optional 1-line credibility footer]
```

Length target: 60-100 words.

### Cold LinkedIn DM
```
[Hook — even shorter than email, 1 sentence]
[Why you're reaching out — 1 sentence]
[One CTA — specific]
```

Length target: 40-60 words. No subject line. No formal sign-off.

### Warm-intro request (to the connector, not the prospect)
```
Hey [name],

Wanted to ask if you'd be willing to make an intro to [prospect name] at [company].

Context: [1-2 sentences on why you want the intro and why they'd care]

Happy to send forward-ready text if helpful — here's a draft you could just paste:

---

[The "forward-ready" version — written as if from the connector to the prospect, 3-4 sentences, including a clear hand-off CTA]

---

If you'd rather pass, no worries at all.

Thanks,
[Name]
```

The forward-ready draft is critical. Connectors are more likely to act when they can review and send paste-ready copy instead of drafting the introduction themselves.

### Community/Slack outreach
```
[Specific reference to a discussion or post in the community]
[One sentence on why you're reaching out]
[CTA — usually offering value, not asking for time, in community contexts]
```

Communities are different — leading with an ask gets you flagged. Lead with offering, ask in DMs after.

## Quality bar

- **Specific person, specific reason, specific ask.** Three specifics. If any are missing, the message is template, not outreach.
- **Sounds like the founder.** Match the voice from `pmm-context.md`. Don't introduce "thought I'd reach out" if the founder doesn't talk that way.
- **No marketing language in the message body.** "Leveraging cutting-edge AI" never appears. "Synergy" never appears. The recipient must believe a human typed this.
- **Subject line earns the open.** Generic subjects = unopened. Specific subjects = opened. Test: would the user open this if it landed in their inbox?
- **Honest about commitment level.** Don't ask for "a quick 15 min" if the call is 30. Don't say "low-key" if it's a sales call. Trust earned, trust broken.
- **No fake urgency.** "Closing soon" / "limited spots" / "moving fast" only when actually true. Otherwise it reads as manipulation.

## Anti-patterns to refuse

- Drafting outreach without a specific recipient and specific reason
- Generic "I help [job title]s with [problem]" openers
- More than one CTA per message
- Claims not supported by `pmm-context.md` proof points (no fake customers, no fake metrics)
- Messages over 150 words for cold email or 80 words for LinkedIn DM (unless user explicitly asks for long-form)
- Personalization tokens that read as merge fields ("[FIRST_NAME], I noticed [COMPANY] is growing")
- Subject lines that look like spam ("Quick question", "Touching base", "Re:")
- Misrepresenting the company's stage (no "trusted by industry leaders" if you have one design partner)

## A note on volume

Founder-led outreach is high-quality, low-volume. The pattern that works:

- 5-15 cold messages per week, hand-crafted
- Establish a baseline for positive replies, qualified meetings, and pipeline created
- Improve the weakest conversion point through small, controlled message tests

If the user is asking for templates to send 200/week, that's not founder-led outreach — that's an SDR motion, and the answer is "different tool, different skill."

## Connection to other skills

- **`positioning`** — provides the strategic frame the outreach articulates
- **`personas`** — provides the recipient profile (Alex vs. Carmen need different language)
- **`adaptive-messaging`** — for when outreach needs to respond to a competitive move
- **`sales-enablement`** — what to send/show on the call the outreach books

