ig-audience-insights
Read your Instagram niche and profile from real data via Apify, no login. Scan a hashtag for the posts traveling now (likes,…
Repurpose existing content into a native Instagram post. Take a LinkedIn, blog, YouTube script, or X tweet or thread and rebuild it for Instagram: a long piece becomes a carousel or a caption, re-hooked before the 125-char fold, off-platform artifacts stripped (X @-handles, link
Claude Code
$ npx -y skills add sergebulaev/instagram-skills --skill ig-repurposer --agent claude-code
Codex
$ npx skills add sergebulaev/instagram-skills --skill ig-repurposer -a codex -y
Cursor
$ npx skills add sergebulaev/instagram-skills --skill ig-repurposer -a cursor -y
Gemini CLI
$ npx skills add sergebulaev/instagram-skills --skill ig-repurposer -a gemini-cli -y
GitHub Copilot
$ npx skills add sergebulaev/instagram-skills --skill ig-repurposer -a github-copilot -y
OpenCode
$ npx skills add sergebulaev/instagram-skills --skill ig-repurposer -a opencode -y
Windsurf
$ npx skills add sergebulaev/instagram-skills --skill ig-repurposer -a windsurf -y
name: ig-repurposer description: "Repurpose existing content into a native Instagram post. Take a LinkedIn, blog, YouTube script, or X tweet or thread and rebuild it for Instagram: a long piece becomes a carousel or a caption, re-hooked before the 125-char fold, off-platform artifacts stripped (X @-handles, link in bio), published via Publora on approval. Use to adapt content across platforms into Instagram. Not for writing from scratch (use ig-caption-writer or ig-carousel-planner), not for auditing a draft (ig-humanizer --mode audit)."
Turn something you already made into a post that reads like it was born on Instagram. Repurposing is not copy-paste. A post that killed on LinkedIn or a thread that flew on X will die on Instagram if you paste it: wrong hook, wrong container, wrong rhythm, no media, and artifacts ("link in bio", @-handles, hashtag walls) that scream off-platform.
This skill transforms, it does not generate. It reads your source, keeps the idea, and rebuilds the delivery for Instagram.
Not for a blank-page draft (use `ig-caption-writer` for a single caption, `ig-carousel-planner` for a slide-by-slide carousel) and not for reviewing an already-Instagram draft (use `ig-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 `ig-humanizer --mode profile` can learn their voice from a few posts, then proceed with the generic voice rules.
**Never invent the specifics.** The rules below ask for a concrete number, a date and a named entity, because that is what separates a real post from a generated one. Take them from what the user actually said in this conversation. **Do not invent a figure, a date, a client name or a result, and do not soften a vague claim into a plausible-looking number.** If the user has nothing concrete for a beat, ask them once, and if they still have nothing, drop the claim rather than decorate it. A published invented number is a retraction; a missing one is only a weaker post.
1. **Take the source.** Any format: a post, a paragraph, a script, a caption, a transcript, a bullet list, a link to read. Ask for the source, the media the user has (Instagram needs an image or video), and the goal (saves / shares / comments / follows) if not given. 2. **Extract the spine.** Strip the source platform's shell and pull out the one claim, the one story, or the one number worth keeping. Most repurposing fails because it keeps the words instead of the point. 3. **Choose the container.** One claim or number -> single caption. A teach, a list, or a build -> carousel, one point per slide (hand structure to `ig-carousel-planner`, hook slide to payoff slide). A long video -> a carousel that delivers the payoff, not a summary. 4. **Re-hook for the fold.** Instagram hides everything after ~125 characters behind "more". Line one (or the hook slide) must land the whole punch on its own. The source's hook almost never survives; write a new first line using a 2026 Instagram formula (see `../../references/hook-formulas.md`), picked by the goal. 5. **Refit the format.** Caption body skimmable, short lines, white space between beats. Carousel: one idea per slide, no wall. Cut the source's connective tissue; Instagram rewards the front-loaded payoff. 6. **Strip off-platform artifacts.** Remove "link in bio" carried from another platform, "smash subscribe", "read more below", X @-handles that only exist there, and any "as I wrote on LinkedIn" throat-clearing. A repurposed post should not admit it was repurposed. 7. **Media reminder.** Instagram rejects text-only posts. Confirm the image, video, or slide set the user will attach. A caption with no media is not publishable. 8. **Hashtags at the end.** Hand the topic to `ig-hashtag-strategist` or apply a 3-5 sized set yourself (see `../../references/hashtag-strategy.md`). Place them as one block at the END of the caption or in the first comment, never as a mid-text wall. 9. **Humanizer pass.** Run `ig-humanizer` V3 on the result: 2026 AI vocab by paragraph density, em dashes above the cap (about one per 100 words, never swapped for a period), stacked rule-of-three triads, generic openers and reveal bridges. Fix only a paragraph that reads machine-flat; never manufacture variance. Keep the user's real numbers and named entities from the source. 10. **Approval card.** Show: source -> Instagram mapping (what became what), the container (single caption or N-slide carousel), formula used, the hook (flag if over 125 chars), hashtag set, the media the user must attach, primary goal. 11. **On approval.** Publish via `lib.publish(kind="post", draft_text=<approved caption>, target_url="https://www.instagram.com/", media=[<local file paths>], platforms=[<INSTAGRAM_PLATFORM_ID>], scheduled_time=<iso_or_None>)`. For a Reel pass `kind="reel"`. The wrapper runs the Publora draft then upload then schedule flow. With no media or no Publora key it returns a copy-paste block and a reminder to attach the media.
slide) or, if it is one sharp claim, a single caption. LinkedIn tolerates warm-up; Instagram does not. The LinkedIn hook is usually too long; rewrite it for the 125-char fold.
per slide, hook slide first, payoff slide last. Do
Part of the linkedin-skills family (400+ stars). Same voice engine and approve-before-publish flow, now for Instagram. Also available for X · YouTube · TikTok · Threads · Facebook. 9 skills that turn Claude Code and Codex into your Instagram content team.
Read your Instagram niche and profile from real data via Apify, no login. Scan a hashtag for the posts traveling now (likes,…
Draft an Instagram caption with the hook in the first 125 characters, a skimmable body, and one clear CTA, using a 2026 hook…
Plan an Instagram carousel slide by slide, up to 10 slides, with a hook slide that opens a loop, value slides that front-load the…
Generate a weekly Instagram content plan from a theme, audience, and content pillars. Produces a per-day mix of Reels, carousels,…
Build a sized Instagram hashtag set for a post using the 2026 reality that 3 to 5 well-chosen tags beat 30 random ones. Sizes…
Reverse-engineer the hook from a viral Instagram Reel or carousel, given a URL or a pasted caption. Identifies which of the 10…
Activates when the user asks about AI prompts, needs prompt templates, wants to search for prompts, or mentions prompts.chat. Use…
AI-driven presentation workflow for generating editable PPTX decks and slides, reconstructing page visuals, creating reusable…
Use this skill when the user wants a .pptx with smooth cross-slide animation — PowerPoint Morph transitions, Keynote-style…
Create stunning, animation-rich HTML presentations from scratch or by converting PowerPoint files. Use when the user wants to…