Tutorial

How to Turn an Article Into Social Posts with n8n and Scavio

Automate article-to-social workflows in n8n using Scavio for competitor research, quote mining, and platform-specific post generation.

r/n8n 2026 threads are full of engineers shipping article-to-social-post workflows, often spending 20+ hours wiring them together. This tutorial cuts that to 90 minutes by using Scavio as the single research backend: competitor angles, Reddit discussion quotes, and YouTube content mining all feed into one n8n workflow that outputs platform-tuned posts.

Prerequisites

  • n8n self-hosted or cloud
  • A Scavio API key
  • An LLM credential (OpenAI, Anthropic, or Together)

Walkthrough

Step 1: Create a new n8n workflow

Start with a webhook or manual trigger that accepts an article URL.

JSON
// n8n Webhook node output
{ "article_url": "https://your-blog.com/post" }

Step 2: Add an HTTP Request node for Scavio SERP

Research competitor takes on the same topic.

Bash
// HTTP Request node
POST https://api.scavio.dev/api/v1/search
Headers: x-api-key: {{ $credentials.scavio }}
Body: { "query": "{{ $json.article_title }} competing perspective" }

Step 3: Add a Scavio Reddit node

Pull direct quotes from Reddit discussions on the same topic.

Bash
POST https://api.scavio.dev/api/v1/search
Body: { "platform": "reddit", "query": "{{ $json.topic }}" }

Step 4: Add an LLM node to generate platform posts

Prompt the LLM to write LinkedIn, X, and Reddit variants using the research.

Text
// LLM prompt template
You are a social media editor.
Source article: {{ $json.article_text }}
Competitor takes: {{ $json.serp_results }}
Reddit quotes: {{ $json.reddit_results }}

Produce:
1. LinkedIn post (180 words, professional tone)
2. X thread (5 tweets)
3. Reddit comment draft (no self-promo)

Step 5: Fan out to distribution nodes

Send each platform output to LinkedIn, X, Buffer, or a review Slack channel.

JSON
// Slack node output for review
{ "channel": "#social-drafts", "text": "{{ $json.linkedin_post }}\n\n{{ $json.x_thread }}" }

Python Example

Python
# Equivalent Python runner without n8n:
import os
from scavio import Scavio
from openai import OpenAI

scavio = Scavio(api_key=os.environ['SCAVIO_API_KEY'])
llm = OpenAI()

def article_to_social(article_text: str, topic: str):
    serp = scavio.search(query=f'{topic} competing perspective')
    reddit = scavio.search(platform='reddit', query=topic)
    prompt = f'Source: {article_text}\nSERP: {serp}\nReddit: {reddit}\n\nWrite LinkedIn, X, Reddit variants.'
    return llm.chat.completions.create(model='gpt-4', messages=[{'role': 'user', 'content': prompt}]).choices[0].message.content

JavaScript Example

JavaScript
import { Scavio } from 'scavio';
const scavio = new Scavio({ apiKey: process.env.SCAVIO_API_KEY });

export async function articleToSocial(articleText, topic) {
  const [serp, reddit] = await Promise.all([
    scavio.search({ query: `${topic} competing perspective` }),
    scavio.search({ platform: 'reddit', query: topic })
  ]);
  return { serp, reddit };
}

Expected Output

JSON
A single article generates 3 platform-tuned posts in under 2 minutes. Typical cost: 2 Scavio calls (~60 credits) + LLM tokens per article.

Related Tutorials

Frequently Asked Questions

Most developers complete this tutorial in 15 to 30 minutes. You will need a Scavio API key (free tier works) and a working Python or JavaScript environment.

n8n self-hosted or cloud. A Scavio API key. An LLM credential (OpenAI, Anthropic, or Together). A Scavio API key gives you 500 free credits per month.

Yes. The free tier includes 500 credits per month, which is more than enough to complete this tutorial and prototype a working solution.

Scavio has a native LangChain package (langchain-scavio), an MCP server, and a plain REST API that works with any HTTP client. This tutorial uses the raw REST API, but you can adapt to your framework of choice.

Start Building

Automate article-to-social workflows in n8n using Scavio for competitor research, quote mining, and platform-specific post generation.