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.
/plugin marketplace add alirezarezvani/claude-skills
/plugin install linkedin@claude-code-skillsWhat 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-skillsThis installs the whole linkedin plugin with all its skills
2Skills CLI (Vercel)
npx skills add alirezarezvani/claude-skills --skill linkedin-engagement -a claude-code3Manually: put the files in place
~/.claude/skills/linkedin-engagement/SKILL.mdCopy the whole skill folder; for one project use .claude/skills/linkedin-engagement/
Manually: put the files in place
.agents/skills/linkedin-engagement/SKILL.mdFor all projects use ~/.agents/skills/
Manually: put the files in place
.cursor/skills/linkedin-engagement/SKILL.mdCursor also reads .agents/skills/ and .claude/skills/
1GitHub CLI
gh skill install alirezarezvani/claude-skills linkedin-engagement2Manually: put the files in place
.github/skills/linkedin-engagement/SKILL.mdPlatform CLI
gemini skills install https://github.com/alirezarezvani/claude-skills --path marketing/linkedin/skills/linkedin-engagementManually: put the files in place
.devin/skills/linkedin-engagement/SKILL.mdThe legacy .windsurf/skills/ path still works
Claude.ai
Zip the folder and upload it in Settings → Capabilities → Skills
From the same set349
The whole set →Similar
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