Networking & Outreach Message Writer
Researches a person via Brave Search, crafts personalized networking messages, and optionally sends connection requests or messages directly on LinkedIn via Playwright MCP. Prerequisites: brave-search MCP, playwright MCP.
MCP get_skill({ skillId: "networking-outreach-message-writer-eea23be0" })Use this skill with your agent
Create a free account and connect via MCP
# Networking & Outreach Message Writer
Research a person, craft personalized messages, and optionally send them directly on LinkedIn via Playwright.
## When to Use
- "Help me reach out to {person} on LinkedIn"
- "Send a connection request to {person} with a personal note"
- "Write a networking follow-up after {event/meeting}"
## Requirements
- **Brave Search MCP** for recipient research and common ground
- **Playwright MCP** for sending LinkedIn connection requests and messages (user must be logged in)
## Workflow
### Step 1 ā Outreach Brief
- **Who** (name, title, company)
- **Platform** (LinkedIn, email, Twitter/X)
- **Purpose** (connect, informational interview, referral, collaboration, follow-up)
- **Your background** (relevant context)
- **Connection** (how you found them, mutual contacts, shared interests)
- **What you want from them** (be honest)
- **Send directly?** (yes/no ā if yes and platform is LinkedIn, will send via Playwright after approval)
### Step 2 ā Research the Person
```
brave_web_search: "{PERSON_NAME} {COMPANY} {TITLE}"
brave_web_search: "{PERSON_NAME} interview podcast talk"
brave_web_search: "{PERSON_NAME} blog articles published"
brave_web_search: "{COMPANY} recent news {YEAR}"
```
Find:
- Their recent work, talks, or publications
- Company news you can reference
- Shared interests or background
- Mutual connections
### Step 3 ā Generate Messages
```markdown
## Outreach to {PERSON_NAME}
š Platform: {PLATFORM} | šÆ Purpose: {PURPOSE}
### Research Notes
- {Interesting fact about them}
- {Recent work or achievement}
- {Common ground with you}
---
### Option 1: LinkedIn Connection Request
*300 character limit*
Hi {First Name},
{Personal hook ā reference their specific work}. I'm {your 1-line context} and {reason for connecting}. Would love to connect.
({character count}/300)
---
### Option 2: Cold Email
Subject: {Specific, personal subject line ā not "Quick question"}
Hi {First Name},
{1 sentence: how you found them + specific reference to their work}
{1-2 sentences: who you are and why you're reaching out}
{1 sentence: specific, small ask ā make it easy to say yes}
{Close: "No worries if you're too busy ā I appreciate your time either way."}
Best,
{Your name}
{Your relevant credential/link}
---
### Option 3: Informational Interview Request
Hi {First Name},
{Reference to their specific background that's relevant to your question}
I'm currently {your situation} and I'm exploring {field/role}. Would you be open to a 20-minute call? I'd love to hear about {specific topic ā not "your career journey"}.
Happy to work around your schedule. And I respect your time ā I'll keep it to 20 minutes.
Thanks,
{Name}
---
### Follow-Up Template (if no response after 5-7 days)
Hi {First Name},
Just floating this back up ā I know inboxes are busy. {Add one new piece of value or context}.
No pressure either way.
{Name}
```
### Step 4 ā Present for Approval
Show the crafted message(s) to the user. **Get explicit approval before sending anything.**
### Step 5 ā Send via Playwright (LinkedIn only, after approval)
Only if user approved sending. User must be logged into LinkedIn.
**IMPORTANT:** LinkedIn may show a cookie consent banner on first visit. Look for "Accept" / "Accept cookies" in the snapshot and click it before proceeding. LinkedIn uses TipTap rich text editors ā `browser_fill_form` does NOT work. Use `browser_click` on the text area ā `browser_type` instead.
**Send Connection Request:**
```
browser_navigate: "https://www.linkedin.com/search/results/people/?keywords={PERSON_NAME}+{COMPANY}"
browser_snapshot
ā Handle cookie consent banner if shown
```
Identify the correct person from search results, then:
```
browser_click: person's profile link
browser_snapshot
```
Verify this is the right person, then:
```
browser_click: "Connect" button
browser_snapshot
```
If a "Add a note" option appears:
```
browser_click: "Add a note"
browser_click: note text area
browser_type: "{CONNECTION_REQUEST_TEXT}"
browser_snapshot
```
Show snapshot to user for final confirmation, then:
```
browser_click: "Send" button
browser_snapshot
ā Dismiss any Premium upsell dialog that appears
```
**Send Direct Message (if already connected):**
```
browser_navigate: "https://www.linkedin.com/in/{PERSON_SLUG}"
browser_snapshot
ā Handle cookie consent if needed
browser_click: "Message" button
browser_snapshot
browser_click: message compose text area
browser_type: "{MESSAGE_TEXT}"
browser_snapshot
```
Show snapshot for final confirmation, then:
```
browser_click: "Send" button (or press Enter)
browser_snapshot
ā Dismiss any Premium upsell dialog
```
### Step 6 ā Save
```bash
mkdir -p outputs/personal/networking
cat > "outputs/personal/networking/{PERSON_SLUG}-{DATE}.md" << 'EOF'
{OUTREACH_MESSAGES}
## Status
- Platform: {PLATFORM}
- Sent: {Yes ā
/ No ā saved for manual sending}
- Date: {DATE}
EOF
```
## Important Rules
- **ALWAYS show the message and get user approval before sending** ā never auto-send
- **Handle cookie consent banners** before interacting with LinkedIn
- **Use `browser_click` ā `browser_type`, NOT `browser_fill_form`** ā LinkedIn rich text editors don't support fill_form
- **Dismiss Premium upsell dialogs** that appear after sending connections/messages
- Take a browser snapshot before clicking Send to verify the right message goes to the right person
- Verify the person's identity from their profile before connecting ā don't send to the wrong person
- If LinkedIn's UI changes or an element isn't found, stop and tell the user
- Personalization is mandatory ā reference their specific work, not their title
- Keep it short ā under 150 words for cold outreach
- Lead with value or genuine interest, not what you want
- Make the ask specific and easy (20-min call, one question, quick feedback)
- Don't be sycophantic ā genuine beats flattering
- One follow-up max ā respect their silence
- LinkedIn has a 300 character limit for connection request notes
- If user declines auto-sending, save messages to file for manual use
## Example Prompts
- "Find {person} on LinkedIn and send them a connection request about {topic}"
- "Write a LinkedIn message to {person} after meeting at {conference} ā just save it"
- "Send an informational interview request to a VP of Engineering at {company}"
Related Skills
More skills in Relationships & Social
Apology Message Crafter
Crafts sincere, effective apology messages using the structured apology framework (acknowledge, take responsibility, make amends). Researches context-specific advice and provides multiple tone options. Prerequisites: brave-search MCP.
Difficult Conversation Prep Coach
Prepares scripts and strategies for hard conversations using frameworks (Nonviolent Communication, DESC). Researches situation-specific advice via Brave Search and provides word-for-word scripts with fallback responses. Prerequisites: brave-search MCP.
Relationship Check-In Planner
Creates structured check-in templates for personal and professional relationships ā conversation prompts, active listening guides, and follow-up action items. Tracks relationship touchpoints over time. Prerequisites: python3.
Thank You Note & Appreciation Writer
Crafts personalized thank-you notes, appreciation messages, and gratitude letters for any context ā professional, personal, or formal. Researches etiquette via Brave Search. Prerequisites: brave-search MCP.
Explore Other Categories
Skills from other categories with shared topics
LinkedIn Profile Optimizer
Reads your LinkedIn profile via Playwright MCP, researches industry keywords via Brave Search, rewrites headline/summary/experience with keyword optimization, and updates your profile directly in the browser. Prerequisites: playwright MCP, brave-search MCP.
Gmail Cold Outreach Campaign
Research prospects via Brave Search, compose personalized cold outreach emails, and create ready-to-send Gmail drafts with A/B subject line variants. Prerequisites: gcloud, curl, jq, base64, brave-search MCP.
Social Media Content Kit Generator
Creates platform-specific content (Twitter/X threads, LinkedIn posts, Instagram captions) from a single idea, with hashtag research and character validation. Optionally posts directly to platforms via Playwright MCP. Prerequisites: brave-search MCP, python3, playwright MCP.