DEV Community

Joey
Joey

Posted on

The n8n workflow that turns one blog post into 4 pieces of content

The n8n Workflow That Turns One Blog Post Into 4 Pieces of Content

I publish one article a week. But I was leaving 80% of its value on the table.

The article could become:

  • A LinkedIn thread
  • A Twitter thread
  • An email sequence
  • A Reddit post

But I wasn't doing any of that. I'd write once, publish once, move on.

So I built an n8n workflow that does it automatically.

Today I'm sharing the exact setup — free template at the end.


The Problem: Write Once, Reuse Once

A 2000-word blog post takes 4-5 hours to research and write. The distribution took an hour.

Then it would get maybe 50 views in the first week because I wasn't repurposing it.

Meanwhile, Indie Hackers were driving 10x the traffic with the same content, just reformatted.

I realized: My content format was wrong, not my ideas.

A Twitter thread from the same article could get 5K views. A Reddit post could get 1K. An email could convert 2% of subscribers.

But writing 4 separate pieces from 1 article? That's 16-20 hours of work per week.

That's where automation came in.


The Solution: n8n + Claude

Here's the workflow:

  1. I publish a blog post → triggers webhook
  2. n8n receives the URL
  3. Fetch the full article (using fetch node)
  4. Pass to Claude with custom prompts for each format:
    • Twitter thread (280 chars per tweet, 3-5 tweets, hook on first one)
    • LinkedIn article (200-300 words, 3-5 sections, professional tone)
    • Email subject line + body (hook → story → CTA, 150-200 words)
    • Reddit title + post (frontpage potential, acknowledge niche community, add sources)
  5. Store outputs in Airtable or Notion
  6. Alert me to schedule posts

Result: 20 minutes of distribution work becomes 2 minutes of scheduling.


The n8n Setup (Step by Step)

Step 1: Trigger from Webhook

When you publish, POST to your n8n webhook with:

{
  "url": "https://yoursite.com/post-title",
  "title": "The Article Title"
}
Enter fullscreen mode Exit fullscreen mode

In n8n:

  • Use "Webhook" trigger node
  • Set method: POST
  • Save the webhook URL

Step 2: Fetch Article Content

Use the HTTP Request node:

  • Method: GET
  • URL: {{ $json.url }}
  • Authentication: None (if public)

Add a function node after to extract just the article body (remove nav, footer, etc):

const html = $json.body;
// Simple extraction: get <article> tag or <main> tag content
const articleMatch = html.match(/<article[^>]*>(.*)<\/article>/is) 
  || html.match(/<main[^>]*>(.*)<\/main>/is);
return {
  content: articleMatch ? articleMatch[1] : html,
  url: $json.url,
  title: $json.title
};
Enter fullscreen mode Exit fullscreen mode

Step 3: Generate Twitter Thread

Add an OpenAI (or Claude via API) node:

Prompt:

You are a Twitter expert. Convert this article into a Twitter thread.

Rules:
1. Maximum 5 tweets
2. Each tweet under 280 characters
3. First tweet is the hook — make it stop the scroll
4. Use numbers, questions, or patterns that work on Twitter
5. Last tweet is a CTA with link
6. DO NOT use hashtags (they reduce reach)
7. Output as a JSON array of tweet objects: [{"tweet": "..."}, ...]

Article:
{{ $json.content }}

Title: {{ $json.title }}

Keep it snappy. Be specific. Add one emoji per tweet max.
Enter fullscreen mode Exit fullscreen mode

Save output to variable thread.

Step 4: Generate LinkedIn Article

Add another Claude node:

Prompt:

Convert this article into a LinkedIn article (professional, B2B angle).

Rules:
1. 200-300 words
2. 3-5 sections with bold headers
3. Start with a hook about business value
4. End with a specific, actionable takeaway
5. Tone: Professional but personable, not corporate
6. Include a relevant emoji in the first section

Article:
{{ $json.content }}

Original title: {{ $json.title }}

The hook should speak to LinkedIn's audience (professionals, founders, builders).
Enter fullscreen mode Exit fullscreen mode

Step 5: Generate Email

Prompt:

Create an email subject line and body from this article.

Format your response as:
SUBJECT: [subject line, max 60 chars]
---
[email body]

Rules:
1. Subject must create curiosity (question, number, or pattern)
2. Body: 150-200 words max
3. Structure: Hook → 3 key points → CTA
4. CTA: "Read the full article here: [LINK]"
5. Tone: Conversational, like talking to a friend

Article:
{{ $json.content }}

Make the subject line something you'd click on.
Enter fullscreen mode Exit fullscreen mode

Step 6: Generate Reddit Post

Prompt:

Create a Reddit post from this article. Choose the best subreddit for it.

Format:
SUBREDDIT: [r/subreddit_name]
TITLE: [post title, max 300 chars]
---
[post body]

Rules:
1. Title must follow Reddit's style (specific, not clickbait)
2. Body: 300-500 words
3. Include sources/links naturally
4. Acknowledge the community tone
5. End with a question to start discussion

Article:
{{ $json.content }}

Link: {{ $json.url }}

Pick the ONE subreddit where this would get the most upvotes.
Enter fullscreen mode Exit fullscreen mode

Step 7: Store Results in Airtable

Use the Airtable node:

  • Table: "Content Repurposing"
  • Fields:
    • Original URL
    • Original Title
    • Twitter thread (array → store as JSON)
    • LinkedIn article
    • Email subject + body
    • Reddit post
    • Status: "Ready to Schedule"
    • Created: today's date

Step 8: Send Slack Notification

Use Slack node:

✅ Content repurposed!

📄 Original: {{ $json.title }}
🐦 Twitter: 5 tweets ready
💼 LinkedIn: Article ready
📧 Email: Subject + body ready
🔴 Reddit: Post ready

View in Airtable: [link]
Enter fullscreen mode Exit fullscreen mode

Results

Before automation:

  • 1 article per week
  • 0 Twitter threads
  • 0 LinkedIn posts
  • 0 email sends
  • 0 Reddit posts
  • ~100 views per article

After automation:

  • 1 article per week
  • 5 tweets per article (300+ impressions avg)
  • 1 LinkedIn article per week (50+ comments avg)
  • 1 weekly email (2-5% CTR)
  • 1 Reddit post per week (200-1K upvotes depending on timing)
  • ~2K+ total views per article across platforms

Time saved: 15+ hours per week
Reach multiplied: 10-20x depending on content


The Template (Free)

I've made this n8n workflow public for you:

Download/Import n8n Workflow →

To use it:

  1. Get your n8n account (free tier works, but check API call limits)
  2. Add Claude API key (or OpenAI if you prefer)
  3. Connect Airtable (free tier works)
  4. Update the blog URL field in the webhook example
  5. Create a Slack webhook (optional, but nice to have)
  6. Test it:
curl -X POST https://your-n8n-webhook.url \
  -H "Content-Type: application/json" \
  -d '{"url": "https://yoursite.com/article", "title": "Test"}'
Enter fullscreen mode Exit fullscreen mode

Costs

  • n8n: Free tier (limited), or $25/mo for unlimited
  • Claude API: ~$0.05 per article (4 repurposing calls)
  • Airtable: Free tier (limited records) or $20/mo
  • Total: ~$25-50/mo for a full setup

ROI: 10-20x more reach from the same content.


Why This Works

  1. Each format has different algorithms. Twitter rewards engagement, LinkedIn rewards connections, Reddit rewards community participation. Same article, different audience.

  2. Your audience is fragmented. Some people only read dev.to. Some only check Twitter. Some prefer Reddit. You need to meet them where they are.

  3. Automation removes friction. The workflow takes 45 seconds. Doing it manually takes 3+ hours. You'll actually do it every week.

  4. Claude is good at format conversion. It understands tone, audience, and constraints. The output is ready to post (minor edits maybe).


Next Steps

  1. Try the template on your next blog post
  2. Track what platforms drive the most value for your niche
  3. Adjust the prompts based on what your audience responds to
  4. Add more outputs: YouTube description, newsletter segment, Substack crosspost

Questions? Drop them below.


P.S. This workflow is why I can publish consistently without burning out. Content creation isn't hard — distribution is. Automate distribution, and suddenly one good idea becomes 5 pieces of value.

Top comments (0)