Agent skill
linkedin-outreach
LinkedIn connection requests and DM sequences adapted to tool stack
Filed under LinkedIn and social and Outbound email.
From ekatasingh1107/b2b-gtm-skills · 99 skills · 2 · pushed 2026-04-11
What it does when it runs
LinkedIn connection requests and DM sequences adapted to tool stack
Read from the skill and the 1 file bundled beside it. A skill’s own description is written to be selected by an agent, so it describes the job and not the dependencies.
- Keys and connectors you must supply
- None found.
- Hosts it reaches
- No third-party host appears in the skill or its bundled files.
- Tool permissions it declares
- No
allowed-toolsin the frontmatter. It only issues instructions, so there is nothing to bound. - Actions present in the files
- None. Instructions only.
Install it
View source on GitHub ↗git clone --depth 1 --filter=blob:none --sparse https://github.com/ekatasingh1107/b2b-gtm-skills.git /tmp/b2b-gtm-skills git -C /tmp/b2b-gtm-skills sparse-checkout set "skills/capabilities/linkedin-outreach" mkdir -p ~/.claude/skills/linkedin-outreach cp -R "/tmp/b2b-gtm-skills/skills/capabilities/linkedin-outreach/." ~/.claude/skills/linkedin-outreach/
Picked up without a restart. A project skill of the same name is shadowed by your personal one. For one repository only, swap ~/.claude/skills for .claude/skills. Claude Code docs ↗
The folder is the same in every client that implements the format — 46 of them — so if yours is not above, only the destination changes.
The skill
Source on GitHub ↗Reproduced in full from ekatasingh1107/b2b-gtm-skills/blob/eae8dd0bb98da1c8e84abd297066a87015dd860f/skills/capabilities/linkedin-outreach/SKILL.md, which is licensed MIT (repository). 1,031 words, 14 headings.
LinkedIn Outreach
Generates LinkedIn connection request notes, follow-up DMs, and InMails for a list of leads. Adapts delivery method to the configured tool stack: CSV export for Dripify/Expandi, browser automation, or manual copy-paste.
Prerequisites
agency.config.jsonat repo root withtools.linkedin_outreach,outreach, andcase_studiessectionscrm-writerskill for tracking outreach actionsmessage-generatorskill for personalization- Optional: Chrome automation (for browser delivery mode)
Phase 0: Intake
- Read
agency.config.jsonfrom the project root. - Extract:
tools.linkedin_outreach.tool-- the automation tool name (e.g., "dripify", "expandi", "manual")tools.linkedin_outreach.access-- delivery method:"csv_export","browser", or"manual"tools.linkedin_outreach.daily_limit-- max connection requests per day (respect this cap strictly)outreach.tone-- voice and tone guidelines for messagesoutreach.banned_phrases-- phrases that must never appear in any messagecase_studies-- available case studies for social proof references
- Accept parameters:
leads-- array of lead objects, each with:name,title,company,linkedin_url, and optionallyrecent_post,role_change,company_achievementmessage_type-- one of:"connect","dm","inmail", or"all"(default:"connect")
Phase 1: Generate Content
For each lead, generate messages based on message_type. Every message must be checked against outreach.banned_phrases before inclusion. Match the voice from outreach.tone.
Connection Request Note (max 300 characters)
- Include one specific personalization point. Pick from, in priority order:
- Their recent LinkedIn post (if
recent_postprovided) - A role change or promotion (if
role_changeprovided) - A company achievement or news (if
company_achievementprovided) - Their title + company combination (fallback)
- Their recent LinkedIn post (if
- Include one reason to connect: shared industry, mutual interest, or a brief value signal.
- NO pitch in the connection note. Zero selling language. This is a human-to-human connection.
- Keep under 300 characters including spaces. LinkedIn truncates at 300.
Example structure:
Hey {first_name}, saw your post on {topic} -- really resonated.
I work with {industry} brands on {area}. Would love to connect and exchange notes.
Follow-up DM (max 150 words, for accepted connections)
- Reference the connection acceptance: "Thanks for connecting" or similar.
- Share one insight, resource, or observation relevant to their role or company.
- Soft CTA: ask a question, do not pitch. Frame as curiosity or offering help.
- Use a different angle than the connection note. Do not repeat the same personalization point.
Example structure:
Thanks for connecting, {first_name}.
I was looking at {company}'s store and noticed {observation}.
We worked on something similar with {case_study_client} and saw {result}.
Curious -- is {topic} something your team is focused on right now?
InMail (max 200 words, if InMail credits available)
- Subject line: under 40 characters. Make it specific, not generic. Avoid "Quick question" or "Opportunity."
- Lead with value or an insight about their business, not about your agency.
- Reference one case study with a specific metric.
- Soft CTA: propose a brief call or ask a question. Not "Let's schedule a demo."
Example structure:
Subject: {company}'s {specific_page} conversion
Hi {first_name},
I was reviewing {company}'s {specific_area} and noticed {observation}.
We helped {case_study_client} fix a similar issue, which led to a {X%} increase in {metric}.
Would it be worth a 15-minute look at what we found? Happy to share the analysis either way.
{sender_name}
Phase 2: Delivery
Check tools.linkedin_outreach.access to determine delivery method.
CSV Export (access: "csv_export")
For tools like Dripify, Expandi, or LinkedHelper:
-
Generate a CSV file with these columns:
LinkedIn_URL-- the lead's LinkedIn profile URLFirst_Name-- extracted from lead nameLast_Name-- extracted from lead nameCompany-- lead's companyTitle-- lead's job titleConnection_Note-- the 300-char connection request noteFollow_Up_DM-- the follow-up DM text (used as sequence step 2)
-
Save to
output/linkedin-outreach-{YYYY-MM-DD}.csv -
Provide tool-specific import instructions:
- Dripify: "Go to Campaigns > Create Campaign > Import CSV. Map LinkedIn_URL to 'Profile URL', Connection_Note to 'Connection Message', Follow_Up_DM to 'Follow-up Message 1'."
- Expandi: "Go to Campaigns > New > CSV Import. Upload the file. Map columns in the field mapper."
Browser (access: "browser")
Use Chrome automation to send connection requests directly:
- Navigate to each lead's
linkedin_url. - Click the "Connect" button.
- If "Add a note" option appears, paste the
Connection_Note. - Send the request.
- Wait 30-60 seconds between requests (randomized to avoid detection).
- Stop when
daily_limitis reached, even if leads remain. Report how many were sent and how many are queued for tomorrow.
Manual (access: "manual")
For manual copy-paste workflow:
- Display each lead in sequence with:
- Lead name, title, company
- LinkedIn profile URL (clickable)
- Connection note (ready to copy)
- Follow-up DM (for after acceptance)
- Format for easy scanning and quick copy-paste.
Phase 3: Track
After delivery (or generation):
- Log each action to CRM via
crm-writerskill, writing to the outreach_log tab. - For each lead, log:
- Date
- Lead name
- Company
- LinkedIn URL
- Action taken (connection_sent, dm_sent, inmail_sent, csv_exported)
- Message content (condensed)
- Cadence day (Day 1 for new connections)
- Next action (e.g., "Follow-up DM after acceptance" or "Check acceptance in 3 days")
- Respect
daily_limit: if the limit is reached mid-batch, stop and report remaining leads as "queued."
Phase 4: Summary
Present a summary report:
LinkedIn Outreach Summary ({date}):
Connections sent: {N}
DMs sent: {N}
InMails sent: {N}
Daily limit remaining: {N}
CSV exported to: output/linkedin-outreach-{date}.csv (if applicable)
Queued for tomorrow: {N} leads (daily limit reached)
Leads processed:
1. {Name} @ {Company} -- connection note sent
2. {Name} @ {Company} -- DM sent (already connected)
...
Example Usage
Trigger phrases:
- "Send LinkedIn connections to these leads"
- "Generate LinkedIn outreach for this list"
- "Create Dripify CSV for LinkedIn"
- "Draft LinkedIn DMs for accepted connections"
- "Run LinkedIn outreach"
User: Send LinkedIn connections to 10 leads from the signal scanner
Assistant: [reads config, checks daily limit, generates personalized connection notes, delivers via configured method, logs to CRM, reports summary]
User: Create a Dripify CSV for these LinkedIn leads
Assistant: [generates connection notes + follow-up DMs, exports CSV to output/, provides Dripify import instructions]
Files bundled with it
These load only when the skill asks for them, so they cost nothing until it runs.
Other skills for the same job
Different authors, same problem. Matched on the words in the skill name, across every library in the catalogue except this one.
- linkedin-outreach by devangk003 · 0
- linkedin-outreach by edupegoretti · 0
- sales-outreach by zubair-trabzada · 1,093
- apollo-outreach by OpenClaudia · 677
- linkedin-ads by OpenClaudia · 677
- linkedin-content by OpenClaudia · 677
- playbook-linkedin-engagement by growthenginenowoslawski · 668
- linkedin-job-post-to-buyer-pain-map by Varnan-Tech · 626
Need help setting it up?
This page tells you what linkedin-outreach does and what it needs. Cheetah builds the agent setup it runs inside: data, CRM, sequencing and the guardrails.
Book a call →The directory stays free. There is nothing gated behind this.