AutomationFlowsWeb Scraping › Scrape AI News to Markdown & Google Drive

Scrape AI News to Markdown & Google Drive

Original n8n title: Scrape AI News From Multiple Sources to Markdown & Google Drive with Rss.app

ByLucas Walter @lucaswalter on n8n.io

This n8n workflow automates the process of pulling in breaking AI-related headlines from curated RSS feeds, scraping their full content, and saving readable Markdown versions directly to Google Drive.

Cron / scheduled trigger★★★★☆ complexity15 nodesHTTP RequestGoogle Drive
Web Scraping Trigger: Cron / scheduled Nodes: 15 Complexity: ★★★★☆ Added:

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

This workflow follows the Google Drive → HTTP Request 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": "ZCioSOYsqo4fnil1",
  "name": "The Recap AI - News Scraping Pipeline",
  "tags": [],
  "nodes": [
    {
      "id": "7a3a1726-b43e-4b4f-84b8-c50739a1ca70",
      "name": "google_news_trigger",
      "type": "n8n-nodes-base.scheduleTrigger",
      "position": [
        0,
        260
      ],
      "parameters": {
        "rule": {
          "interval": [
            {
              "field": "hours",
              "hoursInterval": 3
            }
          ]
        }
      },
      "typeVersion": 1.2
    },
    {
      "id": "08dc06bb-af31-4714-8439-a6521e77d6a2",
      "name": "fetch_google_news_feed",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        220,
        260
      ],
      "parameters": {
        "url": "https://rss.app/feeds/v1.1/AkOariu1C7YyUUMv.json",
        "options": {}
      },
      "typeVersion": 4.2
    },
    {
      "id": "8f6a923f-0b97-45b6-a2bf-d044a7a7ede8",
      "name": "split_google_news_items",
      "type": "n8n-nodes-base.splitOut",
      "position": [
        440,
        260
      ],
      "parameters": {
        "options": {},
        "fieldToSplitOut": "items"
      },
      "typeVersion": 1
    },
    {
      "id": "51b553e5-52d5-4840-8e60-783648a65a51",
      "name": "blog_open_ai_trigger",
      "type": "n8n-nodes-base.scheduleTrigger",
      "position": [
        0,
        0
      ],
      "parameters": {
        "rule": {
          "interval": [
            {
              "field": "hours",
              "hoursInterval": 4
            }
          ]
        }
      },
      "typeVersion": 1.2
    },
    {
      "id": "2ff2ba43-0985-4d49-a8c1-8da72f8705c1",
      "name": "fetch_blog_open_ai_feed",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        220,
        0
      ],
      "parameters": {
        "url": "https://rss.app/feeds/v1.1/xNVg2hbY14Z7Gpva.json",
        "options": {}
      },
      "typeVersion": 4.2
    },
    {
      "id": "15d913b7-1f5d-437d-a8df-61199fd60853",
      "name": "split_blog_open_ai_items",
      "type": "n8n-nodes-base.splitOut",
      "position": [
        440,
        0
      ],
      "parameters": {
        "options": {},
        "fieldToSplitOut": "items"
      },
      "typeVersion": 1
    },
    {
      "id": "320cdd9e-7fe6-4f69-ad82-48cb2e3d1fe6",
      "name": "scrape_url",
      "type": "n8n-nodes-base.httpRequest",
      "onError": "continueRegularOutput",
      "maxTries": 3,
      "position": [
        1060,
        260
      ],
      "parameters": {
        "url": "https://api.firecrawl.dev/v1/scrape",
        "method": "POST",
        "options": {},
        "jsonBody": "={\n  \"url\": \"{{ $json.url }}\",\n  \"formats\": [\"json\", \"markdown\", \"rawHtml\", \"links\"],\n  \"excludeTags\": [\"iframe\", \"nav\", \"header\", \"footer\"],\n  \"onlyMainContent\": true,\n  \"jsonOptions\": {\n    \"prompt\": \"Identify the main content of the text (i.e., the article or newsletter body). Provide the exact text for that main content verbatim, without summarizing or rewriting any part of it. Exclude all non-essential elements such as banners, headers, footers, calls to action, ads, or purely navigational text. Format this output as markdown using appropriate '#' characters as heading levels. Exclude any promotional or sponsored content on your output.\",\n    \"schema\": {\n      \"type\": \"string\",\n      \"description\": \"The exact verbatim main text content of the web page in markdown format.\"\n    }\n  }\n}",
        "sendBody": true,
        "sendHeaders": true,
        "specifyBody": "json",
        "authentication": "genericCredentialType",
        "genericAuthType": "httpHeaderAuth",
        "headerParameters": {
          "parameters": [
            {
              "name": "Content-Type",
              "value": "application/json"
            }
          ]
        }
      },
      "credentials": {
        "httpHeaderAuth": {
          "name": "<your credential>"
        }
      },
      "retryOnFail": true,
      "typeVersion": 4.2,
      "waitBetweenTries": 5000
    },
    {
      "id": "f095ece6-a1f9-460c-b542-fce0ed82b797",
      "name": "upload_markdown",
      "type": "n8n-nodes-base.googleDrive",
      "onError": "continueRegularOutput",
      "position": [
        1860,
        260
      ],
      "parameters": {
        "name": "={{ $binary.data.fileName }}",
        "driveId": {
          "__rl": true,
          "mode": "list",
          "value": "My Drive",
          "cachedResultUrl": "https://drive.google.com/drive/my-drive",
          "cachedResultName": "My Drive"
        },
        "options": {},
        "folderId": {
          "__rl": true,
          "mode": "list",
          "value": "13_W8MvFeaIdGNdkX8lSNV-zVFraoG6j6",
          "cachedResultUrl": "https://drive.google.com/drive/folders/13_W8MvFeaIdGNdkX8lSNV-zVFraoG6j6",
          "cachedResultName": "News Scraper Automation"
        }
      },
      "credentials": {
        "googleDriveOAuth2Api": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 3
    },
    {
      "id": "fc6a610c-96e2-4e6d-9c75-c3823c80bcfc",
      "name": "create_markdown_file",
      "type": "n8n-nodes-base.convertToFile",
      "onError": "continueRegularOutput",
      "position": [
        1620,
        260
      ],
      "parameters": {
        "options": {
          "fileName": "=news_story_{{ $itemIndex + 1 }}.md"
        },
        "operation": "toText",
        "sourceProperty": "data.markdown"
      },
      "typeVersion": 1.1
    },
    {
      "id": "9888b029-6424-4385-a9dc-6fd7c079e7e0",
      "name": "Schedule Trigger",
      "type": "n8n-nodes-base.scheduleTrigger",
      "position": [
        0,
        540
      ],
      "parameters": {
        "rule": {
          "interval": [
            {
              "field": "hours",
              "hoursInterval": 3
            }
          ]
        }
      },
      "typeVersion": 1.2
    },
    {
      "id": "7c4b5293-285c-4c3d-8042-4e8e7f07ddec",
      "name": "HTTP Request",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        220,
        540
      ],
      "parameters": {
        "url": "https://rss.app/feeds/v1.1/sgHcE2ehHQMTWhrL.json",
        "options": {}
      },
      "typeVersion": 4.2
    },
    {
      "id": "f5e417cc-e9bb-4ab5-96e1-d8dc5fc53152",
      "name": "Split Out",
      "type": "n8n-nodes-base.splitOut",
      "position": [
        440,
        540
      ],
      "parameters": {
        "options": {},
        "fieldToSplitOut": "items"
      },
      "typeVersion": 1
    },
    {
      "id": "c4b584c1-51d3-4689-bd85-5132e81ec593",
      "name": "Sticky Note",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -100,
        -140
      ],
      "parameters": {
        "color": 4,
        "width": 840,
        "height": 900,
        "content": "## 1. Fetch News Articles from RSS.app Feeds"
      },
      "typeVersion": 1
    },
    {
      "id": "a75d6952-f7b0-496c-bdd5-aad6b6e7a931",
      "name": "Sticky Note1",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        860,
        40
      ],
      "parameters": {
        "color": 6,
        "width": 520,
        "height": 520,
        "content": "## 2. Scrape Urls Using Firecrawl API\n\nCreate and use your Generic Header Credential here in order to authenticate to the Firecrawl API."
      },
      "typeVersion": 1
    },
    {
      "id": "398aa6cd-dfa2-4533-9478-4fa559f9122a",
      "name": "Sticky Note2",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        1500,
        40
      ],
      "parameters": {
        "width": 600,
        "height": 520,
        "content": "## 3. Upload Markdown File To Google Drive\n\nCreate and specify your Google Drive Credentials and then specify which folder you want to upload the markdown file to."
      },
      "typeVersion": 1
    }
  ],
  "active": false,
  "settings": {
    "executionOrder": "v1"
  },
  "versionId": "d3a72073-aa88-4d83-bc46-6d401a068ae9",
  "connections": {
    "Split Out": {
      "main": [
        [
          {
            "node": "scrape_url",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "scrape_url": {
      "main": [
        [
          {
            "node": "create_markdown_file",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "HTTP Request": {
      "main": [
        [
          {
            "node": "Split Out",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Schedule Trigger": {
      "main": [
        [
          {
            "node": "HTTP Request",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "google_news_trigger": {
      "main": [
        [
          {
            "node": "fetch_google_news_feed",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "blog_open_ai_trigger": {
      "main": [
        [
          {
            "node": "fetch_blog_open_ai_feed",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "create_markdown_file": {
      "main": [
        [
          {
            "node": "upload_markdown",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "fetch_google_news_feed": {
      "main": [
        [
          {
            "node": "split_google_news_items",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "fetch_blog_open_ai_feed": {
      "main": [
        [
          {
            "node": "split_blog_open_ai_items",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "split_google_news_items": {
      "main": [
        [
          {
            "node": "scrape_url",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "split_blog_open_ai_items": {
      "main": [
        [
          {
            "node": "scrape_url",
            "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 n8n workflow automates the process of pulling in breaking AI-related headlines from curated RSS feeds, scraping their full content, and saving readable Markdown versions directly to Google Drive.

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

More Web Scraping workflows → · Browse all categories →

Related workflows

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

Web Scraping

Visual Regression Testing With Apify And Ai Vision Model. Uses googleDrive, lmChatGoogleGemini, outputParserStructured, stickyNote. Scheduled trigger; 34 nodes.

Google Drive, Google Gemini Chat, Output Parser Structured +4
Web Scraping

This n8n workflow is a proof-of-concept template exploring how we might work with multimodal LLMs and their multi-image analysis capabilities. In this demo, we compare 2 screenshots of a webpage taken

Google Drive, Google Gemini Chat, Output Parser Structured +4
Web Scraping

&gt; Watch the full Youtube Video Tutorial [](https://youtu.be/Y-wUr2-UYZk)

Data Table, HTTP Request, Google Sheets +1
Web Scraping

Very straightforward workflow. It checks the Epic Games website if the HTML container with free games has changed. If it did then it will send a notification to Discord with a list of embeds containin

Discord, N8N Nodes Puppeteer, HTTP Request
Web Scraping

This workflow automatically scrapes business leads from Google Maps on a daily schedule and ensures only high-quality, unique leads are processed. New businesses are cleaned, validated, and deduplicat

Google Sheets, Gmail, HTTP Request