Skip to content
Productivity
Skill

/outreach

Draft personalized outreach messages for LinkedIn connections, hiring managers, or recruiters. Creates targeted messages using a hook + proof + proposal structure. Under 300 characters for connection requests. Use when someone says 'draft outreach', 'message the recruiter',

From plugin
career-ops
46010 skills1 agent2 commands
Install
$ npx -y skills add andrew-shwetzer/career-ops-plugin-do-not-fork-currently-updating-v2- --skill outreach --agent claude-code

How it fires

How this skill gets triggered: by you, by Claude, or both.

  • Fires itselfAuto-invocation. Claude auto-loads it when your prompt matches the work.Auto-invocation is when the right skill fires by itself at the right moment, driven by a FLOW.md router and a hook, instead of you invoking it by name. It is the difference between a skill being installed and a skill actually getting used.Read the full definition →
  • You can call itInvoke it directly when you want it.
  • Slash command/outreach

Context preview

The summary Claude sees to decide when to auto-load this skill.

Draft personalized outreach messages for LinkedIn connections, hiring managers, or recruiters. Creates targeted messages using a hook + proof + proposal structure. Under 300 characters for connection requests. Use when someone says 'draft outreach', 'message the recruiter',

SKILL.md

outreach.SKILL.md
name: outreach
description: "Draft personalized outreach messages for LinkedIn connections, hiring managers, or recruiters. Creates targeted messages using a hook + proof + proposal structure. Under 300 characters for connection requests. Use when someone says 'draft outreach', 'message the recruiter', 'reach out to', or 'write a LinkedIn message'."
argument-hint: "<contact name and company, or 'outreach for Company'>"
user-invocable: true
allowed-tools:
  - Read
  - Write
  - WebSearch
  - Glob

Draft Outreach

Create personalized outreach messages for job search networking.

Step 0: Load Context

1. Read `data/profile.yml` 2. Check `data/research/{company}.md` for company intelligence 3. Check `data/evaluations/` for any evaluation at this company

If no company research exists: > "I don't have research on {company} yet. Better outreach comes from > better intel. Want me to research them first, or should I draft > something with what I know?"

Step 1: Identify the Contact

Parse user input for: contact name, title, company, platform.

If no specific contact named, suggest based on research file: > "Based on my research, here are contacts at {company}: > {list from research} > Who would you like to reach out to?"

Step 2: Determine Message Type

| Type | When | Length | |---|---|---| | LinkedIn connection request | No existing connection | Under 300 characters | | LinkedIn message | Already connected | 100-200 words | | Cold email | Have their email | 100-150 words | | Follow-up | Already reached out, no response 5+ days | 50-75 words |

Ask the user which type if not clear from context.

Step 3: Generate Using 3-Part Structure

Part 1: Hook (about THEM, not you)

Reference something specific about the company, their work, or a recent event.

Bad: "I'm really interested in your company" (about you) Bad: "I'd love to connect" (generic) Good: "Your team's work on {specific project/launch} caught my attention" Good: "I noticed {company} just {recent event from research}"

Part 2: Proof (one quantifiable thing about you)

One sentence. One number. Directly relevant to their world.

Bad: "I have 10 years of experience in marketing" Good: "I grew organic traffic 3x at {Company} in 8 months" Good: "I managed a $2M portfolio with 98% client retention"

Pull the most relevant proof point from the user's profile that connects to the target company's needs.

Part 3: Proposal (low-pressure ask)

Bad: "Can you refer me?" (presumptuous) Bad: "I'd love to pick your brain" (vague, one-sided) Good: "Would you be open to a 15-minute chat about what {team} looks for?" Good: "I'd appreciate any advice on standing out for the {role} opening"

Step 4: Output

## Outreach: {Contact Name} at {Company}

**Platform:** {LinkedIn connection / LinkedIn message / Email / Follow-up}
**Context:** {role or department}

---

{the message, properly formatted}

---

**Character count:** {n} / {limit for platform}
**Tone:** {Professional / Warm / Direct}

Step 5: Offer Variations

> "Want me to: > - **Adjust the tone?** (more formal / more casual / more direct) > - **Write for a different platform?** (email instead of LinkedIn) > - **Draft a follow-up** for if they don't respond in a week?"

Rules

  • NEVER draft messages that misrepresent the user's background
  • NEVER suggest the user claim a connection that doesn't exist
  • NEVER draft overly flattering or sycophantic messages
  • Keep LinkedIn connection requests under 300 characters (hard limit)
  • Every message must contain something specific (not a template)
  • If no company research and no web search available, be honest:

"This message would be stronger with specific company context. Consider researching them first."

Read more
Ships withcareer-ops

A Claude Cowork plugin that turns your job search into a system. Evaluate job postings, generate ATS-optimized resumes, scan career portals, track applications, and more.

Get the whole plugin
Stats
460
Stars
102
Forks
Active
Maintenance
HTML
Language
MIT
License
17d ago
Last commit
4mo ago
Created

Repo: andrew-shwetzer/career-ops-plugin-do-not-fork-currently-updating-v2-

Other skills on career-ops.