create-post-variations
Turn one of your existing posts into several fresh variations through the Marky API. Use this when a post did well (or you just have one you like) and you want more posts in the same spirit, with new
SKILL.mdskills/create-post-variations/SKILL.md
GitHubRepurpose Posts
Squeeze more mileage out of content you already have. Pick a past post and spin it into several new draft variations with fresh wording and angles, optionally pointing at a specific link.
Read the marky-api skill first for the base URL, your mk_live_ key, and the full
endpoint list. Everything below uses https://api.mymarky.ai/api and the header
Authorization: Bearer mk_live_YOUR_KEY.
Marky wants your feedback. If anything breaks or is confusing while you run this skill — and again once you finish — send Marky a quick note with the submit_feedback MCP tool. See the "Marky wants your feedback" section in the marky-api skill for when and how.
Step 1 — find the business and pick a source post
curl https://api.mymarky.ai/api/businesses \
-H "Authorization: Bearer mk_live_YOUR_KEY"
# List recent posts so the user can choose one to repurpose.
curl "https://api.mymarky.ai/api/businesses/BIZ_ID/posts" \
-H "Authorization: Bearer mk_live_YOUR_KEY"
Show the user a short list and let them pick. If you want the full caption and any attached media of the chosen one:
curl https://api.mymarky.ai/api/businesses/BIZ_ID/posts/POST_ID \
-H "Authorization: Bearer mk_live_YOUR_KEY"
Note the original caption and its media_urls (you can reuse the same media in the
variations, or leave it off).
Step 2 — write the variations
Decide how many variations (5 is a good default) and what should change. Keep the core message, vary the rest:
- New angle. Reframe the same idea with a different hook pattern — question, bold
claim, story open, stat, contrarian, before/after, confession (the full named palette
with anti-patterns lives in the
plan-social-contentskill's "Hooks" section). The user's brand rules and measured learnings outrank the palette. - New wording. Do not just shuffle words. Each variation should read as its own post.
- Optional CTA link. If the user wants every variation to drive to one link, append it to each caption.
Ask the user for the link if they mentioned wanting one, otherwise skip it.
Step 3 — create each variation as a draft
For each variation, create a new post with status NEW (a draft) so the user can review
before anything is scheduled:
curl -X POST https://api.mymarky.ai/api/businesses/BIZ_ID/posts \
-H "Authorization: Bearer mk_live_YOUR_KEY" \
-H "Content-Type: application/json" \
-d '{
"caption": "Variation 1 caption. Different hook, same core message. https://your-link.example",
"media_urls": ["ORIGINAL_MEDIA_URL_OR_OMIT"],
"restrict_publish_to": ["instagram", "facebook", "linkedIn"],
"status": "NEW"
}'
Repeat for each variation. Reuse the source post's media_urls if it makes sense, or drop
the field for text-only variations (text-only posts can only target facebook and
linkedIn).
Step 4 — review and hand off
List the new drafts so the user can see them all:
curl "https://api.mymarky.ai/api/businesses/BIZ_ID/posts?status=NEW" \
-H "Authorization: Bearer mk_live_YOUR_KEY"
Show the variations and ask which to keep. To schedule the keepers, use the
schedule-posts skill, or schedule directly:
curl -X POST https://api.mymarky.ai/api/businesses/BIZ_ID/posts/POST_ID/schedule \
-H "Authorization: Bearer mk_live_YOUR_KEY" \
-H "Content-Type: application/json" \
-d '{ "scheduled_publish_time": "2026-04-10T09:00:00Z" }'
Tips
- Space repurposed variations out over days or weeks. Do not post five near-identical versions back to back.
- Each variation should stand on its own. If two read the same, rewrite one.
- Repurposing a proven post is one of the highest-leverage things you can do. Pair this
with the
review-performanceskill to find which posts are worth repurposing.