AutomationFlowsAI & RAG › AI News Digest to LinkedIn Posts

AI News Digest to LinkedIn Posts

Original n8n title: Daily AI News Digest to Linkedin Posts with Openai Gpt and RSS Feeds

ByAvkash Kakdiya @itechnotion on n8n.io

This automation fetches daily AI-related articles from trusted RSS feeds, summarizes them using OpenAI (GPT), and generates a ready-to-post LinkedIn update in your writing style. It then emails the post to you every morning for review and publishing. Triggers every morning via…

Cron / scheduled trigger★★★★☆ complexityAI-powered15 nodesRSS Feed ReadOpenAIGmail
AI & RAG Trigger: Cron / scheduled Nodes: 15 Complexity: ★★★★☆ AI nodes: yes Added:

This workflow corresponds to n8n.io template #5068 — we link there as the canonical source.

This workflow follows the Gmail → OpenAI recipe pattern — see all workflows that pair these two integrations.

The workflow JSON

Copy or download the full n8n JSON below. Paste it into a new n8n workflow, add your credentials, activate. Full import guide →

Download .json
{
  "id": "A1BpZBaWcvkOWcwa",
  "meta": {
    "templateCredsSetupCompleted": true
  },
  "name": "Linkedin Daily Post",
  "tags": [
    {
      "id": "RvSTTevqmRPvoZLN",
      "name": "AI Automation",
      "createdAt": "2025-06-12T09:29:23.843Z",
      "updatedAt": "2025-06-12T09:29:23.843Z"
    }
  ],
  "nodes": [
    {
      "id": "f9cd99e7-e2be-4a7b-8531-f5456baa874b",
      "name": "Daily AI News Check1",
      "type": "n8n-nodes-base.scheduleTrigger",
      "position": [
        640,
        540
      ],
      "parameters": {
        "rule": {
          "interval": [
            {
              "field": "hours",
              "hoursInterval": 24
            }
          ]
        }
      },
      "typeVersion": 1.1
    },
    {
      "id": "ec5c4fce-1b9a-493c-83cf-03bfbdc53900",
      "name": "VentureBeat AI RSS1",
      "type": "n8n-nodes-base.rssFeedRead",
      "position": [
        860,
        340
      ],
      "parameters": {
        "url": "https://feeds.feedburner.com/venturebeat/SZYF",
        "options": {}
      },
      "typeVersion": 1
    },
    {
      "id": "685ec481-1944-4641-ba1b-4ce614300ab0",
      "name": "TechCrunch AI RSS1",
      "type": "n8n-nodes-base.rssFeedRead",
      "position": [
        860,
        540
      ],
      "parameters": {
        "url": "https://techcrunch.com/category/artificial-intelligence/feed/",
        "options": {}
      },
      "typeVersion": 1
    },
    {
      "id": "16c0389b-a162-43ca-8ca6-3d8177343743",
      "name": "OpenAI Blog RSS1",
      "type": "n8n-nodes-base.rssFeedRead",
      "position": [
        860,
        740
      ],
      "parameters": {
        "url": "https://openai.com/blog/rss.xml",
        "options": {}
      },
      "typeVersion": 1
    },
    {
      "id": "ccceb4bb-8a58-4b99-8aef-4f2cf3413ed4",
      "name": "Filter Recent AI Articles1",
      "type": "n8n-nodes-base.code",
      "position": [
        1300,
        540
      ],
      "parameters": {
        "jsCode": "// Filter articles from last 48 hours and relevant to AI\nconst now = new Date();\nconst twoDaysAgo = new Date(now.getTime() - (48 * 60 * 60 * 1000));\n\n// Create a Set to track unique articles (by title or link)\nconst uniqueArticles = new Map();\n\nitems.forEach(item => {\n  const articleDate = new Date(item.json.pubDate || item.json.date);\n  const isRecent = articleDate >= twoDaysAgo;\n  \n  const title = (item.json.title || '').toLowerCase();\n  const description = (item.json.description || '').toLowerCase();\n  \n  const aiKeywords = ['ai', 'artificial intelligence', 'machine learning', 'ml', 'neural', 'gpt', 'llm', 'chatbot', 'automation', 'deep learning', 'agentic ai'];\n  const isAIRelated = aiKeywords.some(keyword => \n    title.includes(keyword) || description.includes(keyword)\n  );\n  \n  // Only add if recent, AI-related, and not already added\n  if (isRecent && isAIRelated) {\n    const uniqueKey = item.json.link || item.json.title;\n    if (!uniqueArticles.has(uniqueKey)) {\n      uniqueArticles.set(uniqueKey, {\n        title: item.json.title,\n        description: item.json.description,\n        link: item.json.link,\n        pubDate: item.json.pubDate || item.json.date,\n        source: item.json.source || 'RSS Feed',\n        dateObj: articleDate // Keep for sorting\n      });\n    }\n  }\n});\n\n// Convert Map to array, sort by date (newest first) and limit to top 10\nconst sortedItems = Array.from(uniqueArticles.values())\n  .sort((a, b) => b.dateObj - a.dateObj)\n  .slice(0, 10);\n\n// Return formatted items without dateObj\nreturn sortedItems.map(item => ({\n  json: {\n    title: item.title,\n    description: item.description,\n    link: item.link,\n    pubDate: item.pubDate,\n    source: item.source\n  }\n}));"
      },
      "typeVersion": 2
    },
    {
      "id": "ec596d9a-e00b-4692-8b4e-2516587fdd06",
      "name": "Merge All Sources1",
      "type": "n8n-nodes-base.merge",
      "position": [
        1080,
        540
      ],
      "parameters": {
        "mode": "combine",
        "options": {},
        "combinationMode": "multiplex"
      },
      "typeVersion": 2.1
    },
    {
      "id": "80882e61-b50d-49cc-bfc0-a9f4a5c74d0f",
      "name": "AI News Summarizer1",
      "type": "@n8n/n8n-nodes-langchain.openAi",
      "position": [
        1960,
        640
      ],
      "parameters": {
        "modelId": {
          "__rl": true,
          "mode": "list",
          "value": "gpt-4.1-mini",
          "cachedResultName": "GPT-4.1-MINI"
        },
        "options": {},
        "messages": {
          "values": [
            {
              "content": "=You are an expert AI industry analyst with deep knowledge of artificial intelligence trends, breakthroughs, and market developments. Your task is to analyze multiple AI news articles and create a compelling, insightful summary for LinkedIn professionals.\n\n**Your Analysis Should:**\n- Identify the most significant and impactful AI developments from the provided articles\n- Focus on stories that will matter to business leaders, developers, and AI enthusiasts\n- Highlight breakthrough technologies, major company announcements, funding news, or industry shifts\n- Connect developments to broader AI trends and implications\n- Prioritize recency and relevance over minor updates\n\n**Content Requirements:**\n- Write 3-4 concise, punchy sentences (80-120 words total)\n- Lead with the most newsworthy development\n- Include specific company names, product names, or key figures when relevant\n- Mention concrete details (funding amounts, performance metrics, release dates) if significant\n- End with a forward-looking statement about industry impact\n- Use professional but engaging language suitable for LinkedIn\n\n**Style Guidelines:**\n- Write in active voice with strong, decisive language\n- Avoid technical jargon that would confuse general business audience\n- Use numbers and specific details to add credibility\n- Create a sense of momentum and importance\n- Don't oversell - be factual but compelling\n\n**If Multiple Major Stories Exist:**\n- Mention 2-3 key developments maximum\n- Connect them thematically if possible (e.g., \"funding surge,\" \"enterprise adoption,\" \"new capabilities\")\n- Prioritize stories with broader business implications\n\nNow analyze these AI news articles and create a summary covering the most important developments:\n\n{{ $json.articles }}\n\nFocus particularly on major funding rounds, significant product launches, and industry-changing developments from the list above."
            }
          ]
        }
      },
      "credentials": {
        "openAiApi": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 1.3
    },
    {
      "id": "2bc85161-3605-4314-8b6a-d2c69446f7f9",
      "name": "Prepare Articles for Summary1",
      "type": "n8n-nodes-base.code",
      "position": [
        1520,
        540
      ],
      "parameters": {
        "jsCode": "// Combine all articles into a single string for summarization\nconst articles = items.map(item => {\n  return `Title: ${item.json.title}\\nDescription: ${item.json.description}\\nSource: ${item.json.source}\\nDate: ${item.json.pubDate}\\nLink: ${item.json.link}\\n---`;\n}).join('\\n\\n');\n\nreturn [{\n  json: {\n    articles: articles,\n    articleCount: items.length,\n    processedAt: new Date().toISOString()\n  }\n}];"
      },
      "typeVersion": 2
    },
    {
      "id": "cdaedb20-4077-4a99-90fd-1dcb9b571f2d",
      "name": "Generate LinkedIn Post1",
      "type": "@n8n/n8n-nodes-langchain.openAi",
      "position": [
        2336,
        640
      ],
      "parameters": {
        "modelId": {
          "__rl": true,
          "mode": "list",
          "value": "gpt-4.1-mini",
          "cachedResultName": "GPT-4.1-MINI"
        },
        "options": {},
        "messages": {
          "values": [
            {
              "content": "=You are a professional LinkedIn content creator specializing in AI and technology. Your expertise lies in transforming complex AI news into engaging, shareable posts that drive meaningful professional discussions.\n\n**Your Mission:**\nCreate a compelling LinkedIn post that will stop professionals from scrolling and encourage them to engage through likes, comments, and shares.\n\n**Content Foundation:**\n{{ $json.message.content }}\n\n**Post Requirements:**\n\n**Structure:**\n- Hook: Start with an attention-grabbing opening line or question\n- Body: 2-3 short paragraphs (2-3 sentences each)\n- Call-to-Action: End with an engaging question that invites discussion\n\n**Tone & Style:**\n- Professional yet conversational and approachable\n- Confident but not overly promotional\n- Use \"I\" or \"We\" occasionally to add personal touch\n- Mix of industry insights with accessible language\n\n**Content Elements:**\n- Lead with the most impactful development from the summary\n- Include specific numbers, company names, and concrete details\n- Connect AI developments to broader business implications\n- Add 2-3 relevant emojis (\ud83d\ude80 \ud83e\udd16 \ud83d\udca1 \ud83e\udde0 \u26a1 \ud83d\udd25 \ud83c\udfaf) - use sparingly and strategically\n- Keep total length 250-300 words maximum\n\n**Engagement Optimization:**\n- Use short paragraphs for mobile readability\n- Include 5-7 relevant hashtags at the end: #AI #ArtificialIntelligence #TechNews #Innovation #MachineLearning #StartupFunding #TechTrends\n- End with a thought-provoking question that encourages comments\n- Use line breaks for visual appeal\n\n**Question Examples for Ending:**\n- \"What's your take on this development?\"\n- \"How do you see this impacting your industry?\"\n- \"Which of these developments excites you most?\"\n- \"Are we moving too fast or not fast enough?\"\n- \"What challenges do you foresee with this technology?\"\n\n**Visual Format:**\nUse line breaks between paragraphs and before hashtags for better readability.\n\n**Sample Structure:**\n[Hook/Opening statement] \ud83d\ude80\n\n[Key development with specifics]\n\n[Industry impact/implications]\n\n[Engaging question]\n\n#AI #TechNews #Innovation #MachineLearning #StartupFunding\n\n**Important:**\n- Make it shareable - professionals should want to repost this\n- Focus on business relevance, not just technical details\n- Create urgency around staying informed in AI\n- Avoid buzzwords and hype - be authentic and informative"
            }
          ]
        }
      },
      "credentials": {
        "openAiApi": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 1.3
    },
    {
      "id": "0fc05ed0-2436-4ca8-a7e2-c64a3cd09430",
      "name": "Send for Review1",
      "type": "n8n-nodes-base.gmail",
      "position": [
        2712,
        640
      ],
      "parameters": {
        "message": "={{ $json.message.content }}",
        "options": {
          "appendAttribution": false
        },
        "subject": "LinkedIn AI Post Ready for Review",
        "emailType": "text"
      },
      "credentials": {
        "gmailOAuth2": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 2.1
    },
    {
      "id": "ed56b632-c173-4e53-9a71-5c1acc974746",
      "name": "Check Articles Exist1",
      "type": "n8n-nodes-base.if",
      "position": [
        1740,
        540
      ],
      "parameters": {
        "options": {},
        "conditions": {
          "options": {
            "version": 1,
            "leftValue": "",
            "caseSensitive": true,
            "typeValidation": "strict"
          },
          "combinator": "and",
          "conditions": [
            {
              "id": "has-articles-condition",
              "operator": {
                "type": "number",
                "operation": "gt"
              },
              "leftValue": "={{ $json.articleCount }}",
              "rightValue": 0
            }
          ]
        }
      },
      "typeVersion": 2
    },
    {
      "id": "e407c536-a7c9-472d-b996-e621c2fd3ca6",
      "name": "No Articles Notification1",
      "type": "n8n-nodes-base.gmail",
      "position": [
        2038,
        440
      ],
      "parameters": {
        "message": "No AI News Found Today",
        "options": {},
        "subject": "No AI News Found Today",
        "emailType": "text"
      },
      "credentials": {
        "gmailOAuth2": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 2.1
    },
    {
      "id": "2627909f-3c21-48a4-9591-b97609d9f7a5",
      "name": "Sticky Note",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        600,
        140
      ],
      "parameters": {
        "color": 4,
        "width": 620,
        "height": 820,
        "content": "## 1) Research for AI articles\n"
      },
      "typeVersion": 1
    },
    {
      "id": "b0cdaa66-7053-42e8-a1d1-614381a52d8a",
      "name": "Sticky Note1",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        1240,
        140
      ],
      "parameters": {
        "color": 5,
        "width": 1000,
        "height": 820,
        "content": "## 2) Summarise AI related articles"
      },
      "typeVersion": 1
    },
    {
      "id": "88a3211c-4536-44f4-8ba4-c800da1031db",
      "name": "Sticky Note2",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        2260,
        140
      ],
      "parameters": {
        "color": 6,
        "width": 760,
        "height": 820,
        "content": "## 3) Generate Linkedin Post and send to email"
      },
      "typeVersion": 1
    }
  ],
  "active": true,
  "settings": {
    "executionOrder": "v1"
  },
  "versionId": "a04da0bf-2fa1-41be-9216-bae771d23a14",
  "connections": {
    "OpenAI Blog RSS1": {
      "main": [
        [
          {
            "node": "Merge All Sources1",
            "type": "main",
            "index": 1
          }
        ]
      ]
    },
    "Merge All Sources1": {
      "main": [
        [
          {
            "node": "Filter Recent AI Articles1",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "TechCrunch AI RSS1": {
      "main": [
        [
          {
            "node": "Merge All Sources1",
            "type": "main",
            "index": 1
          }
        ]
      ]
    },
    "AI News Summarizer1": {
      "main": [
        [
          {
            "node": "Generate LinkedIn Post1",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "VentureBeat AI RSS1": {
      "main": [
        [
          {
            "node": "Merge All Sources1",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Daily AI News Check1": {
      "main": [
        [
          {
            "node": "VentureBeat AI RSS1",
            "type": "main",
            "index": 0
          },
          {
            "node": "TechCrunch AI RSS1",
            "type": "main",
            "index": 0
          },
          {
            "node": "OpenAI Blog RSS1",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Check Articles Exist1": {
      "main": [
        [
          {
            "node": "AI News Summarizer1",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "No Articles Notification1",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Generate LinkedIn Post1": {
      "main": [
        [
          {
            "node": "Send for Review1",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Filter Recent AI Articles1": {
      "main": [
        [
          {
            "node": "Prepare Articles for Summary1",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Prepare Articles for Summary1": {
      "main": [
        [
          {
            "node": "Check Articles Exist1",
            "type": "main",
            "index": 0
          }
        ]
      ]
    }
  }
}

Credentials you'll need

Each integration node will prompt for credentials when you import. We strip credential IDs before publishing — you'll add your own.

Pro

For the full experience including quality scoring and batch install features for each workflow upgrade to Pro

About this workflow

This automation fetches daily AI-related articles from trusted RSS feeds, summarizes them using OpenAI (GPT), and generates a ready-to-post LinkedIn update in your writing style. It then emails the post to you every morning for review and publishing. Triggers every morning via…

Source: https://n8n.io/workflows/5068/ — original creator credit. Request a take-down →

More AI & RAG workflows → · Browse all categories →

Related workflows

Workflows that share integrations, category, or trigger type with this one. All free to copy and import.

AI & RAG

What this workflow does Pulls free security/tech headlines from multiple RSS feeds (e.g., CISA, BleepingComputer, Krebs, SecurityWeek, Ars Technica, TechCrunch, Hacker News). De-duplicates stories, ke

RSS Feed Read, Gmail, OpenAI
AI & RAG

Pulls free business and economic headlines from multiple publicly available RSS feeds (e.g., Reuters, Wall Street Journal, Federal Reserve, St. Louis Fed, BNP Paribas, WTO). De-duplicates stories, kee

Gmail, OpenAI, RSS Feed Read
AI & RAG

This n8n automation turns any RSS feed into a spoken podcast episode, using OpenAI for summarization and ElevenLabs for voice generation. The final audio is then sent straight to your Telegram for ins

RSS Feed Read, Google Drive, Telegram +4
AI & RAG

Personalized Outreach & Follow-Up - Phase 2. Uses googleSheets, openAi, gmail, gmailTrigger. Scheduled trigger; 59 nodes.

Google Sheets, OpenAI, Gmail +2
AI & RAG

This workflow automates the entire lifecycle of collecting, filtering, summarizing, and delivering the most important daily news in technology, artificial intelligence, cybersecurity, and the digital

RSS Feed Read, Gmail, Google Gemini