Social Media Content skill for Codex

One idea, written natively for each network. Codex plans social around a few content pillars and writes each post for its platform: hook first, one idea, the right length and format, accessible alt text and captions. It repurposes a single blog post or release into LinkedIn posts, threads, carousels and video scripts, exports a scheduler-ready calendar with tagged links, and leaves publishing to you after review.

  • Growth & SEO
  • $social-media-content
  • 159 lines
  • 2 files
  • ~1,850 tokens
  • MIT
  • Updated

Install

curl -fsSL codexskills.dev/install.sh \  | sh -s -- social-media-content

Installs to ~/.agents/skills/social-media-content/ for every project on this machine.

104-line POSIX script. No sudo, no telemetry. Read install.sh

Use it in Codex

Start a prompt with $social-media-content, or pick it from /skills. You can also just describe the task: Codex reads the description below and loads the playbook when your request matches.

What Codex reads before loading it

Plans and writes platform-native social posts and content calendars for LinkedIn, X, Threads, Bluesky, Instagram, TikTok, YouTube Shorts and Reddit - content pillars, hooks, format and length per platform, repurposing one source into many posts, alt text, scheduling CSVs and performance review. Use when asked to write a LinkedIn post, turn a blog post or release into a thread, build a monthly content calendar, adapt one announcement for several networks, or work out which posts are performing.

Use it when

  • An announcement, article or release needs posts adapted for several platforms
  • You need content pillars and a sustainable posting calendar
  • Posts read like ads and get little engagement
  • You want to compare performance by pillar and format from analytics exports

Use something else when

  • You are planning a whole launch day across Product Hunt and Hacker News: use product-launch
  • You need paid social ad variants within ad character limits: use ad-copy

How to check the result

Each post fits its platform's limit in the native preview, every image has alt text, and calendar links resolve with UTM tags attached.

The mistake it prevents

Pasting the same text on every network, so the X version is truncated and the LinkedIn version has no hook above the fold.

~/.agents/skills/social-media-content/SKILL.md

--- name: social-media-content description: Plans and writes platform-native social posts and content calendars for LinkedIn, X, Threads, Bluesky, Instagram, TikTok, YouTube Shorts and Reddit -… license: MIT ---

Social content is done well when each post is written for the platform it appears on (length, format, culture), opens with a line that earns the next one, carries one idea, and the calendar is built from a few pillars the audience actually cares about. Posting the same text everywhere is not distribution.

Inputs

  • Who the account speaks as (founder, company, product) and the brand voice; check the repo or docs for a voice guide (rg -il "voice|tone" docs/ content/), or use brand-voice.
  • The audience per platform and the goal: followers, clicks to a page, signups, hiring, community. One goal per post.
  • Source material: blog posts, changelogs, docs, talks, customer stories, data. Original material beats commentary.
  • Past performance export if available (CSV from LinkedIn, X, Meta Business Suite).

Platform specifics

Limits change; confirm in the platform UI when a number matters.

PlatformText limitWhat worksWatch out
LinkedIn3,000 chars; ~2-3 lines show before “see more”First-person lessons, specific numbers, carousels (PDF documents), short paragraphsEngagement-bait (“Comment YES”), walls of hashtags
X280 chars (longer for paid accounts)One sharp claim, threads that deliver on the first post, native images and videoThreads where post 1 is only “A thread:”
Threads500 charsConversational, replies matterCross-posted X jargon
Bluesky300 charsDeveloper and niche communities, custom feedsLinks work; keep the post useful without them
Instagram2,200-char captions; max 5 hashtags per post (cap introduced late 2025)Reels (9:16), carousels (4:5), first line of captionText-heavy single images
TikTok / YouTube Shorts / ReelsVideo-first; script the first 2 secondsHook on screen + spoken, captions burned in, 15-45 sSlow intros, logo animations
RedditPer-subreddit rulesGenuine contributions, answers, behind-the-scenesSelf-promotion; read each subreddit’s rules and promotion ratio first

Hand video production to a video skill; this skill writes the script and on-screen text.

Workflow

- [ ] 1. Define 3-5 content pillars and the goal per platform
- [ ] 2. Inventory source material; pick the pieces with the most original insight
- [ ] 3. Draft posts per platform from each source (repurposing matrix below)
- [ ] 4. Edit: hook, one idea, specifics, CTA matching the goal
- [ ] 5. Add alt text, captions, link tracking
- [ ] 6. Lay out the calendar; export in the scheduler's import format
- [ ] 7. After 2-4 weeks, review performance and adjust pillars and formats

Content pillars

Each pillar is a theme the account can speak on with authority plus a reason the audience cares. Example for a developer tool:

PillarShare of postsExample formats
Hard-won engineering lessons35%LinkedIn story post, X thread, blog excerpt
Product in use (not features)25%30 s screen recording, before/after
Customer and community20%Customer quote with result, community highlight
Industry point of view15%Opinion post with a specific claim
Company / hiring / behind the scenes5%Team photo with context, hiring post

Repurposing one source

From one blog post or release:

  1. LinkedIn: the core lesson as a first-person story, 150-250 words, no link in the body if testing reach (put it in the first comment, then compare results).
  2. X thread: 4-7 posts; post 1 states the payoff, each post stands alone, last post links.
  3. Carousel: 6-10 slides, one point per slide, big type, last slide CTA.
  4. Short video: 30 s script showing the result on screen.
  5. 3-5 single posts quoting distinct insights, spaced across weeks.

Writing rules

  • Hook (first line): a specific claim, number, contrarian take, or concrete scene. “We cut our CI time from 22 to 6 minutes. 3 changes did 80% of it.” beats “Excited to share some thoughts on CI.”
  • One idea per post. If there are three ideas, that is three posts or a thread.
  • Specifics over adjectives: numbers, names (with permission), screenshots, code.
  • White space: short paragraphs on LinkedIn; one sentence per line where it aids reading.
  • CTA matches the goal: a question for discussion, a link for traffic, nothing for reach-building posts. One CTA.
  • Hashtags: 0-3 relevant ones on LinkedIn and X; up to 5 on Instagram. No generic tags.
  • Mentions: tag people only when they are part of the story and would welcome it.
  • No engagement bait, no fake urgency, no claims you could not back up in the replies.

Accessibility

  • Alt text on every image: what it shows and why it matters, under ~250 characters. For charts, state the takeaway (“Build time fell from 22 to 6 minutes after…”).
  • Burned-in captions on all video; most viewers watch muted.
  • Use CamelCase in multi-word hashtags (#OpenSource) so screen readers pronounce them.
  • Avoid stylised Unicode “bold” fonts; screen readers read them letter by letter.

Calendar and scheduling

Keep the calendar as a CSV or sheet the user can import. Columns:

date,time_local,platform,pillar,format,hook,body,asset,alt_text,link,utm_campaign,status
2026-11-03,09:00,linkedin,engineering-lessons,text,"We cut CI from 22 to 6 minutes.","...",,,"https://acme.dev/blog/ci?utm_source=linkedin&utm_medium=social&utm_campaign=ci-post",ci-post,draft
  • Cadence the team can sustain beats a burst: e.g. LinkedIn 3x/week, X daily, video 1-2x/week.
  • Post in the audience’s working hours; test two time slots before trusting “best time” lists.
  • Tag links with UTMs (utm_medium=social) per utm-attribution, so traffic shows up correctly.

Scheduling and publishing go out under the user’s name or brand and cannot be fully recalled. Prepare drafts and the import file; publish or schedule only after the user approves the final text for each post.

Reviewing performance

From platform exports, compare by pillar and format, not by individual post:

MetricUse for
Engagement rate (engagements / impressions)Content quality signal across accounts of different size
Saves, shares, repostsStrongest signal of value
Profile visits, follows per postAudience growth
Clicks and downstream signups (UTM in GA4/PostHog)Business impact

Double down on the top pillar/format pairs, cut the bottom ones, and keep 20% of posts experimental.

Gotchas

  • Copying a LinkedIn post to X and truncating it mid-sentence.
  • Threads whose first post promises more than the thread delivers.
  • Posting customer names, logos or screenshots of customer data without permission.
  • Scheduling posts during an incident or sensitive news; pause the queue.
  • Measuring only likes; they correlate weakly with signups.

Verification

  • Every post fits its platform’s limit and reads correctly in the platform’s preview.
  • Each image has alt text, each video has captions.
  • Links resolve and carry UTMs; test one from the scheduled post.
  • The calendar covers the period without gaps longer than the planned cadence.

Output template

## Social plan: <account>, <period>
**Goal per platform:** ...
**Pillars:** table with share of posts
**Calendar:** CSV attached (N posts)
### Sample posts
**LinkedIn - <pillar>**
<post text>
Alt text: ...
**X thread - <pillar>**
1/ ...
**Awaiting approval before scheduling:** all posts

What the zip contains

SKILL.md plus the interface file below. Nothing runs on install.

agents/openai.yamlgenerated from this page

Gives the Codex app a display name, a one-line description and a starter prompt for this skill.

interface:
  display_name: "Social Media Content"
  short_description: "One idea, written natively for each network"
  default_prompt: "$social-media-content Turn this blog post about our CI speedup into a LinkedIn post and an X thread"

About this skill

Written and maintained by the Codex Skills editors to the same editorial standard as every skill here: a selective description, a real workflow, known pitfalls and a way to verify the work. First published , last updated . MIT licensed. Something wrong or out of date? Tell us.

esc