Draft personalized LinkedIn outreach messages by researching the person/company from a LinkedIn post URL. Generates short, high-response-rate messages tailored for job seekers reaching out to hiring managers.
Draft personalized LinkedIn outreach messages that maximize response rates. Takes a LinkedIn post URL, researches the person and company, then generates a concise 3-paragraph message.
Read the user's profile from these files before drafting:
~/.claude/skills/job-apply/profile/resume.md — personal info, experience, skills~/.claude/skills/job-apply/profile/projects.md — project summaries for matching relevanceUse WebFetch on the LinkedIn post URL to extract:
If the post doesn't have enough info, use WebSearch to research:
From the user's profile, identify the single strongest overlap between:
Pick ONE specific thing — not a laundry list.
Write a 3-paragraph LinkedIn message following these rules:
Paragraph 1 — Hook + About Me (2-3 sentences)
Paragraph 2 — Why I'm a Good Fit (2-3 sentences)
Paragraph 3 — Soft Ask (1 sentence)
BAD: "Hi! I came across your post and was really impressed by SmarterDx's work in healthcare AI. I'm a passionate ML engineer with 3+ years of experience in NLP, RAG, LLMs, and deep learning..."
GOOD: "Hi [Name] — saw your post about the Staff ML Engineer role at SmarterDx. I've been building production AI agents at Sentient, most recently a search agent that beat SOTA by 10% on hierarchical tasks."
Write all results to an output markdown file (e.g., outreach_messages.md or a name the user specifies).
The file must have:
# LinkedIn Outreach Messages
Generated: [date]
## Summary
The summary table must be comprehensive — it should contain ALL context (post link, location, who to message, why I'm a fit, flags) so the user can understand everything from the table alone without reading individual sections.
| # | Company | Role | Location | Person to Message | Post | Why I'm a Fit | Flags |
|---|---------|------|----------|-------------------|------|---------------|-------|
| 1 | [[Company]](#1-company--role) | [Role] | [City/Remote] | [Name, Title] | [post](url) | [specific match — reference projects/metrics] | [concerns or —] |
| 2 | ... | ... | ... | ... | ... | ... | ... |
The Company column links to the message section below (anchor format: `#1-company--role` using lowercase, hyphens, no special chars).
---
## 1. [Company] — [Role]
> Hi [Name] — saw your post about the [Role] at [Company]. I'm currently building
> [specific thing] at [Company], where I [specific result with metric].
>
> [Company]'s work on [specific thing from post] is close to what I did at [previous
> company] — I [specific achievement that maps to their need].
>
> Would you be open to a quick chat about the role?
---
## 2. [Company] — [Role]
...
Individual message sections contain ONLY the heading and the quoted message — no post link, match, or flags (those are already in the summary table).
If a post should be skipped (e.g., wrong location, unrelated role), still include it in the summary table with the reason in the Flags column, and write "Skipped — [reason]" in the message section.
| Post Type | Approach |
|---|---|
| Job posting | Reference the specific role, match your skills to their requirements |
| Company news/milestone | Congratulate briefly, connect your work to their growth area |
| Thought leadership | Reference their specific point, share a related experience |
| Product launch | Connect your experience to the problem their product solves |