To turn blog posts into social media posts automatically, you need four moving parts: something to read the post and write platform-specific copy, a database to hold the drafts, a scheduler to space them out, and a publisher to send them. I run all four as five small n8n workflows wired through Airtable. A new post shows up, I tick one checkbox, and the posts go out over the following days.

This post contains affiliate links. If you sign up through one, I earn a commission at no extra cost to you. I only point to tools I actually use or would recommend.
The week my feed read like one blog
I run three blogs. Making social content for every single post is the part of blogging I dread, and for a long time the truthful answer is I just wasn’t doing it. The post went live, I felt done, and nothing else happened. So I built this for the overwhelm first and the consistency second.
Then I watched it work and it looked awful.
My scheduler was round-robining between brands, which sounds fine until the smallest bucket runs dry. It alternated for about a week, ran out of jen8n posts, and then dumped twenty-one Seeding Serendipity posts back to back. Anyone scrolling my account saw one blog for a solid week. The automation did exactly what I told it to. The output looked like a machine.
The hard part of automating social isn’t publishing. It’s making the result not read as automated. (I should have a separate channel for each blog, but that’s a different story)
What does this blog to social automation do?
Five workflows hand off to each other through Airtable. Nothing talks directly to anything else, so any one piece can break without taking the rest down.
| # | Workflow | Runs | What it does |
|---|---|---|---|
| 1 | Auto-Generate Social Assets | Every hour | Looks for published posts with no social content yet, then calls workflow 2 for each one |
| 2 | Social Media | On webhook | Fetches the post, strips the HTML, sends it to Claude for copy, generates the images, saves a draft row |
| 3 | Social Sync | Every 30 minutes | Takes approved drafts, matches them to my active accounts, writes one row per account |
| 4 | Social Hub Auto-Scheduler | Every 30 minutes | Assigns each row a real posting time using my slot calendar and spacing rules |
| 5 | Social Publisher | Every 30 minutes | Sends anything whose time has arrived, then checks back to confirm it posted |
The only human step sits between 2 and 3. Every draft lands in Airtable with a Distribute checkbox, and nothing moves downstream until I tick it. Five workflows deep, and my entire approval system is one checkbox.

Who is this blog to social automation for?
This is for you if you publish on a regular schedule and the social part is what keeps falling off. It assumes you already have posts worth reposting, and that your bottleneck is turning them into copy rather than coming up with ideas. If you write two or three posts a month and dread the captions every time, this is the shape of problem it solves.
It isn’t for you if you want original social content, because this only reworks what you already published. Skip it if you don’t have a blog feeding it, if you want something that replies to comments and DMs, or if you’d rather hand social to a person than maintain five workflows and an Airtable base.
What do you need to automate blog posts into social posts?
- n8n – runs all five workflows. Free if you self-host it, paid if you use their cloud.
- Hostinger – the VPS my n8n instance lives on. Paid. If you’re deciding between hosting it yourself and paying for cloud, I ran the numbers in Should You Self-Host n8n?.
- Airtable – the database everything passes through. The free tier is enough to start.
- Anthropic API key – Claude writes all the copy. Pay per use.
- OpenAI API key – image generation. Pay per use, and see the cost note below.
- Blotato – handles the actual posting to each platform, so I never touch a platform API myself. Paid.
- Your blog – mine are WordPress, and workflow 2 pulls each post over plain HTTP, so any public blog works.
- Accounts on whatever platforms you want – I run Pinterest, Instagram, Facebook, X and LinkedIn.
Start with Airtable. Build the tables first, because the workflows are all just readers and writers of those tables, and the shape of the data decides the shape of everything else.
How does the blog to social automation work?
If the n8n terms below are new to you, I wrote a plain-language n8n vocabulary guide for people who aren’t developers. None of this needs you to write much code.
1. Find posts with nothing written for them yet. A schedule trigger reads my Posts table and my Social Media table, and a small code node returns anything appearing in the first and missing from the second. No fancy detection, just a set difference.
2. Write the copy and make the images. This is the interesting one. A webhook takes a URL, fetches the post, strips the HTML down to text, and hands it to Claude with a system prompt built on the fly. The prompt changes based on which blog the post came from and which platform I’m writing for, so a Pinterest description and an X post come out genuinely different instead of the same paragraph trimmed to fit.
Images go to OpenAI. Pinterest gets three separate scenes, a photo-style one, an infographic one, and a typographic poster. Every other platform gets one. Not a design decision, a money one: three prompts costs about $0.65 a run and one costs about $0.27, and Pinterest is the only place where the extra variety earns its keep.
As of right now, I have found Chat GPT Image 2 is the best for this use case, but quite expensive.
3. Fan one draft out to many accounts. Once I tick Distribute, workflow 3 picks it up, checks which accounts are marked Active, and writes one Distribution row per account with the right copy, images and link attached. Anything paused or not wired up gets skipped without complaint.
4. Give every row a real time. The scheduler holds a calendar of posting slots per account and a set of spacing rules per platform, then solves for who goes where. Rules it enforces:
- A minimum gap between any two posts on one account
- A longer gap between two posts from the same blog
- A minimum number of days before the same URL can appear again on one account
- Even spreading across brands, so a scarce brand lands every Nth post instead of clumping
- A 0 to 14 minute offset on every slot, derived from the row’s ID
The offset is my favorite and it took me embarrassingly long to notice. My slots are whole hours, so every post went out at exactly :00. Nothing says robot louder. The offset is hashed from the record ID rather than random, so a re-run picks the same minute and nothing drifts.
5. Send it and confirm it. The publisher does two passes each time it runs. First it checks anything already submitted and marks it Posted or Failed. Then it grabs anything queued whose scheduled time has passed, validates it, and submits it. Two passes in one workflow, so a failure gets recorded before new work goes out.

Get the skill
The copy rules are the part you can use today without building anything, and they do more work than the automation around them. I go deeper on writing rules like these in how to customize an LLM’s voice. Mine are assembled per platform, and yours should be built around your blog, your platforms and your own banned words instead of mine. Fill in the generator below and it writes you both versions, a skill file if you use Claude Code and a paste-into-any-chat prompt if you don’t.
The skill file goes in a folder named social-copy inside ~/.claude/skills/, and Claude Code picks it up the next time it starts. The prompt version needs nowhere to live. Paste it into whatever chat tool you already pay for and put one of your posts underneath it.
Two ways to use this. Paste the whole thing into Claude Code and say “set this up for me, and change the platform rules and the voice section to match how I write.” It writes the file, puts it somewhere sensible, and adapts it to you while it’s there. Or save it yourself as a plain text file and paste it into whatever AI tool you already use, swapping the PLATFORM block each time you want a different network.
The two things you have to change are the voice list and the platform spec. Everything else carries over.
What it doesn’t do
I want to be clear about the edges, because from the outside a system like this looks like it does more than it does.
- It only reworks posts I already published. It never writes original social content. My quote-to-pin tool is a completely separate build.
- It only posts to accounts I marked Active. It’s every platform I turned on, and nothing else.
- It never engages. No replies, no comments, no DMs, no reading what happened after. It publishes and stops.
- I still approve everything. One checkbox, but a real one.
What still bugs me
Two triggers in my instance are named “Every 5 Minutes” and both are set to 30. I cut the polling on purpose because five minutes was overkill and I was hammering the Airtable API for no reason, then never renamed the nodes. My execution logs have been lying to me ever since, and it’s on the list.
The bigger one: my per-account exceptions are hardcoded inside the scheduler’s code node, keyed by Airtable record ID. One of my Facebook pages needs a tighter gap so both daily slots fill, and one X account allows three deal posts a day. Both of those belong as fields on the Accounts table where I can edit them without opening a code node. I know it. I haven’t fixed it.
And the scheduler is on version seven. Every version got written after the feed already looked wrong in public. I’d love to say I designed the spacing rules up front. I wrote all of them as apologies.
I still want to make more changes, like making sure holiday content goes out at the right time, and adding extra slots for things I just type up quickly. I’m sure version 8 is just around the corner!
Frequently asked questions
How do you turn a blog post into social media posts automatically?
Fetch the post text, send it to an AI model with a prompt specific to one platform, save the result to a database, then schedule and publish it. The AI step is the easy part. The scheduling rules are where the work is, because unspaced posts read as automated even when the copy is good.
Do I need n8n to do this?
No. n8n is where mine runs, but the same five stages work in Make, Zapier, or a handful of scripts on a cron. n8n suits me because self-hosting keeps the execution count off my bill instead of charging me per task.
How much do the AI copy and images cost?
The copy is pennies per post. Images are the real line item. I pay about $0.27 per run for a single image and about $0.65 when I generate three, so I only generate three for Pinterest. Across three blogs at a normal posting pace, images are the only cost I watch.
Can I use this without an AI writing the copy?
Yes. Skip workflow 2 and write the drafts into the table yourself. Workflows 3, 4 and 5 don’t care where the copy came from, and the scheduling and spacing is the part doing the heavy lifting anyway.
How do you stop scheduled posts from sounding like a bot?
Three things did most of it: spacing rules so one blog can’t dominate a feed, a 0 to 14 minute offset so nothing fires exactly on the hour, and a banned-phrase list inside the prompt. The prompt rules matter more than people expect.
Do you review posts before they go out?
Yes. Every draft waits on a Distribute checkbox in Airtable. Nothing reaches a scheduler or a platform until I tick it, which keeps a bad draft from becoming a published mistake.
Try one piece of it
The fastest version of this is the prompt from the generator and nothing else. Paste it into whatever AI tool you already pay for, feed it one post, and see if the copy sounds like you. If it does, the automation around it is plumbing you can add later.
Turning blog posts into social media posts automatically comes down to four stages: generate, approve, schedule, publish. Start at generate, keep the approval step, and add the rest when the manual version starts to annoy you.
A tool I built
Energy Battery
Log your energy through the day and watch your battery fill, so you can see what actually charges you and what drains you.
Find your spark →I run an affiliate program on the tools I build. Approved affiliates earn 20% on what their referrals pay, for up to a year. US only for now. See the program →
Related reading
- How I Make Multiple Pins From One Blog Post
- Before You Build Another n8n Workflow, Check the ROI
- Automate Content Creation for the Shiny Object Chaser
Subscribe if you haven’t already, and go automate the part of your week you keep avoiding.
