Agent skill

Linkedin Message Writer

by gooseworks-ai in gooseworks-ai/goose-skills

Research LinkedIn profiles and write personalized messages for any LinkedIn message type — connection requests, InMails, DMs, message requests, post comments, and comment replies.

MITAuto-check: notesData & Analytics

Install Linkedin Message Writer

skills CLI
$ npx skills add gooseworks-ai/goose-skills --skill linkedin-message-writer -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install gooseworks-ai/goose-skills linkedin-message-writer --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/gooseworks-ai/goose-skills.git skills-src && mkdir -p .claude/skills && cp -r skills-src/skills/outreach/capabilities/linkedin-message-writer .claude/skills/linkedin-message-writer && rm -rf skills-src

Use ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.

Claude Code skills documentation · loads skills from .claude/skills/

Facts

Skill name
linkedin-message-writer
GitHub stars
1.2k
Used in
1 other repo
Token cost
~3.4k tokens
SKILL.md length
1,530 words
Files
2
Skills in repo
273
Repo updated
First seen
Licence
MIT

At a glance

Research LinkedIn profiles and write personalized messages for any LinkedIn message type — connection requests, InMails, DMs, message requests, post comments, and comment replies.

  • Works in 6 steps: Intake → Load Leads → Research → …
  • Tasks that involve Web scraping
  • SKILL.md covers When to Auto-Load, Prerequisites, LinkedIn Message Types Reference and Workflow, plus 2 more sections
  • Calls curl; reaches api.apify.com and linkedin.com; needs APIFY_API_TOKEN

What it does

Linkedin Message Writer is an agent skill from gooseworks-ai/goose-skills. Research LinkedIn profiles and write personalized messages for any LinkedIn message type — connection requests, InMails, DMs, message requests, post comments, and comment replies. Takes LinkedIn URLs as input, researches each person (profile data + recent posts via Apify), and generates messages tailored to each lead's background, interests, and recent activity. Exports tool-ready CSVs for Dripify, Expandi, Botdog, PhantomBuster, or generic format. No LinkedIn cookies or login required.

Its SKILL.md is about 3.4k tokens, which your agent loads only when the skill is triggered. The skill folder holds 1 other file (for example `skill.meta.json`).

It sits in Data & Analytics, covering Web scraping, Messaging and chat bots and Resume and CV writing. It works with LinkedIn and Apify. 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 Web scraping
  • Tasks that involve Messaging and chat bots
  • Tasks that involve Resume and CV writing

Example prompts

  • “/linkedin-message-writer”

Requirements

  • A credential in APIFY_API_TOKEN

Workflow steps

6 steps, taken from the step headings in SKILL.md.

  1. Intake
  2. Load Leads
  3. Research
  4. Write Messages
  5. Export
  6. Review & Deliver

What it can do on your machine

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:

    • curl

    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:

    • api.apify.com
    • linkedin.com

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names these keys or tokens, usually read from environment variables:

    • APIFY_API_TOKEN

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

Linkedin Message Writer loads about 3.4k tokens when it runs. Until then it costs about 129 tokens; SKILL.md has 1,530 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~129
When it runs · the whole SKILL.md, loaded when a task matches
~3.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:30
    ing LinkedIn profiles and posts. Set in `.env`:
  • NoteMentions a .env fileSKILL.md:345
    _TOKEN` not set | Ask user to add it to `.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.

SKILL.md

The full file from gooseworks-ai/goose-skills at commit c650c6d, republished under its MIT licence (© gooseworks-ai). 1,530 words, ~3,424 tokens.

Download SKILL.mdSave it as .claude/skills/linkedin-message-writer/SKILL.md (or your agent's skills folder). This skill also uses 1 other file; get the full folder from GitHub.
name
linkedin-message-writer
description
Research LinkedIn profiles and write personalized messages for any LinkedIn message type — connection requests, InMails, DMs, message requests, post comments, and comment replies. Takes LinkedIn URLs as input, researches each person (profile data + recent posts via Apify), and generates messages tailored to each lead's background, interests, and recent activity. Exports tool-ready CSVs for Dripify, Expandi, Botdog, PhantomBuster, or generic format. No LinkedIn cookies or login required.
tags
outreach, social

LinkedIn Message Writer

Research LinkedIn leads and write personalized messages for any LinkedIn message type. Takes LinkedIn URLs, researches each person using Apify (profile + recent posts), and writes messages based on what it finds.

No LinkedIn cookies. No database setup. Just LinkedIn URLs in, personalized messages out.

When to Auto-Load

Load this skill when:

  • User says "write LinkedIn messages", "LinkedIn outreach", "connect with these leads on LinkedIn", "send LinkedIn messages"
  • User has a list of LinkedIn URLs and wants to reach out
  • User wants to write personalized connection requests, InMails, DMs, or comments

Prerequisites

Apify API Token

Required for researching LinkedIn profiles and posts. Set in .env:

APIFY_API_TOKEN=your_token_here

No LinkedIn cookies, login, or session tokens needed. Apify handles scraping without any LinkedIn credentials.

That's it. One env var. Nothing else.


LinkedIn Message Types Reference

This skill writes any text-based LinkedIn message type. Each type has different constraints.

Message TypeWho Can ReceiveCharacter LimitWhen to Use
Connection request2nd/3rd degree connections200 (free) / 300 (premium)First touch. Must earn the accept. No selling.
InMailAnyone (requires premium credits)Subject: 200, Body: 1,900Standalone pitch to people who won't accept cold connections. Senior execs, busy people.
DM1st-degree connections only8,000Follow-ups after connection accepted. Conversational, not broadcast.
Message requestGroup members, event attendees, #OpenToWork8,000Warm context — you share a group or event. Reference the shared context.
Post commentAnyone (public posts)1,250Warm-up before connecting. Show you engaged with their content. Not a pitch.
Comment replyAnyone (in a thread)1,250Engage in a conversation they started. Add value, don't pitch.
Key Rules Per Type

Connection request (200/300 chars):

  • This is the gatekeeper. If they don't accept, nothing else happens.
  • Lead with the signal — what they did/said/posted that caught your attention.
  • One sentence of relevance. No pitch, no CTA, no "I'd love to..."
  • MUST be under the character limit. Count every character. If over, rewrite — never truncate.
  • Free accounts: 200 chars. Premium/Sales Navigator: 300 chars. Ask the user which they have.

InMail (subject 200 + body 1,900 chars):

  • Must work standalone — they haven't accepted your connection.
  • Subject: curiosity-driven, not salesy. Not "Quick question" or "Partnership opportunity."
  • Body: include context for why you're reaching out (the signal). Be specific.
  • Higher commitment ask is OK here — you're using a premium credit.

DM (8,000 chars):

  • Conversational. These read like DMs, not emails.
  • Shorter is almost always better. A 2-sentence message outperforms a 5-sentence one.
  • Good for follow-up sequences after connection accepted.
  • Sequence structure: Day 0 connection → Day 3 value-first → Day 7 social proof → Day 14 breakup.

Message request (8,000 chars):

  • Always reference the shared context (group name, event name, OpenToWork status).
  • More casual than InMail since you have something in common.

Post comment (1,250 chars):

  • Add genuine value. Share an insight, ask a smart question, build on their point.
  • NOT "Great post!" or "Love this!" — that's noise.
  • This is a warm-up move, not a pitch. The goal is to get noticed before connecting.

Comment reply (1,250 chars):

  • Continue the conversation. Reference what they said specifically.
  • Shorter than a standalone comment. 2-3 sentences max.

Workflow

Phase 0: Intake

Ask the user these questions. Skip any already answered.

Leads:

  1. Where are your leads? (CSV file, paste LinkedIn URLs, database, CRM — whatever they have)
  2. How many leads? (affects cost estimate and whether to use post scraper)

Message type: 3. What kind of LinkedIn message do you want to write? (connection request, InMail, DM, message request, post comment, comment reply, or a sequence of multiple types) 4. If connection request: do you have a free or premium LinkedIn account? (affects character limit: 200 vs 300)

Goal: 5. What's the objective? (book meetings, drive demo requests, get replies, build relationships, promote content, warm up before outreach) 6. What's the angle or hook? (pain-based, hiring signal, competitor displacement, event-based, content engagement, mutual connection, cold)

Tone: 7. Which tone? Present options:

  • Casual Professional — Friendly, human, slightly informal. Like messaging a peer. (default)
  • Thought Leader — Lead with insight or a contrarian take. Position sender as expert.
  • Provocative — Challenge assumptions, pattern-interrupt. Higher risk, higher reward.
  • Enterprise Formal — Polished, structured. For regulated industries or C-suite targets.
  • Custom — User pastes reference messages that have worked, or describes the vibe.
  1. Any reference messages that have worked well? (these override tone presets)

Context: 9. What does your company/product do? (one-liner for the AI to work with) 10. Any proof points? (customer names, metrics, case studies to reference)

Output: 11. Which LinkedIn outreach tool do you use? (Dripify / Expandi / Botdog / PhantomBuster / Just give me a CSV)

Phase 1: Load Leads

Accept leads from whatever source the user provides:

  • CSV file: Read the CSV. Look for a column containing LinkedIn URLs (common names: linkedin_url, LinkedIn URL, LinkedIn, profile_url, url). If ambiguous, ask the user which column.
  • Pasted URLs: User pastes LinkedIn URLs directly. Parse them.
  • Pasted list: User pastes names + companies or other data. Extract what's available.
  • Database/CRM: Ask the user how to access it. Use whatever tool or export they provide.

Minimum required: At least one LinkedIn URL per lead.

Present the lead count to the user and confirm before proceeding to research.

Phase 2: Research

Research each lead using two Apify actors. Both require only APIFY_API_TOKEN — no LinkedIn cookies.

Step 1: Profile Data

Use harvestapi/linkedin-profile-scraper to get profile data for all leads.

API call:

bash
curl -X POST "https://api.apify.com/v2/acts/harvestapi~linkedin-profile-scraper/runs?token=$APIFY_API_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "urls": [
      {"url": "https://www.linkedin.com/in/PROFILE_1/"},
      {"url": "https://www.linkedin.com/in/PROFILE_2/"}
    ]
  }'

Cost: $0.003 per profile. 100 leads = $0.30.

Returns per lead:

  • firstName, lastName, headline
  • jobTitle, companyName, companySize, companyIndustry
  • Full work history (positions array with title, company, description, duration)
  • Education (schools, degrees)
  • Skills (with endorsement counts)
  • Location, followerCount, connectionsCount
  • isCreator, isPremium, isVerified flags

Polling for results:

bash
# Check run status
curl "https://api.apify.com/v2/acts/harvestapi~linkedin-profile-scraper/runs/{RUN_ID}?token=$APIFY_API_TOKEN"

# When status is SUCCEEDED, fetch results
curl "https://api.apify.com/v2/datasets/{DATASET_ID}/items?token=$APIFY_API_TOKEN"
Show full SKILL.md (605 more words)Show less
Step 2: Recent Posts (Optional)

Use harvestapi/linkedin-profile-posts to get recent posts. Run this when:

  • User asks for deep personalization
  • Lead count is small (under 50) and budget allows
  • User explicitly wants to reference what leads are posting about

Skip this when:

  • Lead count is large (100+) and user wants speed over depth
  • User says basic personalization is fine

API call:

bash
curl -X POST "https://api.apify.com/v2/acts/harvestapi~linkedin-profile-posts/runs?token=$APIFY_API_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "profileUrls": [
      "https://www.linkedin.com/in/PROFILE_1/",
      "https://www.linkedin.com/in/PROFILE_2/"
    ]
  }'

Cost: $0.002 per post. ~20 posts per profile = ~$0.04 per lead. 50 leads = $2.00.

Returns per post:

  • content (full post text)
  • engagement (likes, comments, shares, reaction breakdown)
  • postedAt (timestamp)
  • postImages (if any)
  • author info (name, headline)

Polling: Same pattern as Step 1.

Step 3: Present Research Summary

After research completes, present a summary table:

Leads researched: {count}
Profile data: {count} profiles retrieved
Posts scraped: {count} posts from {count} leads (or "skipped")
Research cost: ~${total}

Sample leads:
| Name | Title | Company | Recent Post Topic | Personalization Angle |
|------|-------|---------|-------------------|----------------------|
| Jane Smith | VP Sales | Acme Corp | Posted about AI in sales | Reference her AI post |
| ... | ... | ... | ... | ... |

If the user asked to filter/qualify leads, do that now based on profile data (title, company, industry, etc.) and present which leads made the cut.

Phase 3: Write Messages

Generate personalized messages for each lead based on the research.

Personalization Hierarchy

Use the best available signal for each lead. In order of strength:

  1. Recent post content — Reference a specific post they wrote. Strongest signal.
  2. Work history details — Reference a specific achievement from their profile (e.g., "scaled from 0 to $8M GMV" is better than "you're a Co-founder").
  3. Creator topics/hashtags — Reference what they post about broadly.
  4. Current role + company — Reference their current position and what the company does.
  5. Education/background — Mutual school, shared background. Weakest but still personal.

If the user provided reference messages that have worked, analyze those for tone, length, structure, and vocabulary. Use them as the template — don't override with defaults.

Writing Process
  1. Generate samples first. Write messages for 3-5 leads with different signal richness levels. Present to user.
  2. Iterate. User reviews, gives feedback. Adjust tone/approach. Max 3 rounds.
  3. Batch generate. After approval, write messages for all remaining leads.
Character Limit Enforcement

After generating any message, count the characters. If over the limit:

  • Rewrite from scratch. Do NOT truncate.
  • Truncated messages look broken and unprofessional.
  • For connection requests (200/300 chars), every character matters. Be ruthless.
Phase 4: Export
Universal CSV Format

Generate a CSV with these columns:

linkedin_url, first_name, last_name, company, title, message_type, message_subject, message_body

For sequence-based campaigns (connection + follow-ups), use:

linkedin_url, first_name, last_name, company, title, connection_request, followup_1, followup_2, followup_3, inmail_subject, inmail_body
Tool-Specific Formatting

Dripify:

  • Columns: Profile URL, Note, Message 1, Message 2, Message 3
  • One row per lead with all messages in separate columns

Expandi:

  • Columns: LinkedIn URL, Connection message, Follow-up #1, Follow-up #2, Follow-up #3, InMail subject, InMail message

Botdog:

  • Columns: linkedin_profile_url, connection_note, message_1, message_2, message_3

PhantomBuster:

  • Columns: profileUrl, message
  • PhantomBuster typically handles one action at a time — may need separate CSVs for connection + follow-ups

Generic CSV / Other:

  • Use the universal format
  • Ask the user what their tool expects and adjust if needed
Save Files

Save to the current working directory:

{campaign-name}-{YYYY-MM-DD}.csv
Phase 5: Review & Deliver

Present final summary:

Campaign: {name}
Message type: {type}
Leads: {count}
Tool: {dripify/expandi/etc.}
Personalization: {profile-only / profile+posts}
Research cost: ~${amount}
Export file: {file_path}

Show 3-5 sample messages from the export for final review.

Do NOT mark as done without explicit user confirmation. Ask: "Messages look good? Anything to adjust before you import?"

After confirmation:

  • Provide the file path
  • Give tool-specific import instructions
  • Remind user to verify the first few messages after import

Cost Estimates

LeadsProfile OnlyProfile + Posts
10~$0.03~$0.43
50~$0.15~$2.15
100~$0.30~$4.30
500~$1.50~$21.50

Profile scraper: $0.003/profile. Post scraper: ~$0.04/lead (20 posts × $0.002).


Error Handling

ErrorFix
APIFY_API_TOKEN not setAsk user to add it to .env
Apify run fails or times outRetry once. If still fails, skip that lead and note it.
LinkedIn URL is invalid or profile not foundSkip the lead, report it to user
0 profiles returnedCheck URL format — must be full LinkedIn URL with https://
Post scraper returns 0 postsPerson doesn't post publicly. Use profile data only for personalization.

© gooseworks-ai, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

SKILL.md and 1 other file in skills/outreach/capabilities/linkedin-message-writer of gooseworks-ai/goose-skills.

  • SKILL.md
  • skill.meta.json

Open the folder on GitHubat commit c650c6d

Used in 1 other repository

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.

Compare with similar skills

Linkedin Message Writer 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 Message Writer compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Linkedin Message Writer this skillgooseworks-ai/goose-skills1.2k1 repos~3.4kAutomated safety check: NotesMIT
Apify Buying Signal Detectionapify/awesome-skills266—~5.1kAutomated safety check: NotesApache-2.0
Fullenrich Event AttendeesOthmane-Khadri/YALC-the-GTM-operating-system318—~1.4kAutomated safety check: WarnMIT
Coffee ChatLeoYeAI/openclaw-master-skills2.2k—~6.6kAutomated safety check: PassMIT
Apify Lead Scoring Enrichmentapify/awesome-skills266—~4.4kAutomated safety check: NotesApache-2.0
Linkedin Thread Monitorsergebulaev/linkedin-skills4.4k1 repos~1.4kAutomated safety check: PassMIT

Similar skills

  • Apify Buying Signal Detection

    apify/awesome-skills

    Official

    Set up a recurring buying-signal detection pipeline that finds companies showing buying intent across three signal types — job postings (hiring for the persona), fundraising events (recent raises)…

    266 GitHub stars~5.1k tokensUpdated 18 days ago
    Business, Finance & HRAuto-check: notes
  • Fullenrich Event Attendees

    Othmane-Khadri/YALC-the-GTM-operating-system

    A skill your agent uses when the user says "enrich this LinkedIn event", "enrich attendees of this event", "enrich this attendees CSV", "scrape and enrich LinkedIn event {URL}", "FullEnrich event…

    318 GitHub stars~1.4k tokensUpdated 1 mo ago
    Backend & APIsAuto-check: warnings
  • Coffee Chat

    LeoYeAI/openclaw-master-skills

    Generate a personalized coffee chat playbook for networking conversations.

    2.2k GitHub stars~6.6k tokensUpdated 2 mo ago
    Data & AnalyticsAuto-check passed
  • Apify Lead Scoring Enrichment

    apify/awesome-skills

    Official

    Score and enrich a CSV of B2B leads using Apify Actors. An agent skill from apify/awesome-skills.

    266 GitHub stars~4.4k tokensUpdated 18 days ago
    Data & AnalyticsAuto-check: notes
  • Linkedin Thread Monitor

    sergebulaev/linkedin-skills

    Track which of your LinkedIn comments earned author replies.

    4.4k GitHub starsUsed in 1 repo~1.4k tokens
    Data & AnalyticsAuto-check passed
  • Apify Google Maps Leads

    apify/awesome-skills

    Official

    Build a local-business lead database from Google Maps in one Apify pipeline: search by target audience + geography, enrich each place with company contacts from its website, leads enrichment (names…

    266 GitHub stars~3.8k tokensUpdated 18 days ago
    Data & AnalyticsAuto-check passed

More from gooseworks-ai/goose-skills

All 273 skills in this repo
  • Reddit Post Finder

    gooseworks-ai/goose-skills

    Scrape and search Reddit posts using Apify. An agent skill from gooseworks-ai/goose-skills.

    1.2k GitHub starsUsed in 1 repo~1.2k tokens
    Auto-check passed
  • Create Image Fal

    gooseworks-ai/goose-skills

    Generate or edit an image via any FAL image model (nano-banana edit, gpt-image, flux, ...), ROUTED THROUGH THE fal-proxy so it bills the Ads agent.

    1.2k GitHub stars~1.3k tokensUpdated today
    Auto-check passed
  • Render Hook Replacement

    gooseworks-ai/goose-skills

    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.

    1.2k GitHub stars~2.3k tokensUpdated today
    Auto-check passed
  • Blog Feed Monitor

    gooseworks-ai/goose-skills

    Scrape blog posts via RSS feeds (free, no API key) with Apify fallback for JS-heavy sites.

    1.2k GitHub starsUsed in 1 repo~578 tokens
    Auto-check passed
  • Competitor Post Engagers

    gooseworks-ai/goose-skills

    Find leads by scraping engagers from a competitor's top LinkedIn posts.

    1.2k GitHub starsUsed in 1 repo~1.8k tokens
    Auto-check: notes
  • Render Chatgpt Chat

    gooseworks-ai/goose-skills

    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…

    1.2k GitHub stars~2.3k tokensUpdated today
    Auto-check passed

Works with

Questions about Linkedin Message Writer

What does Linkedin Message Writer do?

Research LinkedIn profiles and write personalized messages for any LinkedIn message type — connection requests, InMails, DMs, message requests, post comments, and comment replies. Linkedin Message Writer is an agent skill from gooseworks-ai/goose-skills. Research LinkedIn profiles and write personalized messages for any LinkedIn message type — connection requests, InMails, DMs, message requests, post comments, and comment replies.

When should I use Linkedin Message Writer?

Linkedin Message Writer fits situations like: tasks that involve Web scraping; tasks that involve Messaging and chat bots; tasks that involve Resume and CV writing.

How do I install Linkedin Message Writer in Claude Code?

Run `npx skills add gooseworks-ai/goose-skills --skill linkedin-message-writer -a claude-code`. Or copy the skill folder (skills/outreach/capabilities/linkedin-message-writer in gooseworks-ai/goose-skills) into .claude/skills/linkedin-message-writer in your project. Claude Code loads it when a task matches its description.

How do I install Linkedin Message Writer in Codex?

Run `npx skills add gooseworks-ai/goose-skills --skill linkedin-message-writer -a codex`. Or copy the skill folder (skills/outreach/capabilities/linkedin-message-writer in gooseworks-ai/goose-skills) into .agents/skills/linkedin-message-writer in your project. Codex loads it when a task matches its description.

Can I use Linkedin Message Writer 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-message-writer -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-message-writer, .gemini/skills/linkedin-message-writer, .github/skills/linkedin-message-writer and .opencode/skills/linkedin-message-writer in your project.

What does Linkedin Message Writer need to run?

Going by SKILL.md and its folder, Linkedin Message Writer needs the command-line tools its instructions call (curl) and credentials named APIFY_API_TOKEN. Our summary lists: A credential in APIFY_API_TOKEN.

Does Linkedin Message Writer access the network?

SKILL.md names 2 domains. In commands or code: api.apify.com and linkedin.com; the agent is likely to contact these when it follows the instructions. This is read from the text; nothing was executed.

Is Linkedin Message Writer 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 Message Writer use?

Linkedin Message Writer 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 Message Writer use?

About 3.4k tokens (SKILL.md is roughly 14k 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 Message Writer?

Skills that share tags, products or a category with Linkedin Message Writer: Apify Buying Signal Detection (apify/awesome-skills, 266 stars), Fullenrich Event Attendees (Othmane-Khadri/YALC-the-GTM-operating-system, 318 stars), Coffee Chat (LeoYeAI/openclaw-master-skills, 2.2k stars) and Apify Lead Scoring Enrichment (apify/awesome-skills, 266 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Linkedin Message Writer?

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.