Social Post Writer
Generate ready-to-publish social media posts from a topic, idea, or brief. Uses 9 proven content templates to produce posts that educate, entertain, challenge, and build trust — without sounding like marketing.
Unlike the content-repurposer (which breaks down existing long-form content), this skill generates original posts from a topic. Give it a subject and it writes the posts.
Built from the template framework in Justin Welsh's Content Operating System.
Usage
Use when you have a topic and need social posts (no long-form source content required), filling gaps in a content calendar, testing messaging on a new topic, or generating variations to A/B test different angles.
Process
Step 1: Gather Inputs
Ask the user for:
-
Topic or idea — what the post(s) should be about. Can be a single sentence, a specific angle, a question, or a brief with talking points.
-
Template(s) to use (optional) — Story, Observation, Contrarian, Listicle, Past vs. Present, Hand-Raiser, Launch, Meme, Carousel, or "all" (default: first 5)
-
Platform — LinkedIn, Twitter/X, or both (default: both)
-
Voice/tone — who is the author, what's their tone (casual, professional, witty, provocative, etc.)
-
Personal experience or proof points (optional) — anecdotes, numbers, or examples to weave in
-
Number of posts (optional) — default: 5 (one per template)
-
Constraints (optional) — things to avoid, compliance requirements
Step 2: Develop the Topic
Before writing, explore the topic to find angles:
-
What's the core insight? — The one thing the audience should take away
-
What problems does this solve? — Pain points the audience faces
-
What's counterintuitive about this? — Any conventional wisdom that's wrong
-
What's the proof? — Personal experience, data, examples, or observations
-
What tools/resources relate? — Anything concrete to recommend
-
What's changed over time? — How this topic has evolved
Present a brief angle summary to the user before generating posts. This ensures alignment and surfaces any personal stories or data points the user wants included.
Step 3: Generate Posts
Write one post per selected template. Each template has a distinct structure and emotional effect.
Template 1: Story
A personal narrative that leads to the topic's key insight. Highest engagement, hardest to write.
Emotional trigger: Entertains / Empathizes
Structure:
-
Pain/Attention — Open with a specific, relatable moment. Not "I used to struggle with X" but the exact scene.
-
Agitate — Make it worse. What happened when the problem continued?
-
Intrigue — The turning point. What changed?
-
Positive Future — The result. Specific outcomes — numbers, feelings, changes.
-
Solution — The actionable takeaway.
Rules:
-
First person. Real or realistic scenarios.
-
Opening line must stop the scroll.
-
Short paragraphs. One idea per line.
-
The insight must feel earned through the narrative.
Template 2: Observation
A pattern or insight you've noticed, backed by specifics.
Emotional trigger: Teaches / Makes me think
Structure:
-
Observation — One clear, specific thing you've noticed.
-
Evidence — 3-5 specific, concrete points.
-
Closer — A punchy, quotable takeaway.
Template 3: Contrarian Take
Challenge something the audience assumes is true.
Emotional trigger: Makes me think / Empathizes
Structure:
-
The take — State the contrarian position in one sentence.
-
Why the conventional view is wrong — 2-3 reasons.
-
The reframe — A new way to think about it.
Rules:
-
Must be genuinely surprising. "Work smarter not harder" is not contrarian.
-
Support with logic, experience, or evidence — not just attitude.
Template 4: Listicle
A curated list of tips, tools, resources, or lessons.
Emotional trigger: Teaches
Structure:
-
Frame — "X [things] every [audience] should [know/use/avoid]:"
-
List — Each item: name/label + one-line description. Consistent format.
-
Closer — Optional recommendation or CTA.
Rules:
-
Each item scannable in under 5 seconds.
-
Odd numbers (5, 7, 9) tend to outperform even.
-
Put the most surprising item at #1 or last position.
Template 5: Past vs. Present
Show transformation over time.
Emotional trigger: Entertains / Teaches
Structure:
-
Then — The old way. 3-5 bullet points.
-
Now — The new way. 3-5 bullet points (matching structure).
-
Lesson — One word or short phrase.
Rules:
-
Parallel structure is critical.
-
Be specific. "$2K/month" beats "less money."
-
The lesson line should land like a punchline.
Template 6: Hand-Raiser
Generate comments from interested readers, then DM them a free resource.
Emotional trigger: Teaches / Empathizes
Structure:
-
Personal struggle — Open with a relatable problem (2-3 short lines)
-
Transformation — What changed, with specific numbers and timeframe
-
The offer — A free resource that breaks down your process
-
Relief statement — 3 things they WON'T have to do (lowers friction)
-
Fascinations — 5-7 curiosity-gap bullets about what's inside
-
CTA — Drop "[WORD]" below and I'll DM it to you
Rules:
-
Fascinations are NOT feature bullets. They are curiosity gaps.
-
The relief statement matters — telling people what they won't need to do reduces perceived cost.
-
One-page PDF is the ideal resource format.
Template 7: Launch / Doors Open
Promote a paid offer. Story-first, pitch-second.
Emotional trigger: Empathizes / Teaches
Structure:
-
Hook (Line 1) — One short, scroll-stopping line. Never promotional.
-
Curiosity inducer (Line 2) — Creates an open loop.
-
Story (60-70% of the post) — Build tension, share a relatable struggle.
-
Fascinations (3-5 bullets) — Curiosity-gap bullets, 10 words or fewer each.
-
CTA — One clear action with the link.
Rules:
-
175-225 words total. Scannable in under 60 seconds.
-
Story before pitch. The first 60-70% earns attention.
-
Emoji: 0-2 max, in hook or CTA only.
Template 8: Meme
Turn a topic into a meme-format post.
Emotional trigger: Entertains
Structure:
-
Choose a meme format — Match the topic's core tension to a template
-
Write a 1-2 sentence caption — The meme image does the heavy lifting.
Rules:
-
Standalone. Understandable without any other context.
-
Use the audience's in-group language.
-
Don't force it. If no natural meme angle exists, skip.
Template 9: Instagram Carousel
Multi-slide visual post optimized for swipe mechanic.
Emotional trigger: Teaches
Structure:
-
Cover slide — Bold headline + subtitle (the hook)
-
Content slides (5-8) — One point per slide, consistent design
-
Summary slide — Recap key points
-
CTA slide — Follow, save, share, or visit link
Rules:
-
Square format (1080x1080).
-
First slide is everything — if it doesn't hook, nobody swipes.
-
Educational carousels get the highest save rates on Instagram.
Step 4: Platform Adaptation
Adapt each post for the target platform(s):
LinkedIn:
-
First line shows above the fold — must earn the "see more" click
-
Generous line breaks. One thought per line.
-
Emojis: only if they match brand voice, sparingly
-
Sweet spot: 800-1,300 characters
-
End with a question to drive comments
Twitter/X:
-
Single tweets: 280 characters max. Ruthlessly compress.
-
Threads: first tweet stands alone. Each subsequent tweet adds one idea.
-
No hashtags in the body.
-
Observation and Listicle compress well into single tweets.
-
Story and Contrarian Take are better as threads (3-7 tweets).
If generating for both platforms, produce separate versions — don't just trim one for the other.
Step 5: Review and Polish
For each post, check:
-
Hook strength — Would you stop scrolling for the first line?
-
Specificity — Replace any generic advice with concrete details.
-
Voice match — Does it sound like the author, not like a template?
-
Standalone test — Does the post make sense without any other context?
Output Format
Social Posts: [Topic]
Date: [current date] Topic: [topic or idea] Platform(s): [LinkedIn / Twitter / Both] Templates Used: [list] Posts Generated: [count]
Angle Summary
Core insight: [one sentence] Audience pain: [what problem this addresses] Contrarian angle: [if applicable] Proof available: [personal story, data, examples]
Post 1: Story
Trigger: [Entertains / Empathizes]
[Full post text]
Twitter/X
[Full post or thread]
Post 2: Observation
Trigger: [Teaches / Makes me think]
[Full post text]
Twitter/X
[Full post text]
[Continue for all posts...]
Trigger Balance
| Trigger | Count |
|---|---|
| Entertains | X |
| Teaches | X |
| Empathizes | X |
| Makes me think | X |
Rules
-
The first line of every post is the post. If the hook doesn't work, nothing else matters.
-
Specificity beats cleverness. "Save 12 hours/week on reporting" beats "Work smarter, not harder."
-
Write in the audience's language. If they say "clients" not "customers," your post says "clients."
-
Story posts require real (or realistic) personal experience. If the user doesn't provide anecdotes, ask for them.
-
Not every template works for every topic. If there's no contrarian angle, skip Contrarian Take and generate a second Observation or Listicle instead.
-
These templates are frameworks, not fill-in-the-blanks. The output should read like a human wrote it.
-
Templates from Justin Welsh's Content Operating System.