Repurpose existing content into a native LinkedIn post. Take a tweet, thread, YouTube video, blog, or newsletter and rebuild it for LinkedIn: re-hook before the fold, expand to the 900 to 1300 char sw
The skill file stays in the publisher's repository.
Paste the copied command in a terminal. It installs this SKILL.md into that agent.
npx skills add sergebulaev/linkedin-skills --skill linkedin-repurposer -a cursor -y
Repurpose existing content into a native LinkedIn post. Take a tweet, thread, YouTube video, blog, or newsletter and rebuild it for LinkedIn: re-hook before the fold, expand to the 900 to 1300 char sweet spot, add whitespace and a CTA, move links to the first comment, run the humanizer, publish via Publora on approval. Not for writing from scratch (use linkedin-post-writer), not for auditing a draft (use linkedin-humanizer --mode audit).
Repurpose existing content into a native LinkedIn post. Take a tweet, thread, YouTube video, blog, or newsletter and rebuild it for LinkedIn: re-hook before the fold, expand to the 900 to 1300 char sweet spot, add whitespace and a CTA, move links to the first comment, run the humanizer, publish via Publora on approval. Not for writing from scratch (use linkedin-post-writer), not for auditing a draft (use linkedin-humanizer --mode audit).
Turn something you already made into a post that reads like it was written for LinkedIn. Repurposing is not copy-paste. A tweet that flew on X will flop pasted into LinkedIn: too short, no whitespace, wrong rhythm, and a link in the body that tanks your reach.
This skill transforms, it does not generate. It reads your source, keeps the idea, and rebuilds the delivery for LinkedIn's 2026 algorithm.
Not for a blank-page draft (use linkedin-post-writer) and not for reviewing a finished LinkedIn draft (use linkedin-humanizer --mode audit).
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. If ../../references/story-bank.md has filled: yes, load it too and take concrete details (numbers, dates, named projects) from there instead of asking mid-draft. Never invent a figure that is not in it; if the bank has nothing that fits, ask the user or offer linkedin-interviewer.
../../references/hook-formulas.md, picked by the goal.lib.publish(kind="post", draft_text=<approved>, target_url="https://www.linkedin.com/post/new/", platforms=[{"platform":"linkedin","platformId":<id>}], scheduled_time=<iso_or_None>). The wrapper handles Publora / manual / diy routing. If the user reconsiders after approving, call lib.unpublish(post_group_id=<postGroupId from the response>) to cancel it before it goes out. On the publora tier the post is already queued, so the dashboard is otherwise the only way back.Global voice rules: see root SKILL.md §Voice rules. Additional skill-specific rules:
../../references/hook-formulas.md - the 20 formula skeletons to re-hook with../../references/algorithm-heuristics.md - 2026 posting rules (timing, format, length)linkedin-post-writer - write a fresh post from scratchlinkedin-humanizer - scrub AI tells, plus --mode audit to review the resultlinkedin-hook-extractor - reverse-engineer a hook from a post you admire