AutomationFlowsAI & RAG › Filter & Summarize AI News From Techcrunch to Slack Using Openai

Filter & Summarize AI News From Techcrunch to Slack Using Openai

ByColton Randolph @crandolph on n8n.io

This n8n workflow automatically scrapes TechCrunch articles, filters for AI-related content using OpenAI, and delivers curated summaries to your Slack channels. Perfect for individuals or teams who need to stay current on artificial intelligence developments without manually…

Cron / scheduled trigger★★★★☆ complexityAI-powered12 nodesHTTP RequestAgentOpenAI ChatSlack
AI & RAG Trigger: Cron / scheduled Nodes: 12 Complexity: ★★★★☆ AI nodes: yes Added:

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

This workflow follows the Agent → 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": "Ut6jbfsK7IvhGJVL",
  "meta": {
    "templateId": "4588",
    "templateCredsSetupCompleted": true
  },
  "name": "Firecrawl AI-Powered Market Intelligence Bot: Automated News Insights Delivery",
  "tags": [],
  "nodes": [
    {
      "id": "471044c1-cafd-4810-973d-b40c74ef6999",
      "name": "Daily Market Research Trigger",
      "type": "n8n-nodes-base.scheduleTrigger",
      "position": [
        2512,
        784
      ],
      "parameters": {
        "rule": {
          "interval": [
            {
              "triggerAtHour": 8
            }
          ]
        }
      },
      "typeVersion": 1.2
    },
    {
      "id": "8f6e97b6-6910-4c6b-8c9a-29a0cf95ac09",
      "name": "Crawl TechCrunch (FireCrawl)",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        2704,
        784
      ],
      "parameters": {
        "url": "https://api.firecrawl.dev/v1/crawl",
        "method": "POST",
        "options": {},
        "jsonBody": "{\n  \"url\": \"https://techcrunch.com\",\n  \"limit\": 20,\n  \"includePaths\": [\"2025/\"],\n  \"scrapeOptions\": {\n    \"formats\": [\"markdown\"],\n    \"onlyMainContent\": true,\n    \"parsePDF\": true,\n    \"maxAge\": 14400000\n  }\n}",
        "sendBody": true,
        "specifyBody": "json",
        "authentication": "genericCredentialType",
        "genericAuthType": "httpBearerAuth"
      },
      "typeVersion": 4.2
    },
    {
      "id": "a326e8fd-bfc8-4380-9c66-20481aaa8a6c",
      "name": "Summarizer Agent",
      "type": "@n8n/n8n-nodes-langchain.agent",
      "position": [
        3328,
        784
      ],
      "parameters": {
        "text": "=You are an AI research assistant. First, determine if this article is related to artificial intelligence, machine learning, AI companies, or AI technology.\n\nIf the article IS AI-related, provide a summary in 3 bullet points.\nIf the article is NOT AI-related, respond with exactly: \"NOT_AI_RELATED\"\n\nArticle details:\nTitle: {{ $json.title }}\nDescription: {{ $json.description }}\nContent: {{ $json.content }}\n\nFormat for AI articles:\n{{ $json.title }}\n\nSummary:\n- [Bullet point 1]\n- [Bullet point 2] \n- [Bullet point 3]\n\nLink: {{ $json.url }}",
        "options": {},
        "promptType": "define"
      },
      "typeVersion": 1.9
    },
    {
      "id": "d8576228-6261-4654-84de-0864e398c22d",
      "name": "OpenAI Summarizer",
      "type": "@n8n/n8n-nodes-langchain.lmChatOpenAi",
      "position": [
        3328,
        1008
      ],
      "parameters": {
        "model": {
          "__rl": true,
          "mode": "list",
          "value": "gpt-4o-mini"
        },
        "options": {}
      },
      "credentials": {
        "openAiApi": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 1.2
    },
    {
      "id": "f5965b4a-4ab1-4e5f-868c-2dc11c59fc28",
      "name": "Send Summary to Slack",
      "type": "n8n-nodes-base.slack",
      "position": [
        3792,
        784
      ],
      "parameters": {
        "text": "=\ud83d\udd0d AI Research Summary:\n{{ $json.output }}",
        "select": "channel",
        "channelId": {
          "__rl": true,
          "mode": "name",
          "value": "#general"
        },
        "otherOptions": {},
        "authentication": "oAuth2"
      },
      "executeOnce": false,
      "typeVersion": 2.3
    },
    {
      "id": "fb908a45-0faf-4068-9420-8046ab4a8d36",
      "name": "Wait",
      "type": "n8n-nodes-base.wait",
      "position": [
        2880,
        784
      ],
      "parameters": {
        "amount": 60
      },
      "typeVersion": 1.1
    },
    {
      "id": "a89a5bc1-5f76-40b5-aca3-adc380fd4c0d",
      "name": "Receive Firecrawl Results",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        3024,
        784
      ],
      "parameters": {
        "url": "=https://api.firecrawl.dev/v1/crawl/{{$json.id}}",
        "options": {},
        "authentication": "genericCredentialType",
        "genericAuthType": "httpBearerAuth"
      },
      "credentials": {
        "httpBearerAuth": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 4.2
    },
    {
      "id": "5ddeaef9-cd9d-4f55-b82d-1edfce6429df",
      "name": "Split Output",
      "type": "n8n-nodes-base.code",
      "position": [
        3184,
        784
      ],
      "parameters": {
        "jsCode": "// Split crawled articles into individual items for processing\nif (!$json.data || $json.data.length === 0) {\n  console.log(\"No data available\");\n  return [];\n}\n\nconsole.log(`Processing ${$json.data.length} articles individually`);\n\n// Return each article as a separate n8n item\nreturn $json.data.map(article => ({\n  json: {\n    title: article.metadata?.title || 'No title',\n    url: article.sourceURL || '',\n    content: (article.markdown || article.content || '').substring(0, 1000),\n    description: article.metadata?.description || '',\n    publishDate: article.metadata?.publishDate || ''\n  }\n}));"
      },
      "typeVersion": 2
    },
    {
      "id": "c8cc970e-313e-45c9-bad5-9dd32ccbfee3",
      "name": "Filter Messages",
      "type": "n8n-nodes-base.code",
      "position": [
        3616,
        784
      ],
      "parameters": {
        "jsCode": "// Process all items at once and filter out NOT_AI_RELATED\nconst filteredItems = [];\n\n$input.all().forEach(item => {\n  if (item.json.output && item.json.output.trim() !== 'NOT_AI_RELATED') {\n    filteredItems.push(item);\n  } else {\n    console.log('Filtered out non-AI article');\n  }\n});\n\nconsole.log(`Passing ${filteredItems.length} AI articles to Slack`);\nreturn filteredItems;"
      },
      "typeVersion": 2
    },
    {
      "id": "51e047ef-791d-46cd-abcd-98c2b55104cd",
      "name": "Sticky Note",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        2512,
        -384
      ],
      "parameters": {
        "width": 944,
        "height": 1056,
        "content": "# AI-Powered Market Intelligence Bot\n\n## Overview\nThis n8n workflow automatically monitors TechCrunch for AI-related articles, using Firecrawl's AI-powered web scraping to extract clean, structured data and OpenAI to generate actionable summaries delivered directly to your team's Slack channel.\n\n## \ud83d\ude80 1. Trigger & Scheduling\n\n### Daily Method Research Trigger\n- Initiates automated TechCrunch monitoring on a scheduled basis\n- Default: Daily execution to capture fresh AI industry news and trends\n- Configurable for different frequencies based on market velocity\n- Ensures consistent intelligence gathering without manual intervention\n\n## \ud83d\udd0d 2. Web Scraping & Data Collection\n\n### Firecrawl Integration (HTTP Request Node)\n- Targets TechCrunch specifically: `https://techcrunch.com` (though, can obviously be changed)\n- Crawls a specificed amount of articles with `\"limit\" -- by default this is set to 20, otherwise it would keep scraping. You can remove this limit to scrape all. \n- Focuses on current year content with `\"includePaths\": [\"2025/\"]` In 2026, you'll need to update this.\n- Extracts markdown format for clean, structured content\n- Uses `\"onlyMainContent\": true` to avoid ads and navigation clutter\n- Built-in anti-bot detection bypass and automatic JavaScript rendering\n\n### Code Text/Concat Processing\n- Filters scraped TechCrunch articles for AI relevance\n- AI research assistant determines if articles relate to artificial intelligence, machine learning, AI companies, or AI technology\n- Automatically excludes non-AI content with \"NOT_AI_RELATED\" filtering\n- Processes article titles, descriptions, and full content for comprehensive analysis\n\n## \u23f1\ufe0f 3. Processing Flow Control\n\n### Wait Node\n- Implements controlled delays to respect TechCrunch's server resources\n- Enough time to receive results back"
      },
      "typeVersion": 1
    },
    {
      "id": "92923278-85b3-4def-a7e2-8967e55f9004",
      "name": "Sticky Note1",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        4384,
        -352
      ],
      "parameters": {
        "color": 4,
        "width": 1200,
        "height": 1184,
        "content": "## \ud83d\udd27 Configuration & Customization\n\n### TechCrunch Scraping Setup\n- Configured to crawl `https://techcrunch.com` with 20 article limit\n- Focuses on current year content with date path filtering\n- Markdown extraction for clean, readable content processing\n- 4-hour cache setting (`\"maxAge\": 14400000`) for efficiency\n\n### AI Relevance Detection\n- Built-in AI research assistant determines article relevance\n- Filters specifically for artificial intelligence, machine learning, AI companies, and AI technology\n- Binary classification: AI-related articles get summarized, others get filtered out\n- Reduces noise by focusing only on AI industry developments\n\n### Slack Integration\n- TechCrunch-specific formatting with source attribution\n- AI-focused message structure with bullet point summaries\n- Integration with Slack threads for AI trend discussions\n- Notification preferences for AI industry updates\n\n## \ud83d\udca1 Best Practices\n\n1. **Monitor TechCrunch Coverage**: Track how much AI content TechCrunch publishes daily\n2. **AI Relevance Accuracy**: Review filtered articles to ensure important AI stories aren't missed\n3. **Summary Quality**: Periodically check that 3-bullet summaries capture key AI insights\n4. **Team Engagement**: Use Slack reactions to identify most valuable AI trends\n5. **Source Verification**: Always include TechCrunch links for fact-checking and deeper reading\n\n## \ud83d\udd04 Maintenance & Monitoring\n\n- **TechCrunch Access**: Monitor Firecrawl success rates for TechCrunch crawling\n- **AI Classification**: Track accuracy of AI relevance detection\n- **Content Freshness**: Ensure date filtering captures latest AI articles\n- **Delivery Success**: Confirm AI summaries reach Slack channels consistently\n- **Cost Management**: Monitor OpenAI usage for TechCrunch article processing\n\n## \ud83c\udfaf Business Impact\n\nThis workflow transforms AI market intelligence from manual TechCrunch reading into an automated pipeline that delivers:\n\n- **Daily AI-focused insights** from TechCrunch without manual browsing\n- **Filtered relevance** ensuring only AI industry news reaches your team\n- **Structured summaries** optimized for quick consumption of AI trends\n- **Team awareness** of AI developments through integrated Slack discussions\n- **Source credibility** with direct links to TechCrunch articles\n\nPerfect for AI product teams, tech investors, and executives who need to stay current on artificial intelligence developments without spending time manually browsing TechCrunch."
      },
      "typeVersion": 1
    },
    {
      "id": "52f22863-78b7-4f12-9d92-5cfe81b4c8c9",
      "name": "Sticky Note2",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        3600,
        -352
      ],
      "parameters": {
        "color": 5,
        "width": 736,
        "height": 1056,
        "content": "## \ud83e\udd16 4. AI-Powered Analysis & Summarization\n\n### OpenAI Summarizer (AI Agent)\n- Uses GPT-4o-mini for cost-effective, high-quality analysis\n- AI research assistant prompt determines AI relevance before summarizing\n- For AI-related articles: generates 3 bullet point summaries\n- For non-AI articles: responds with \"NOT_AI_RELATED\" to filter out\n- Processes TechCrunch article title, description, and full content\n- Maintains source attribution with original TechCrunch URLs\n\n### Split Output Processing\n- Distributes processed TechCrunch articles across parallel analysis streams\n- Enables simultaneous processing of multiple articles\n- Optimizes workflow performance for large news batches\n- Maintains data integrity during multi-path processing\n\n## \ud83d\udcca 5. Intelligence Filtering & Quality Control\n\n### Filter Messages Node\n- Removes articles marked as \"NOT_AI_RELATED\" by the AI assistant\n- Applies relevance scoring to prevent information overload\n- Ensures only AI-focused TechCrunch content reaches stakeholders\n- Customizable filtering logic based on AI relevance confidence\n\n## \ud83d\udce4 6. Delivery & Distribution\n\n### Send Summary to Slack\n- Delivers formatted AI intelligence from TechCrunch to specified channels\n- Message format includes: Article title + 3 bullet point summary + TechCrunch source link\n- Supports threaded conversations for team discussions about AI trends\n- Click-through links to original TechCrunch articles for deeper research\n- Rich formatting optimized for mobile and desktop consumptio"
      },
      "typeVersion": 1
    }
  ],
  "active": false,
  "settings": {},
  "versionId": "1a74e487-1f09-4046-8c1c-149d0c748911",
  "connections": {
    "Wait": {
      "main": [
        [
          {
            "node": "Receive Firecrawl Results",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Split Output": {
      "main": [
        [
          {
            "node": "Summarizer Agent",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Filter Messages": {
      "main": [
        [
          {
            "node": "Send Summary to Slack",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Summarizer Agent": {
      "main": [
        [
          {
            "node": "Filter Messages",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "OpenAI Summarizer": {
      "ai_languageModel": [
        [
          {
            "node": "Summarizer Agent",
            "type": "ai_languageModel",
            "index": 0
          }
        ]
      ]
    },
    "Receive Firecrawl Results": {
      "main": [
        [
          {
            "node": "Split Output",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Crawl TechCrunch (FireCrawl)": {
      "main": [
        [
          {
            "node": "Wait",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Daily Market Research Trigger": {
      "main": [
        [
          {
            "node": "Crawl TechCrunch (FireCrawl)",
            "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 automatically scrapes TechCrunch articles, filters for AI-related content using OpenAI, and delivers curated summaries to your Slack channels. Perfect for individuals or teams who need to stay current on artificial intelligence developments without manually…

Source: https://n8n.io/workflows/7346/ — 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

Created by: Peyton Leveillee Last updated: October 2025

OpenAI Chat, Google Sheets, HTTP Request +5
AI & RAG

Runs automatically every Monday morning at 8 AM Collects your Google Search Console from the last month and the month before that for a given url (date range is configurable) Formats the data, aggrega

N8N Nodes Pdforge, HTTP Request, OpenAI Chat +2
AI & RAG

This workflow automates end-to-end sustainability lifecycle management for corporate sustainability teams, ESG governance officers, and circular economy programme leads. It addresses the challenge of

Form Trigger, Agent, OpenAI Chat +11
AI & RAG

Marketing, content, and enablement teams that need a quick, human-readable summary of every new video published by the YouTube channels they care about—without leaving Slack.

HTTP Request, Google Sheets, XML +7
AI & RAG

This workflow automates end-to-end ESG (Environmental, Social, and Governance) sustainability reporting for enterprise sustainability teams, compliance officers, and green governance leads. It solves

Agent, OpenAI Chat, Output Parser Structured +12