Skip to main content
skill Claude Code

linkedin-engagement — Claude Code skill: what it does, how to install

Plans weekly commenting schedules and drafts custom LinkedIn outreach messages within safe account limits. Keeps your profile safe from spam flags.

Install into Claude Code · Plugin marketplace All methods and platforms ↓
/plugin marketplace add alirezarezvani/claude-skills
/plugin install linkedin@claude-code-skills
Open on GitHub

What linkedin-engagement does

This skill organizes manual networking on LinkedIn through comments and direct messages. It never connects to an API or sends text on its own. Everything stays manual because automated engagement violates section 8.2 of LinkedIn's User Agreement. You copy and paste every note yourself.

Under the hood, three Python 3 scripts handle the logic. The comment_target_planner.py script builds a weekly commenting roster for 8 to 12 accounts inside your daily time budget. The outreach_volume_guard.py script stops you when invitations exceed 40 per day or acceptance drops below 20%. The outreach_message_builder.py tool crafts notes under 200 characters (300 with --premium), outright refusing templates and premature sales pitches.

You need Python 3 installed to execute the internal scripts. Install this tool if you want a disciplined, personalized routine; look elsewhere if you want bulk automated messaging.

What it helps with

  • build a balanced weekly commenting roster within a daily time budget
  • check invitation volumes against weekly safety caps and pending backlogs
  • generate custom connection request notes under 200 characters
  • filter out template clichés and premature sales pitches on first touch

Example prompts for the agent

  • Build a weekly comment roster for 8 accounts with an 18-minute daily budget
  • Check if sending 20 invitations is safe with 5 pending requests
  • Draft a personalized connection note for Priya referencing her recent post

How to install linkedin-engagement

1Plugin marketplace

/plugin marketplace add alirezarezvani/claude-skills
/plugin install linkedin@claude-code-skills

This installs the whole linkedin plugin with all its skills

2Skills CLI (Vercel)

npx skills add alirezarezvani/claude-skills --skill linkedin-engagement -a claude-code

3Manually: put the files in place

~/.claude/skills/linkedin-engagement/SKILL.md

Copy the whole skill folder; for one project use .claude/skills/linkedin-engagement/

From the same set349

The whole set →
engineering-skills Alireza Rezvani An engineering skill index for Claude Code that helps you select one specialist SKILL.md for the task at hand. It covers architecture, testing, DevOps, and data work. Claude Code 2,387installs finance-skills Alireza Rezvani Routes ambiguous finance prompts to the right bundled skill: financial-analyst, saas-metrics-coach, or month-end-close. Claude Code 2,312installs marketing-skills Alireza Rezvani A directory and router for marketing skills in Claude Code. It picks the right specialist skill for SEO, content, CRO, channels, and related tasks. Claude Code 2,264installs business-growth-skills Alireza Rezvani Routes growth and revenue prompts to the right specialized skill across customer success, sales engineering, RevOps, and proposals in Claude Code. Claude Code 2,189installs engineering-advanced-skills Alireza Rezvani An index of 37 engineering skills for architecture, automation, reliability, and platform work. Use it when a project needs task-specific engineering workflows. Claude Code 2,019installs product-skills Alireza Rezvani Product work orchestrator for Claude Code. Routes queries across 16 domain lanes and validates discovery trees with deterministic scripts. Claude Code 1,994installs pm-skills Alireza Rezvani Routes project-delivery requests across 8 PM sub-skills for Jira, Confluence, sprints, reporting, and team communication. Useful for controlled delivery work. Claude Code 1,975installs senior-backend Alireza Rezvani Scaffolds backend APIs, detects database bottlenecks, and runs load tests. Useful when designing Express routes, optimizing PostgreSQL, or preparing for production. Claude Code 1,674installs

Similar

shopify-review-triage official Shopify App Review Brief - independent, not affiliated with or endorsed by Shopify Inc. Turns pasted public Shopify App Store reviews into a P0-P3 brief. Use it to sort low-star feedback and decide which reported issues need attention first. GitHub Copilot 11installs seo-audit coreyhaines31 Diagnoses technical SEO issues, indexing drops, and metadata errors. Identifies why your site is losing organic search rankings in Google. Claude Code CX Codex Cursor +1 236,800installs brand claudekit Keeps brand voice, visual rules and design tokens in one markdown file, then feeds them to your agent's prompts and to your CSS variables. Claude Code CX Codex Cursor +1 39,500installs banner-design claudekit Generates banners for social media, ads, and web hero sections using HTML/CSS. Useful when you need fast visual creative assets directly in your coding agent. Claude Code CX Codex Cursor +1 39,000installs marketing-psychology coreyhaines31 Applies behavioral science and mental models to marketing decisions. It helps teams analyze buyer motivations and solve funnel bottlenecks. Claude Code CX Codex Cursor +1 164,000installs content-strategy coreyhaines31 Plans content roadmaps, selects blog topics, and balances searchable search-intent pieces with shareable formats. Use it when deciding what to write next to bring in leads. Claude Code CX Codex Cursor +1 163,400installs ai-seo coreyhaines31 Use this skill to work on content visibility in AI search and investigate why AI-generated answers cite—or miss—your brand. Claude Code CX Codex Cursor +1 150,100installs

Questions about linkedin-engagement

How do I install linkedin-engagement in Claude Code?

Run /plugin marketplace add alirezarezvani/claude-skills or use npx skills add alirezarezvani/claude-skills --skill linkedin-engagement -a claude-code.

Does this skill send messages or comments automatically?

No. The skill makes zero API requests and asks for no credentials. You review, copy, and send each note manually to comply with LinkedIn rules.

Why does the message builder refuse to write my note?

The outreach_message_builder.py script requires a specific detail about the recipient. It rejects generic templates, sales requests on first touch, and dead clichés.

Source text

SKILL.md · MIT
---
name: linkedin-engagement
description: Use when someone wants to grow reach through comments, replies, groups, or outreach on LinkedIn — a commenting roster, a connection request note, a DM or InMail, a networking plan, or a check on whether their outreach volume is safe. Triggers on "who should I engage with", "write a connection request", "cold DM", "LinkedIn outreach", "networking strategy", "how many invites can I send". Builds a weekly comment roster inside a real time budget, assembles one message at a time and refuses templates, and caps volume against LinkedIn's limits. Nothing is ever sent.
license: MIT
metadata:
  version: 1.0.0
  author: Alireza Rezvani
  category: marketing
  updated: 2026-08-25
---

# LinkedIn Engagement — comments first, outreach second

From a standing start your posts reach almost nobody, and publishing harder does not fix it.
A substantive comment on a post that already has an audience puts your name, headline, and a
paragraph of thinking in front of people already reading about your subject, for six minutes
of work — the cheapest distribution on the platform, and the most badly used.

**Nothing here sends anything** — no credentials, no API calls. Automated connecting,
messaging, commenting, liking, and sharing are prohibited by User Agreement §8.2.

## Workflow

**1. Build the comment roster.** Name 8-12 accounts they would read anyway, with audience
overlap and rough size tier, then:

```bash
python3 scripts/comment_target_planner.py --account "Priya Raman:5:4:larger" \
  --account "Tomas Lind:5:3:peer" --minutes-per-day 18 --output human
```

Tiers are `huge` (10x+, crowded), `larger` (2-10x, the best ratio), `peer` (~1x, where
reciprocity compounds), `smaller` (goodwill). The roster caps any account at twice a week —
commenting daily on one person reads as following them around — and keeps the huge tier under
half of any day. It builds the roster, never the comments: a generated comment is exactly
what §8.2 names, and it is recognisable anyway.

**2. Outreach — check the volume before writing anything.**

```bash
python3 scripts/outreach_volume_guard.py --invites 20 --pending 5 --minutes 120 \
  --acceptance 0.42 --output human
```

Exit 0 safe / 2 tight / 3 over a cap or the time budget / **4 refused** above 40 invitations
a day, because nobody reads that many profiles and writes that many specific lines. Pending
invitations count against the weekly limit (observed around 100), and acceptance below 20% is
a stop signal — it is the pattern LinkedIn reviews, and the targeting is wrong.

**3. Write one message, for one person.**

```bash
python3 scripts/outreach_message_builder.py --type connection \
  --recipient "Priya" --specific-line "..." --reason "..." --output human
```

It refuses without a person-specific line, refuses an ask in a first-touch connection note,
and enforces the 200-character cap (300 with `--premium`). In large third-party samples a
note barely moves acceptance (~26.4% either way) but roughly doubles the post-accept reply
rate: **the note earns the conversation, not the meeting.**

**4. The order that works.** Comment on their work for two weeks. Then invite, referencing
something specific from that reading. Then, after acceptance and a pause, ask once, small.

## Rules

- **Nothing is auto-sent.** Ever. The user pastes and sends, one person at a time.
- **No engagement pods.** Coordinated reciprocal commenting is inauthentic engagement under
  §8.2 regardless of who pressed the key. Build a real reciprocity list instead.
- **Every message carries a line that could only have been written for that person.**
- **Never paste the same comment twice.** Identical comments at volume are the definition of
  the thing §8.2 prohibits.
- **One follow-up, a week later, only with something new to say.**
- **Agreement is not a comment.** Add the counter-example, the number, or the case where it
  breaks — or skip the slot.

## Scripts

| Script | Role |
|---|---|
| [`scripts/comment_target_planner.py`](scripts/comment_target_planner.py) | Weekly roster from scored accounts, inside a time budget, with per-account and per-tier caps. |
| [`scripts/outreach_message_builder.py`](scripts/outreach_message_builder.py) | Assembles one message; refuses templates, premature asks, and 14 dead phrases. |
| [`scripts/outreach_volume_guard.py`](scripts/outreach_volume_guard.py) | Caps invitations against the observed weekly limit, pending backlog, acceptance floor, and the hours available. |

## References and assets

- [`references/comment_strategy.md`](references/comment_strategy.md) — tiers, what a comment competes on, pods, replying to your own posts (7 sources)
- [`references/outreach_ethics_and_benchmarks.md`](references/outreach_ethics_and_benchmarks.md) — the benchmark numbers with their provenance, and the personalisation claim corrected (7 sources)

- [`assets/outreach_worksheet.md`](assets/outreach_worksheet.md) — fillable per-person prep sheet
- [`assets/example_outreach.json`](assets/example_outreach.json) — input shape for the builder

## Distinct from

- **`linkedin-content`** — writes posts. A comment is a different craft on a different budget.
- **`marketing-skill/cold-email`** — email. Different channel, law, and caps.
- **`business-growth/`, `commercial/`** — sales process and deal economics, not networking.

---
**Version:** 1.0.0

© Alireza Rezvani · MIT · alirezarezvani/claude-skills

See also

Project sponsors

Companies that keep this analytics open
Gold sponsor

Impressions, clicks and code copies — open statistics. We keep the numbers public for the same reason NeBlask itself is public. Become a sponsor