linkedin-skills is a collection of Claude Code and Codex skills for creating and managing LinkedIn content from a terminal. It helps users draft posts, comments, and replies, review their feeds, and plan a publishing cadence while requiring approval before publication. The catalogue entries are the project's skills, instructions, and plugin for using these workflows with coding agents.
Getting it into your agent
One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.
npx skills add sergebulaev/linkedin-skills --skill linkedin-reply-handlergit clone --depth 1 https://github.com/sergebulaev/linkedin-skillsWrote this? Show the measurements
A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.
[](https://agentmods.dev/skills/sergebulaev/linkedin-skills/linkedin-reply-handler)<a href="https://agentmods.dev/skills/sergebulaev/linkedin-skills/linkedin-reply-handler"><img src="https://agentmods.dev/badge/skills/sergebulaev/linkedin-skills/linkedin-reply-handler.svg" alt="Measured on agentmods" height="20"></a>- NVIDIA SkillSpector pass
What it costs to keep this loaded
Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.
| Model | Per session | Once invoked |
|---|---|---|
| Fable 5.1 | $0.00088 | $0.01657 |
| Opus 5 | $0.00044 | $0.00829 |
| Sonnet 5 | $0.00018 | $0.00331 |
| Haiku 4.5 | $0.00009 | $0.00166 |
Grade A, and why
linkedin-reply-handler scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured yesterday.
A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.
Nothing flagged
None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.
How it starts
The opening of the file, as written. The whole thing — 105 lines — stays where its author put it; the contents beside it link to each section on GitHub.
LinkedIn Reply Handler
Drafts a reply to a specific LinkedIn comment. Correctly handles LinkedIn's 2-level thread flattening: if you're replying to a reply, the Publora API needs the TOP-level comment URN as parentComment, not the reply's URN.
When to use
- User pastes a LinkedIn comment URL (contains
?commentUrn=...) and says "reply to this" - An author replied to the user's comment and the user wants to continue the thread
- User wants to re-engage a conversation that's gone dormant
Input
A LinkedIn URL containing commentUrn=urn:li:comment:(activity:POST,COMMENT_ID) — either the direct comment permalink or a feed URL with the query fragment.
Output
- 1-2 reply drafts, 150-300 chars each
- Reaction suggestion for the comment being replied to (always react before replying)
- Thread context summary (who said what, when)
- Approval card → on user "post", fires reaction + reply via Publora
Steps
Voice profile first (all drafts). If ../../references/voice-profile.md has filled: yes, load it and match the user's voice fingerprint, hard rules, and CTA/link style throughout. If it is not filled, mention once that linkedin-humanizer --mode profile can learn their voice from a few posts, then proceed with the generic voice rules.
- Parse the URL.
lib.url_parser.parse_linkedin_urlreturnspost_urn,comment_id,comment_urn. - Determine thread structure. If
APIFY_TOKENis set, calllib.ApifyClient.fetch_post_comments(post_id=post_urn, max_items=50, scrape_replies=True)and locate the comment bycomment_id. Otherwise ask the user to paste the relevant slice of the thread. Figure out whether the target is:- a top-level comment (parentComment = this comment's URN when replying)
- a reply to a top-level comment (parentComment = the TOP comment's URN, not this reply's URN. LinkedIn flattens)
- Read the full context. Author post text, top-level comment text, any intermediate replies. Include the user's own prior comment if they're in the thread.
- Draft the reply. Follow the engagement templates in
references/reply-templates.md. If the counterpart asked a question, answer it directly. If they pushed back, concede then sharpen. - Humanizer pass. Scrub 2026 AI vocab by density, cap em dashes (about one per 100 words), fix only machine-flat rhythm and never manufacture sentence-length variance. Canonical rules:
linkedin-humanizerV3. - Approval card. Include thread preview (who said what in last 3 turns), the draft, reaction suggestion, and the parentComment URN we'll send.
- On approval. Call
lib.publish(kind="reply", draft_text=<approved>, target_url=<comment_url>, post_urn=<urn>, platform_id=<id>, parent_comment=<top_level_comment_urn>, reaction_type=<chosen>). The wrapper handles Publora / manual / diy routing.
What ships with it
3 files beside SKILL.md in the same directory: the scripts, references and assets a skill reads on demand. Not counted in the per-session cost; read them before you install if any of them is executable.
What this file has done since we first saw it
Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.
- yesterday Changed 20bf9710162f
- 3d ago Changed · +18 lines ec45b3e8f8e1
- 7d ago First seen · 87 lines · 88 tokens per session scan A bf9110953c9c
linkedin-reply-handler is a skill published in the GitHub repository sergebulaev/linkedin-skills (1,233 stars, last pushed today), licensed MIT. It adds 88 tokens to every session and 1,657 once invoked, about $0.0004 per session on Opus 5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-30.
Other skills, from other repositories
linkedin-analytics-interpreter
Translate raw LinkedIn analytics (impressions, engagement rate, profile visits, follower growth, top posts) into a clear diagnosis : what is working, what is not, and 3 specific actions to take next month. Use when the user has numbers but does not know what they mean or what to do about them. Requires the Taplio MCP…
linkedin-content-calendar-planner
Generate a 4-week LinkedIn content calendar tuned to the user's pillars, posting cadence, and audience. Returns a day-by-day plan with topic, format, hook angle, and CTA per post. Use when the user wants a system for the next month instead of inventing content every morning. Once the plan is confirmed it writes a…
linkedin-content-pillars-builder
Define 3 to 5 LinkedIn content pillars consistent with the user's positioning, plus 5 to 10 post topics for each pillar. Pillars are the recurring themes that make a creator recognizable. Use after the user has defined their niche, or when their content feels random and they want a system. Requires the Taplio MCP…
linkedin-niche-definer
Help the user define (or sharpen) their LinkedIn niche : audience, problem they solve, unique angle, and one-line positioning. The skill walks the user through a 7-question diagnostic, then synthesizes a positioning statement they can use across headline, About, and posts. Use when the user says "I do not know what to…
linkedin-swipe-file-builder
Help the user assemble a personal swipe file of high-performing LinkedIn posts, organized by hook pattern, format, and angle. The skill defines the structure, asks for inputs, turns saved posts into a usable reference library, then drafts the user's own post for every reference in the file (reusing structure, not…
linkedin-audience-persona-builder
Build a sharp, post-ready persona of the user's target LinkedIn audience : role, pains, jobs to be done, vocabulary, aspirations, what content they consume, what objections they raise. Use when the user is starting on LinkedIn or when their content does not resonate (low comments, no DMs, traffic without conversion).…