by sergebulaev
Claude Code skills for LinkedIn growth: write human-sounding posts, craft comments that get noticed, analyze your feed, and build a publishing cadence — all from your terminal. Plug-and-play skills for content creators, founders, and marketers using Claude Code.
# Add to your Claude Code skills
git clone https://github.com/sergebulaev/linkedin-skillsGuides for using ai agents skills like linkedin-skills.
Last scanned: 6/27/2026
{
"issues": [
{
"file": ".codex-marketplace/linkedin-skills/SKILL.md",
"line": 61,
"type": "secret-exfiltration",
"message": "Instruction appears to send credentials/secrets to an external endpoint",
"severity": "medium"
},
{
"file": "README.md",
"line": 138,
"type": "secret-exfiltration",
"message": "Instruction appears to send credentials/secrets to an external endpoint",
"severity": "medium"
},
{
"file": "README.md",
"line": 205,
"type": "secret-exfiltration",
"message": "Instruction appears to send credentials/secrets to an external endpoint",
"severity": "medium"
},
{
"file": "README.md",
"line": 268,
"type": "secret-exfiltration",
"message": "Instruction appears to send credentials/secrets to an external endpoint",
"severity": "medium"
},
{
"file": "SKILL.md",
"line": 61,
"type": "secret-exfiltration",
"message": "Instruction appears to send credentials/secrets to an external endpoint",
"severity": "medium"
}
],
"status": "PASSED",
"scannedAt": "2026-06-27T06:52:19.752Z",
"npmAuditRan": true,
"pipAuditRan": false,
"promptInjectionRan": true
}linkedin-skills is an open-source ai agents skill for AI coding assistants such as Claude Code, Codex CLI, and ChatGPT, built by sergebulaev. Claude Code skills for LinkedIn growth: write human-sounding posts, craft comments that get noticed, analyze your feed, and build a publishing cadence — all from your terminal. Plug-and-play skills for content creators, founders, and marketers using Claude Code. It has 232 GitHub stars.
Yes. linkedin-skills passed SkillsLLM's automated security scan — a dependency vulnerability audit plus prompt-injection heuristics — with no high-severity issues. You can read the full report in the Security Report section on this page.
Clone the repository with "git clone https://github.com/sergebulaev/linkedin-skills" and add it to your Claude Code skills directory (see the Installation section above). linkedin-skills ships a SKILL.md manifest, so compatible agents can discover and load it automatically.
linkedin-skills is primarily written in Python. It is open-source under sergebulaev on GitHub, so you can review or fork the full source.
Yes. SkillsLLM lists many other AI Agents skills you can browse and compare side by side. Open the AI Agents category from the badge at the top of this page, or use the Related Skills and comparison links further down to weigh linkedin-skills against similar tools.
No comments yet. Be the first to share your thoughts!
A bundle of 10 focused skills for LinkedIn content ops in 2026. Each skill is single-purpose, follows the draft → approval → publish pattern, and uses the Publora API for posting.
linkedin-post-writerlinkedin-comment-drafterlinkedin-reply-handlerlinkedin-humanizer (rewrite + --mode audit pre-publish review; folds in the former post-audit, emoji-detector, rules-explainer, and detector-tester sub-tools)linkedin-hook-extractorlinkedin-content-plannerlinkedin-thread-monitorlinkedin-engager-analyticslinkedin-profile-optimizerlinkedin-employee-advocacyEvery action-taking skill follows three steps:
lib/url_parser.py to extract the post URN and any comment ID.Three tiers — pick one.
The skills work out of the box. No API keys, no signup. Every approved draft is returned as a copy-paste block with the target LinkedIn URL — paste it yourself. Great for trying the skills before committing to any backend.
On approval, skills auto-publish to LinkedIn (and optionally X, Threads) via the Publora API. Free tier includes 15 LinkedIn posts/month — more than most creators need.
.env:
PUBLORA_API_KEY=sk_...
LINKEDIN_PLATFORM_ID=linkedin-...
pip install -r requirements.txtWhy Publora: LinkedIn has three URN types (activity/share/ugcPost), a reaction-bug where INSIGHTFUL returns 400, and a 2-level thread-flattening quirk that breaks most third-party implementations. Publora handles all of it. We built on top of their API so we didn't have to.
Prefer not to SaaS it? Ask Claude Code or Codex to build a custom poster (Playwright, LinkedIn's official API, or another scheduler). Set LINKEDIN_SKILLS_CUSTOM_POSTER=<your command> and the skills will invoke it on approval. This is a weekend of work. Publora is 2 minutes.
Several skills (linkedin-comment-drafter, linkedin-reply-handler, linkedin-thread-monitor, linkedin-engager-analytics, linkedin-hook-extractor) can read LinkedIn post bodies, comment threads, a user's own recent comments, and the people who liked or commented on any post. They use the Apify platform when an APIFY_TOKEN is set; otherwise they ask you to paste the relevant text.
.env:
APIFY_TOKEN=apify_api_...
Actors used (all no-cookies, public, no LinkedIn login required):
| Use case | Actor | Approx cost |
|---|---|---|
| Post body by URL | supreme_coder/linkedin-post |
$1 / 1,000 |
| Comments + replies on a post | apimaestro/linkedin-post-comments-replies-engagements-scraper-no-cookies |
$5 / 1,000 |
| Your own recent comments | apimaestro/linkedin-profile-comments |
$5 / 1,000 |
| Likers + commenters on any post | scraping_solutions/linkedin-posts-engagers-likers-and-commenters-no-cookies |
$5 / 1,000 |
The thin client lives at lib/apify_client.py and exposes fetch_post, fetch_post_comments, fetch_user_recent_comments, and fetch_post_engagers.
—), en dashes, or double dashes — biggest AI tell... as soft pause when mid-sentence rhythm calls for it.leverage, fundamentally, streamline, harness, delve, unlock, foster.47% beats significant.(Canonical reference, plus comment-specific extensions: references/voice-rules.md. See also references/hook-formulas.md and references/algorithm-heuristics.md.)
LinkedIn ships three post URN types (the library handles all three):
| URN type | Example URL fragment | Example URN |
|---|---|---|
activity |
/posts/slug-activity-7448...-XX |
urn:li:activity:7448... |
share |
/posts/slug-share-7449...-XX |
urn:li:share:7449... |
ugcPost |
/feed/update/urn:li:ugcPost:7447... |
urn:li:ugcPost:7447... |
Comment URLs:
/feed/update/urn:li:activity:POST_ID?commentUrn=urn%3Ali%3Acomment%3A%28activity%3APOST_ID%2CCOMMENT_ID%29
The library decodes the commentUrn fragment and returns both post_urn and comment_id.
parentComment, not the reply's URN.INSIGHTFUL is NOT a valid Publora reaction type. Use INTEREST instead (the client auto-maps).url_parser may be activity when the canonical URN is actually ugcPost. If posting fails with 404, fall back to resolving via lib.ApifyClient.fetch_post_comments(post_id=...) and read the canonical URN from any existing comment's comment_url.lib/publora_client.py, lib/apify_client.py — thin Python clients used by every skillPublishing powered by the Publora REST API. Algorithm insights via arXiv 2501.16450 (360Brew) and AuthoredUp 2026 reach data.
10 skills that help Claude Code and Codex write LinkedIn posts, comments, and replies in your voice. They draft content, strip AI tells, and wait for your approval before anything gets published. No coding required.
Pick whichever way you use Claude Code or Codex:
codex plugin marketplace add sergebulaev/linkedin-skills
codex plugin add linkedin-skills@linkedin-skills
To test a local clone before publishing changes:
git clone https://github.com/sergebulaev/linkedin-skills.git
cd linkedin-skills
codex plugin marketplace add .
codex plugin add linkedin-skills@linkedin-skills
sergebulaev/linkedin-skillssergebulaev/linkedin-skillsgit clone https://github.com/sergebulaev/linkedin-skills.git
You have LinkedIn marketing skills in ./linkedin-skills/.
For any LinkedIn task, read the relevant skills/*/SKILL.md first.
Use lib/url_parser.py for URL parsing,
lib/apify_client.py for reading posts / comments / engagers,
lib/publora_client.py for publishing actions.
/plugin marketplace add sergebulaev/linkedin-skills
/plugin install linkedin-skills@linkedin-skills
Or clone the repo and open it as your working directory:
git clone https://github.com/sergebulaev/linkedin-skills.git
cd linkedin-skills
Once installed, just ask Claude Code or Codex for help with LinkedIn. The right skill activates automatically.
Write a post:
"Write me a LinkedIn post about why AI agencies are replacing traditional ones. Make it viral."
Comment on someone's post:
"Comment on this post: https://linkedin.com/posts/... — I want to add a thoughtful take."
Check a draft before publishing:
"Audit this post draft for AI tells and algorithm issues: [paste your text]"
Reverse-engineer a viral post:
"What hook formula does this post use? https://linkedin.com/posts/..."
Plan your week:
"Create a 7-day LinkedIn content plan. I'm a B2B SaaS founder targeting VPs of Marketing."
Rewrite your profile:
"Optimize my LinkedIn profile for inbound leads: https://linkedin.com/in/yourname"
Remove AI tells from any text:
"Humanize this text: [paste AI-generated draft]"
Every skill shows you a draft first and waits for your OK before doing anything. Nothing gets posted without your approval.
| Skill | What it does |
|---|---|
| Post Writer | Drafts viral-ready posts using 10 proven 2026 hook formulas (anaphora, R.I.P. obituary, year-over-year pivot, curiosity gap, and 6 more) |
| Comment Drafter | Drafts a comment on any LinkedIn post from its URL |
| Reply Handler | Drafts a reply to any comment, correctly handling LinkedIn's 2-level thread flattening |
| Post Audit | Checks your draft against 2026 algorithm rules and AI-detection patterns before you publish |
| Humanizer | Strips em dashes, AI vocabulary ("leverage", "delve", "harness"), rule-of-three lists, and other AI fingerprints. Bundles three sub-tools: AI-emoji density scorer, multi-detector spread tester (GPTZero, Originality.ai, ZeroGPT, Sapling, Copyleaks), and a rule-explainer reference for defending stylistic choices. |
| Hook Extractor | Reverse-engineers the hook formula from any viral post. Returns a blank template you can fill with your own topic |
| Content Planner | Creates a 7-day plan with daily post topics, formats, hooks, posting times, and comment targets |
| Engagement Monitor | Two read-side workflows: (1) tracks your comment threads for author replies and drafts follow-ups in the 6-24h window; (2) pulls likers and commenters on any post and groups them by ICP fit (peer / aspirational / prospect). |
| Profile Optimizer | Rewrites your headline, About section, Featured section, and Experience for 2026 conversion patterns |
| Employee Advocacy | Plans a team LinkedIn program: 14-day launch, posting cadence, brand governance, ROI tracking |
Four of the skills (Comment Drafter, Reply Handler, Hook Extractor, Engagement Monitor) can read post bodies, comment threads, your own recent comments, and the people who liked or commented on any post. Without an Apify token they fall back to asking you to paste the relevant text. With one, they fetch automatically.
Apify free tier ships with $5/month of credit, which goes a long way at $1-$5 per 1,000 results. The skills use four no-cookies actors:
| Use case | Actor | Cost |
|---|---|---|
| Post body by URL | supreme_coder/linkedin-post |
$1 / 1,000 |
| Comments + replies on a post | apimaestro/linkedin-post-comments-replies-engagements-scraper-no-cookies |
$5 / 1,000 |
| Your own recent comments | apimaestro/linkedin-profile-comments |
$5 / 1,000 |
| Likers + commenters on any post | scraping_solutions/linkedin-posts-engagers-likers-and-commenters-no-cookies |
$5 / 1,000 |
Setup: drop APIFY_TOKEN=apify_api_... into your .env. The thin client at lib/apify_client.py exposes fetch_post, fetch_post_comments, fetch_user_recent_comments, and fetch_post_engagers.
A typical creator running daily comment ops + a weekly engager-analytics sweep stays under $2/month, well inside the free tier.
By default, skills draft content for you to copy-paste into LinkedIn. If you want Claude Code or Codex to publish directly to your LinkedIn (and optionally to X, Threads, Instagram), connect Publora. It takes about 2 minutes.
Publora is a publishing API that handles LinkedIn's quirks (3 different URL formats, reaction type mismatches, thread flattening bugs). The free tier gives you 15 posts/month.
Step 1. Sign up at https://app.publora.com/signup (free)
Step 2. Connect LinkedIn: click Channels in the left sidebar, then Add Channel, pick LinkedIn, authorize.
Step 3. Find your Platform ID: go to Channels, click your LinkedIn account. The ID looks like linkedin-ABC123DEF. Copy the whole thing including linkedin-.
Step 4. Get your API key: click Settings (gear icon, bottom-left), then API, then Create Key. Copy the sk_... string.
Step 5. Create a file called .env in the linkedin-skills folder:
PUBLORA_API_KEY=sk_paste_your_key_here
LINKEDIN_PLATFORM_ID=linkedin-paste_your_id_here
If you cloned the repo, you can copy the template instead:
cp .env.example .env
Then open .env and replace the placeholders with your real values.
Step 6. Install two small Python packages:
pip install requests python-dotenv
Step 7. Test it. Ask Claude Code or Codex:
"Schedule a test LinkedIn post via Publora 24 hours from now: 'testing the API connection — will cancel in dashboard'."
If Publora returns a scheduled-post ID, you're set. Cancel the post in the Publora dashboard before the scheduled time. If you get HTTP 401, your API key is wrong. If you get HTTP 400 about a missing platformId, your LINKEDIN_PLATFORM_ID isn't set. See Troubleshooting.
Every skill follows these rules automatically:
| Problem | Fix |
|---|---|
| Skills don't activate when I ask about LinkedIn | Make sure you installed via the Skills panel, /plugin install, or codex plugin add. Try starting a new conversation. |
| "Publora API key not provided" | Your .env file is missing or in the wrong folder. It should be in the linkedin-skills/ root. |
| "401 Unauthorized" from Publora | Your API key expired. Go to Publora Settings > API > Create a new key. |
| "404 on comment/post" | Your LINKEDIN_PLATFORM_ID is wrong. Go to Publora Channels and copy the full linkedin-... string. |
| "400 reactionType" error | Known Publora quirk. The skills handle this auto |