A week of content ideas from your industry's news
Every Sunday, AI reads the week's industry news and posts 7 content ideas to your Slack channel.
How it works
- Read your industry's news feed.
- Keep the last 7 days of headlines.
- AI suggests 7 posts with a hook and a format for each.
- Post the ideas to your content channel.
Diagram
Code
JavaScript used in the Code step — already included in the template below.
// Keeps the last 7 days of articles (max 25) as one block of text for the AI.
const WEEK = 7 * 24 * 60 * 60 * 1000;
const articles = $input.all()
.map((item) => item.json)
.filter((a) => Date.now() - new Date(a.isoDate || a.pubDate).getTime() < WEEK)
.slice(0, 25)
.map((a, i) => `${i + 1}. ${a.title}\n${(a.contentSnippet || "").slice(0, 200)}\n${a.link}`);
if (!articles.length) return [];
return [{ json: { articles: articles.join("\n\n") } }];Build it
Pick your tool — same automation, step by step.
Copy and paste straight into an n8n canvas (Ctrl+V), or download and use Import from File. Then connect your own credentials and replace every YOUR_… placeholder. AI steps use a Claude model node — swap it for OpenAI, Gemini or Ollama if you prefer.
Show code (184 lines)
{
"name": "A week of content ideas from your industry's news (Flowngn)",
"nodes": [
{
"parameters": {
"content": "## A week of content ideas from your industry's news\nEvery Sunday, AI reads the week's industry news and posts 7 content ideas to your Slack channel.\n\n**Setup**\n1. Open each node and connect your own credentials.\n2. Replace every YOUR_… placeholder.\n3. Test once, then activate.\n\nFree template from Flowngn",
"height": 260,
"width": 340
},
"id": "292cf932-28a7-43e7-a88a-78a03103d350",
"name": "Setup notes",
"type": "n8n-nodes-base.stickyNote",
"typeVersion": 1,
"position": [
-420,
-60
]
},
{
"parameters": {
"rule": {
"interval": [
{
"field": "cronExpression",
"expression": "0 9 * * 0"
}
]
}
},
"id": "292cf932-28a7-43e7-a88a-78a03103d350",
"name": "Sundays 9:00",
"type": "n8n-nodes-base.scheduleTrigger",
"typeVersion": 1.2,
"position": [
0,
0
]
},
{
"parameters": {
"url": "https://news.google.com/rss/search?q=YOUR_INDUSTRY&hl=en",
"options": {}
},
"id": "292cf932-28a7-43e7-a88a-78a03103d350",
"name": "Read industry news",
"type": "n8n-nodes-base.rssFeedRead",
"typeVersion": 1.1,
"position": [
300,
0
]
},
{
"parameters": {
"jsCode": "// Keeps the last 7 days of articles (max 25) as one block of text for the AI.\nconst WEEK = 7 * 24 * 60 * 60 * 1000;\n\nconst articles = $input.all()\n .map((item) => item.json)\n .filter((a) => Date.now() - new Date(a.isoDate || a.pubDate).getTime() < WEEK)\n .slice(0, 25)\n .map((a, i) => `${i + 1}. ${a.title}\\n${(a.contentSnippet || \"\").slice(0, 200)}\\n${a.link}`);\n\nif (!articles.length) return [];\nreturn [{ json: { articles: articles.join(\"\\n\\n\") } }];"
},
"id": "292cf932-28a7-43e7-a88a-78a03103d350",
"name": "This week's headlines",
"type": "n8n-nodes-base.code",
"typeVersion": 2,
"position": [
600,
0
]
},
{
"parameters": {
"promptType": "define",
"text": "=You plan content for YOUR_BRAND. Audience: YOUR_AUDIENCE. Platforms: YOUR_PLATFORMS.\n\nFrom this week's industry news, suggest 7 post ideas, one per day. For each: the hook (first line), the format (carousel, reel, short post, poll), and which headline inspired it with its link. Mix educational, opinion and practical posts. Skip tragedies and politics.\n\n{{ $json.articles }}"
},
"id": "292cf932-28a7-43e7-a88a-78a03103d350",
"name": "Suggest post ideas",
"type": "@n8n/n8n-nodes-langchain.chainLlm",
"typeVersion": 1.5,
"position": [
900,
0
]
},
{
"parameters": {
"model": {
"__rl": true,
"value": "claude-sonnet-5",
"mode": "list"
},
"options": {}
},
"id": "292cf932-28a7-43e7-a88a-78a03103d350",
"name": "Claude model",
"type": "@n8n/n8n-nodes-langchain.lmChatAnthropic",
"typeVersion": 1.3,
"position": [
900,
220
]
},
{
"parameters": {
"select": "channel",
"channelId": {
"__rl": true,
"value": "#content",
"mode": "name"
},
"text": "=💡 Content ideas for this week\n\n{{ $json.text }}",
"otherOptions": {}
},
"id": "292cf932-28a7-43e7-a88a-78a03103d350",
"name": "Post to content channel",
"type": "n8n-nodes-base.slack",
"typeVersion": 2.2,
"position": [
1200,
0
]
}
],
"connections": {
"Sundays 9:00": {
"main": [
[
{
"node": "Read industry news",
"type": "main",
"index": 0
}
]
]
},
"Read industry news": {
"main": [
[
{
"node": "This week's headlines",
"type": "main",
"index": 0
}
]
]
},
"This week's headlines": {
"main": [
[
{
"node": "Suggest post ideas",
"type": "main",
"index": 0
}
]
]
},
"Suggest post ideas": {
"main": [
[
{
"node": "Post to content channel",
"type": "main",
"index": 0
}
]
]
},
"Claude model": {
"ai_languageModel": [
[
{
"node": "Suggest post ideas",
"type": "ai_languageModel",
"index": 0
}
]
]
}
},
"pinData": {},
"settings": {
"executionOrder": "v1"
},
"meta": {
"templateCredsSetupCompleted": false
},
"tags": []
}In Make, create a new scenario and add these modules in order:
- Schedule the scenario: Sundays 9:00
- RSS › Retrieve RSS Feed Items
- Tools › Set variable / Iterator + Array aggregator (same logic as the Code step)
- Anthropic Claude › Create a Prompt (or OpenAI › Create a Completion)
- Slack › Create a Message
- Every module run uses Make operations — the free plan includes a monthly quota.
- Make's built-in functions (map, sum, formatDate…) can replace most Code steps; for complex logic use a code module.
- Module and step names can differ slightly as Make and Zapier update their apps.
In Zapier, create a new Zap and add these steps in order:
- Schedule by Zapier — Sundays 9:00
- RSS by Zapier + Digest by Zapier
- Code by Zapier — Run JavaScript (paste the code from the Code section)
- Anthropic (Claude) — Send Message (or ChatGPT — Conversation)
- Slack — Send Channel Message
- Zaps with more than two steps need a paid Zapier plan.
- Webhooks, Filters/Paths and Code by Zapier are premium features on some Zapier plans.
- Code by Zapier runs JavaScript: reuse the code shown above, reading inputs from inputData instead of $json.
- Module and step names can differ slightly as Make and Zapier update their apps.
Tips
- Use Google News RSS with your industry keyword, or any blog's RSS feed.
Related flows
Blog post → social media drafts
When you publish a blog post, AI drafts LinkedIn and X posts for you to approve.
New blog post to a newsletter draft with AI
When you publish a blog post, AI writes a short newsletter about it and saves it to your Gmail drafts.
Auto-post a blog or news feed to Telegram
New posts from any RSS feed are published to your Telegram channel.