Outreach
AI agent skills for product marketing managers.
npx -y skills add dirknicol/pmm-skills --skill outreachAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
One thing to look at
- 1 stars1 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.
What its author says it does
Copied from the file, not written here
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.
The file declares its own license as MIT. That is the author’s claim about this one file, and it is not the same thing as the license GitHub reports for the repository, which is listed with the other numbers below.
SKILL.md
12.2 KB, as published. Nobody here has run it
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
- Read
pmm-context.mdfirst when available. Specifically pull voice, positioning, proof points, and claim boundaries. If it is missing, offer to runpmm-context. If unavailable or declined, collect a minimum brief covering offer, recipient, reason now, proof, voice, constraints, CTA, and channel. Mark assumptions and continue. - 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.
- 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:
- 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.
- Show, don't tell. Don't claim you understand their problem — demonstrate it by referencing something specific they've said, written, or done.
- 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.
- One CTA. Every message ends with exactly one ask. Multiple options = decision fatigue = no response.
- No fake personalization. "I noticed your company is in [industry] and growing" is worse than no personalization. People can smell template-merge.
- 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.
- 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 | 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.mdproof 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 articulatespersonas— provides the recipient profile (Alex vs. Carmen need different language)adaptive-messaging— for when outreach needs to respond to a competitive movesales-enablement— what to send/show on the call the outreach books