Install the "linkedin-outreach" agent skill from https://github.com/gooseworks-ai/goose-skills/tree/main/skills/outreach/capabilities/linkedin-outreach into .claude/skills/linkedin-outreach/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "linkedin-outreach", then confirm the skill loads.
Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
Type this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
skills CLI
$ npx skills add gooseworks-ai/goose-skills --skill linkedin-outreach -a codex
Project install goes to .agents/skills/; add -g for ~/.codex/skills/.
Install the "linkedin-outreach" agent skill from https://github.com/gooseworks-ai/goose-skills/tree/main/skills/outreach/capabilities/linkedin-outreach into .agents/skills/linkedin-outreach/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "linkedin-outreach", then confirm the skill loads.
Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
skills CLI
$ npx skills add gooseworks-ai/goose-skills --skill linkedin-outreach -a cursor
Project install goes to .agents/skills/; add -g for ~/.cursor/skills/.
Install the "linkedin-outreach" agent skill from https://github.com/gooseworks-ai/goose-skills/tree/main/skills/outreach/capabilities/linkedin-outreach into .cursor/skills/linkedin-outreach/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "linkedin-outreach", then confirm the skill loads.
Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
skills CLI
$ npx skills add gooseworks-ai/goose-skills --skill linkedin-outreach -a gemini-cli
Project install goes to .agents/skills/; add -g for ~/.gemini/skills/.
Install the "linkedin-outreach" agent skill from https://github.com/gooseworks-ai/goose-skills/tree/main/skills/outreach/capabilities/linkedin-outreach into .gemini/skills/linkedin-outreach/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "linkedin-outreach", then confirm the skill loads.
Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
Installs for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
skills CLI
$ npx skills add gooseworks-ai/goose-skills --skill linkedin-outreach -a github-copilot
Project install goes to .agents/skills/; add -g for ~/.copilot/skills/.
Install the "linkedin-outreach" agent skill from https://github.com/gooseworks-ai/goose-skills/tree/main/skills/outreach/capabilities/linkedin-outreach into .github/skills/linkedin-outreach/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "linkedin-outreach", then confirm the skill loads.
GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
skills CLI
$ npx skills add gooseworks-ai/goose-skills --skill linkedin-outreach -a opencode
OpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
Install the "linkedin-outreach" agent skill from https://github.com/gooseworks-ai/goose-skills/tree/main/skills/outreach/capabilities/linkedin-outreach into .opencode/skills/linkedin-outreach/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "linkedin-outreach", then confirm the skill loads.
OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
Facts
Skill name
linkedin-outreach
GitHub stars
1.2k
Used in
1 other repo
Token cost
~4.4k tokens
SKILL.md length
1,944 words
Files
9
Skills in repo
273
Repo updated
First seen
Licence
MIT
At a glance
End-to-end LinkedIn outreach campaign builder. An agent skill from gooseworks-ai/goose-skills.
Works in 7 steps: Intake → Lead Selection from Supabase → Sequence Design → …
Tasks that involve CSV and tabular files
SKILL.md covers When to Auto-Load, Supported Outreach Tools, Prerequisites and Character Limits, plus 5 more sections
Linkedin Outreach is an agent skill from gooseworks-ai/goose-skills. End-to-end LinkedIn outreach campaign builder. Takes leads from Supabase, upstream skills, or CSV. Aligns on campaign goal and tone, writes personalized LinkedIn message sequences (connection request + follow-ups + optional InMail), presents for review, and exports for the user's outreach tool (Dripify, Botdog, Expandi, or manual CSV). Logs to Supabase outreachlog.
Its SKILL.md is about 4.4k tokens, which your agent loads only when the skill is triggered. The skill folder holds 10 other files (for example `skill.meta.json`, `templates/sequence-templates/competitor-engagement.md` and `templates/sequence-templates/database-search.md`).
It sits in Documents & Office, covering CSV and tabular files. It works with LinkedIn and Supabase. The repository describes itself as: Library of Growth & GTM skills + data APIs for Claude Code, Codex, Cursor to run ads, social, content, lead gen, seo and data scraping. The licence is MIT.
When your agent uses it
Tasks that involve CSV and tabular files
Example prompts
“/linkedin-outreach”
Requirements
Python 3
A credential in SUPABASE_SERVICE_ROLE_KEY
Workflow steps
7 steps, taken from the step headings in SKILL.md.
Read from SKILL.md and the folder at commit c650c6d. It shows what the files ask for, not the result of running them.
Tool permissions
Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.
From allowed-tools in the SKILL.md frontmatter.
Runs code
Shell commands in SKILL.md call:
python3
From the folder's file list and the shell code blocks in SKILL.md.
Network
Hosts in commands or code, which the agent is likely to contact:
xxx.supabase.co
From URLs in SKILL.md, links to its own repository left out.
Credentials
Names these keys or tokens, usually read from environment variables:
SUPABASE_SERVICE_ROLE_KEY
From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Context cost
Linkedin Outreach loads about 4.4k tokens when it runs. Until then it costs about 97 tokens; SKILL.md has 1,944 words of instructions outside code blocks.
Always· name and description, kept in context so the agent knows when to use it
~97
When it runs· the whole SKILL.md, loaded when a task matches
~4.4k
Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.
Safety
Auto-check: notes
The automated check noted patterns worth knowing about, such as sudo or a known installer.
NoteMentions a .env fileSKILL.md:48
Environment variables in `.env`:
Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.
Download SKILL.mdSave it as .claude/skills/linkedin-outreach/SKILL.md (or your agent's skills folder). This skill also uses 8 other files; get the full folder from GitHub.
name
linkedin-outreach
description
End-to-end LinkedIn outreach campaign builder. Takes leads from Supabase, upstream skills, or CSV. Aligns on campaign goal and tone, writes personalized LinkedIn message sequences (connection request + follow-ups + optional InMail), presents for review, and exports for the user's outreach tool (Dripify, Botdog, Expandi, or manual CSV). Logs to Supabase outreach_log.
tags
outreach
LinkedIn Outreach
The LinkedIn counterpart to cold-email-outreach. Takes qualified leads from Supabase, builds personalized LinkedIn message sequences, exports for the user's LinkedIn outreach tool, and logs everything back to Supabase.
Tool-agnostic: Asks the user which LinkedIn tool they use. All tools are CSV-import based — no API/MCP automation for LinkedIn tools (they're browser-based). Adapters handle column mapping and format differences per tool.
When to Auto-Load
Load this skill when:
User says "LinkedIn outreach", "connect with these leads on LinkedIn", "send LinkedIn messages", "set up a LinkedIn campaign"
An upstream skill connects with "create LinkedIn campaign" or "passes: supabase-eligible-leads" and user specifies LinkedIn
User completes lead-qualification and wants to reach out via LinkedIn
Supported Outreach Tools
This skill does NOT assume a specific tool. It asks first, then adapts.
Tool
Integration
How It Works
Dripify
CSV import
Generate CSV matching Dripify's import format, user uploads manually
Botdog
CSV import
Generate CSV with Botdog-compatible columns
Expandi
CSV import
Generate CSV matching Expandi import format
PhantomBuster
CSV import
Generate CSV for PhantomBuster LinkedIn sequences
Manual / Other
CSV + instructions
Export leads + messages as generic CSV, provide setup instructions
Tool selection logic:
Ask user in Phase 0: "Which LinkedIn outreach tool do you use?"
Generate tool-specific import CSV based on selection
If Other or unknown → generate generic CSV (linkedin_url, first_name, last_name, company, title, connection_request, followup_1, followup_2, followup_3, inmail_subject, inmail_body) and ask user for their tool's import requirements
Prerequisites
Supabase
People must be stored in Supabase with the schema from tools/supabase/schema.sql. The people and outreach_log tables must exist. Run python3 tools/supabase/setup_database.py if setting up fresh.
If user wants a review sheet, use google-sheets-write capability to create a sheet with:
Tab 1: Lead list with all messages (one row per lead)
Tab 2: Sequence templates (the master templates used)
Tab 3: Campaign config summary
Phase 5: Review & Approval
Present campaign summary:
Campaign: {name}
Tool: {dripify/botdog/expandi/etc.}
Leads: {count}
Sequence: Connection + {followup_count} follow-ups + InMail
Timing: Day 0 → Day {last_day}
Tone: {preset_name}
Signal types: {breakdown by signal type}
Leads with rich signal: {count} ({percentage}%)
Leads with lean signal: {count} ({percentage}%)
Export file: {file_path}
Hard Approval Gate
Do NOT mark the campaign as ready without explicit user confirmation. Present the summary, then ask: "Ready to finalize? Type 'yes' to mark as ready for import."
After approval:
Tell user the file is ready for import into their LinkedIn tool
Provide the file path
Give tool-specific import instructions (see Phase 4)
Remind user to verify the first 5-10 messages look correct after import
Phase 6: Logging
Database Write Policy
All database writes in this phase require the user's prior approval from the finalization gate in Phase 5. Since LinkedIn campaigns are always exported (never auto-launched), confirm with the user before logging to outreach_log — they may not have actually imported the campaign into their LinkedIn tool yet. Only log after the user confirms the export is final.
Log to Supabase
After export and user confirmation, insert records into outreach_log:
Status is "exported", not "sent". LinkedIn tools are browser-based — we can't confirm delivery. The status changes to "sent" when the user confirms they launched the campaign in their tool.
Update People Records
Update last_contacted on the people table for all people in this campaign:
Campaign: {name}
{count} people logged to outreach_log (channel: linkedin)
last_contacted updated for {count} people
Cooldown active until: {date + 84 days}
Next eligible re-contact: {date}
File ready: {file_path}
Cooldown Enforcement Rules
Reference section for cooldown logic used throughout this skill. Shared with cold-email-outreach.
Rule
Detail
Default cooldown
84 days (12 weeks) from sent_date
Cross-channel
Cooldown applies across email AND LinkedIn. A lead emailed recently is in cooldown for LinkedIn too.
Bounced leads
Exempt from cooldown (email only — LinkedIn doesn't bounce). Filter: status=neq.bounced when checking cooldown
Active campaign leads
Always ineligible — if a lead is in an active campaign on any channel, they cannot be added to another campaign
User override
User can explicitly override cooldown for specific leads — ask for confirmation before allowing
Null last_contacted
Leads never contacted are always eligible
Output Directory
Campaign exports are saved to:
skills/linkedin-outreach/output/
Create this directory if it doesn't exist. Files are named {campaign-name}-{YYYY-MM-DD}.csv.
We found 1 copy of this SKILL.md (exact, near-identical or edited) in other folders, from 1 other GitHub owner. This page covers the copy in gooseworks-ai/goose-skills, which our catalogue first saw on October 7, 2026.
Linkedin Outreach next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.
Linkedin Outreach compared with similar skills
Skill
Stars
Used in
Tokens
Auto-check
Licence
Repo updated
Linkedin Outreach this skillgooseworks-ai/goose-skills
A skill your agent uses when the user says "activate co-founder network with FullEnrich", "enrich LinkedIn connections export", "qualify my LinkedIn connections CSV", "turn Connections.csv into a…
A skill your agent uses when the user says "enrich people who engaged with this post", "qualify post engagers with FullEnrich", "scrape and enrich LinkedIn post {URL}", "engagers from this post into…
Replace an existing video's opening with a supplied clip or free kinetic text hook while retaining and verifying every original body frame, audio, captions and ending.
Assemble a ChatGPT chat-reveal video ad from a thread + timeline JSON — one continuous Playwright recording of a ChatGPT mobile chat (user types with the iOS keyboard up → taps send → keyboard…
End-to-end LinkedIn outreach campaign builder. An agent skill from gooseworks-ai/goose-skills. Linkedin Outreach is an agent skill from gooseworks-ai/goose-skills. End-to-end LinkedIn outreach campaign builder.
When should I use Linkedin Outreach?
Linkedin Outreach fits situations like: tasks that involve CSV and tabular files.
How do I install Linkedin Outreach in Claude Code?
Run `npx skills add gooseworks-ai/goose-skills --skill linkedin-outreach -a claude-code`. Or copy the skill folder (skills/outreach/capabilities/linkedin-outreach in gooseworks-ai/goose-skills) into .claude/skills/linkedin-outreach in your project. Claude Code loads it when a task matches its description.
How do I install Linkedin Outreach in Codex?
Run `npx skills add gooseworks-ai/goose-skills --skill linkedin-outreach -a codex`. Or copy the skill folder (skills/outreach/capabilities/linkedin-outreach in gooseworks-ai/goose-skills) into .agents/skills/linkedin-outreach in your project. Codex loads it when a task matches its description.
Can I use Linkedin Outreach in Cursor, Gemini CLI or GitHub Copilot?
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add gooseworks-ai/goose-skills --skill linkedin-outreach -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/linkedin-outreach, .gemini/skills/linkedin-outreach, .github/skills/linkedin-outreach and .opencode/skills/linkedin-outreach in your project.
What does Linkedin Outreach need to run?
Going by SKILL.md and its folder, Linkedin Outreach needs the command-line tools its instructions call (python3) and credentials named SUPABASE_SERVICE_ROLE_KEY. Our summary lists: Python 3; A credential in SUPABASE_SERVICE_ROLE_KEY.
Does Linkedin Outreach access the network?
SKILL.md names 1 domain. In commands or code: xxx.supabase.co; the agent is likely to contact it when it follows the instructions. This is read from the text; nothing was executed.
Is Linkedin Outreach safe to install?
Our automated static check of SKILL.md found notes only (mentions a .env file), nothing it rates as a warning. It is not a guarantee. Review the folder before installing.
What licence does Linkedin Outreach use?
Linkedin Outreach is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
How many tokens does Linkedin Outreach use?
About 4.4k tokens (SKILL.md is roughly 18k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.
What are the alternatives to Linkedin Outreach?
Skills that share tags, products or a category with Linkedin Outreach: Fullenrich Network Activation (Othmane-Khadri/YALC-the-GTM-operating-system, 318 stars), Sft Cleanup Hf Only (open-thoughts/OpenThoughts-Agent, 301 stars), Email Search (extruct-ai/gtm-skills, 109 stars) and Fullenrich Content Engagers (Othmane-Khadri/YALC-the-GTM-operating-system, 318 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
Who maintains Linkedin Outreach?
gooseworks-ai (a GitHub organization) maintains it in gooseworks-ai/goose-skills, which has 1,240 GitHub stars. The repository holds 273 skills in this directory. The repository was last updated on October 8, 2026.
Source: gooseworks-ai/goose-skills on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.