{"slug": "a-daily-competitor-news-digest-in-slack-for-1-50-a-month-n8n-google-news", "title": "A daily competitor news digest in Slack for ~$1.50 a month (n8n + Google News)", "summary": "A developer built a five-node n8n workflow that posts a daily Slack digest of brand and competitor news pulled from Google News, costing about $1.50 a month. The workflow calls the developer's own Apify Google News Scraper via a synchronous HTTP request, deduplicates articles by publisher URL across runs, and groups results by query into a single Slack message, skipping quiet days entirely. The developer notes that duplicates are removed after the run and are still billed, so the per-source article cap should be set near realistic daily volume.", "body_md": "Google Alerts still exists, but it has been unreliable for years: late, incomplete, and stuck in your inbox. What I actually wanted was simpler: every morning, one Slack message with what was published about our brand and our competitors in the last 24 hours, with links to the original articles, and nothing I have already seen.\n\nThis is the n8n workflow that does it. It has five nodes, takes about five minutes to set up and costs around $1.50 a month.\n\n**Disclosure:** the news data comes from the Google News Scraper on Apify, which I built. Prices and limits are below.\n\n```\nNews digest 2026-10-20: 19 new article(s)\n\nOpenAI (10)\n- OpenAI races to raise $30 billion at $1.4 trillion valuation ahead of Anthropic IPO (CTech)\n- EXCLUSIVE: OpenAI seeks to accelerate fundraising ahead of Anthropic IPO, sources say (Reuters)\n- Lawsuit alleges OpenAI 'stole' children's user data (Mashable)\n...\n\nAnthropic (9)\n- Former Google CEO Schmidt owns 1% stake in Anthropic, Bloomberg reports (Reuters)\n- Anthropic is AI trade's last big hope for a major IPO this year (CNBC)\n...\n```\n\nThat is real output from a test run, with \"OpenAI\" and \"Anthropic\" as example queries. In Slack every headline is a link to the publisher's page, not to a Google redirect.\n\n```\nSchedule (daily 7:30)\n  → HTTP Request: Google News Scraper\n  → Remove Duplicates (previous executions, by URL)\n  → Code: build digest\n  → Slack (+ optional e-mail)\n```\n\nAn HTTP Request node calls the Actor through Apify's synchronous endpoint (`run-sync-get-dataset-items`), which runs it and returns the results in one request:\n\n```\n{\n  \"queries\": [\"\\\"OpenAI\\\"\", \"\\\"Anthropic\\\"\"],\n  \"edition\": \"US:en\",\n  \"timeRange\": \"1d\",\n  \"maxArticlesPerSource\": 10,\n  \"includeFullText\": false\n}\n```\n\nA few details that matter for monitoring:\n\n`Acme Corp` also matches every article that mentions \"acme\" and \"corp\" separately.`\"Acme\" -jobs`, `intitle:acme`, `site:techcrunch.com`.` edition` sets country and language; 18 editions are supported (US, UK, Germany, France, Japan...).`title`, `source`, `publishedAt` and the `news.google.com/rss/articles/...` redirect links; the Actor decodes them. That matters for the next step.\nAuthentication is an n8n Header Auth credential: `Authorization: Bearer <Apify token>`.\n\nThe `1d` window overlaps from day to day, and big stories stay in the results for a while. The **Remove Duplicates** node in \"Remove items processed in previous executions\" mode, keyed on `{{ $json.url }}`, remembers every URL it has passed through and drops repeats. Because the URLs are the real publisher URLs, the key is stable.\n\nTwo caveats:\n\nI don't want 20 Slack notifications. A Code node groups the articles by query, sorts each group newest first, caps it at 10 and builds Slack mrkdwn plus an HTML version for e-mail:\n\n``` js\nconst groups = {};\nfor (const a of articles) {\n  const key = String(a.query || a.topic || 'Other').replace(/\"/g, '');\n  (groups[key] = groups[key] || []).push(a);\n}\n// ... `- <${a.url}|${title}> (${source})` per article\n```\n\nIf there are no new articles the node returns an empty array, so no message is sent. Quiet days stay quiet.\n\nA standard Slack node posts `{{ $json.text }}` to `#news-alerts`. There is also a disabled Send Email node wired to the same output; enable it and add SMTP credentials to get the digest by mail as well.\n\nThe Actor charges **$0.0025 per article** (plus $0.0025 per article if you turn on full-text extraction and text was found). With two queries and a cap of 10 articles each, the worst case is 20 articles a day, about **$1.50 a month**. Quiet brands cost less. Note that duplicates are dropped in n8n *after* the run, so they are still paid for; set `maxArticlesPerSource` near the number of articles you realistically expect per day.\n\nApify's free plan includes $5 per month, enough for this and a few more workflows.\n\n`includeFullText: true` and add an LLM step: \"Summarise in two sentences and rate the sentiment towards our brand.\"`@channel` only when `\"topics\": [\"TECHNOLOGY\"]` to get the top headlines of whole sections.`\"edition\": \"DE:de\"` and merge.\nQuestions or ideas for the next recipe? Leave a comment.", "url": "https://wpnews.pro/news/a-daily-competitor-news-digest-in-slack-for-1-50-a-month-n8n-google-news", "canonical_source": "https://dev.to/fast_data_asap/a-daily-competitor-news-digest-in-slack-for-150-a-month-n8n-google-news-405e", "published_at": "2026-10-20 11:44:14+00:00", "updated_at": "2026-10-20 11:48:22.379872+00:00", "lang": "en", "topics": ["ai-tools", "developer-tools"], "entities": ["n8n", "Google News", "Apify", "Slack", "OpenAI", "Anthropic"], "also_reported_by": [], "alternates": {"html": "https://wpnews.pro/news/a-daily-competitor-news-digest-in-slack-for-1-50-a-month-n8n-google-news", "markdown": "https://wpnews.pro/news/a-daily-competitor-news-digest-in-slack-for-1-50-a-month-n8n-google-news.md", "text": "https://wpnews.pro/news/a-daily-competitor-news-digest-in-slack-for-1-50-a-month-n8n-google-news.txt", "jsonld": "https://wpnews.pro/news/a-daily-competitor-news-digest-in-slack-for-1-50-a-month-n8n-google-news.jsonld"}}