News & RSS Keyword Monitor (GDELT + Feeds)
Pricing
from $1.00 / 1,000 new articles
News & RSS Keyword Monitor (GDELT + Feeds)
Monitor keywords in worldwide news (GDELT) and any RSS/Atom feed. Exclude words, language and country filters, dedupe, and only new articles on schedules.
Pricing
from $1.00 / 1,000 new articles
Rating
0.0
(0)
Developer
Dave West
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
a month ago
Last modified
Categories
Security
Limited permissionsShare
A news monitor and RSS keyword tracker for brand mentions, competitors and topics. Give it keywords (with optional exclude words, language and country filters) and, if you like, your own RSS/Atom feeds. It searches worldwide online news through the free GDELT news index and your feeds, removes duplicates, and returns one row per article: title, link, source, publish date, language, matched keywords and a short snippet.
Schedule it and every run returns only the articles you have not seen yet, so it works as a lightweight media monitoring tool and a Google News alternative for alerts in Slack, email, Google Sheets, Zapier, Make or n8n. You pay $0.001 per new article ($1 per 1,000). Articles you have already received, duplicates and empty runs add no article charges.
- Global news coverage through GDELT: the GDELT DOC 2.0 API covers online news in about 65 languages, updated every 15 minutes, with no API key needed. Search in English and you find coverage in every language (GDELT searches English machine translations of the full text).
- Any RSS or Atom feed: news sites, blogs, trade press, press-release feeds, YouTube channel feeds, and Google News RSS search URLs you copy yourself. Web page URLs work too if the page links to its feed.
- Precise keyword matching: case- and accent-insensitive, whole words and phrases ("AI" does not match "said"),
optional prefix wildcard (
klimaat*), any or all keywords, plus exclude words. - Language and country filters:
en,nl,de, ... and publisher countries (US,GB,NL, ...). - Deduplication: the same story from GDELT and a feed, with tracking parameters,
www./m./AMP variants or a " - Publisher" title suffix, is returned once (alsoFoundInlists the other sources). - Monitoring mode: delivered articles are remembered in a named key-value store in your account. Scheduled
runs return only new articles (or everything, flagged with
isNew). - Robust: if GDELT is rate-limited or down, the run still delivers your feed articles. A broken feed never stops the run.
- Lightweight: HTTP only, no browser, no full-article scraping. Runs take seconds and cost almost nothing in platform usage.
Use cases
- Brand mentions and reputation: your company, product or CEO in the news, excluding job ads or stock tips.
- Competitor and market monitoring: product launches, funding rounds, acquisitions, regulation.
- PR and media monitoring: coverage of a campaign or press release across countries and languages.
- Topic alerts: a daily feed of "artificial intelligence" + "regulation" news for a newsletter or research.
- Feed aggregation with filters: watch 50 trade-press RSS feeds and keep only the items that mention your terms.
How it works
- Enter your keywords (and optional exclude words, languages, countries).
- Optionally add RSS/Atom feed URLs.
- Run it and check the Overview table.
- Schedule it (hourly or daily). Each run returns only new articles. Connect an integration to get alerts.
keywords ──► GDELT DOC 2.0 API (full-text news search) ──┐├─► filter ─► dedupe ─► new only? ─► dataset rowsRSS / Atom feeds ──► title + summary keyword match ───────┘ (seen IDs in a named KV store)
Input
| Field | What it does | Default |
|---|---|---|
keywords | Words or phrases to monitor. GDELT searches the full article text; feed items must mention a keyword in the title or summary. Trailing * = prefix wildcard (feeds only). | - |
gdeltKeywords | Optional English search terms for GDELT. GDELT searches English machine translations of all articles, so use English terms here for Dutch, German, ... news and keep native keywords in keywords for your feeds. Empty = keywords. | - |
excludeKeywords | Drop articles that mention any of these | - |
matchMode | any keyword or all keywords | any |
feeds | RSS / Atom feed URLs (Google News RSS search URLs and pages that link to a feed also work). With no keywords, every item from the feeds is returned. | - |
useGdelt | Search GDELT as well as your feeds | true |
languages | ISO 639-1 codes (en, nl, de, ...) or English names (Dutch). Applied to GDELT and to feeds that declare a language. | all |
countries | Publisher countries for GDELT: ISO codes (US, GB, NL) or English names | all |
lookbackHours | Only articles published within this window (GDELT: up to 2160 h = 3 months). 48 h by default because GDELT's index can lag. | 48 |
maxArticles | Max rows per run, newest first. Articles over the cap stay unseen for the next run. | 200 |
onlyNew | Return only articles not delivered before (monitoring mode) | true |
stateStoreName | Named key-value store that remembers delivered articles. Use one name per monitor. | news-rss-keyword-monitor-state |
gdeltMaxRecords | Articles requested from GDELT (max 250) | 250 |
gdeltMaxWaitSecs | Total time for GDELT including retries before continuing with feeds only | 40 |
requestTimeoutSecs | Timeout per request | 30 |
proxyConfiguration | Optional proxy for GDELT requests only (helps if your runs keep getting rate-limited) | off |
Example input: brand monitoring
{"keywords": ["Acme Robotics", "AcmeBot"],"excludeKeywords": ["vacancy", "job opening"],"languages": ["en", "de"],"feeds": ["https://techcrunch.com/feed/","https://news.google.com/rss/search?q=%22Acme%20Robotics%22&hl=en-US&gl=US&ceid=US:en"],"lookbackHours": 24,"onlyNew": true,"stateStoreName": "acme-brand-monitor"}
Example input: Dutch news about housing and the cabinet
Native keywords for the Dutch feed, English terms for GDELT, and a language filter so GDELT returns Dutch sources only:
{"keywords": ["kabinet", "woningmarkt"],"gdeltKeywords": ["housing market", "Dutch cabinet"],"languages": ["nl"],"countries": ["NL"],"feeds": ["https://feeds.nos.nl/nosnieuwsalgemeen"],"stateStoreName": "nl-politics-monitor"}
Output
One dataset row per article. The Overview view shows date, title, link, source, keywords, language, snippet, where it was found and whether it is new.
{"title": "OpenAI safety employee resigns, claiming the company's 'culture is broken'","url": "https://techcrunch.com/2026/10/03/openai-safety-employee-resigns-claiming-the-companys-culture-is-broken/","sourceDomain": "techcrunch.com","publishedAt": "2026-10-03T16:30:01.000Z","language": "en","matchedKeywords": ["AI"],"snippet": "By his own admission, David Robinson is \"something of a cliché\": an employee at a leading AI company who issues a dire warning while resigning from their job.","source": "https://techcrunch.com/category/artificial-intelligence/feed/","isNew": true,"sourceName": "AI News & Artificial Intelligence | TechCrunch","sourceCountry": null,"imageUrl": null,"matchedIn": "title/snippet","alsoFoundIn": [],"articleId": "f143fce070e10faa","collectedAt": "2026-10-03T20:08:56.736Z"}
| Field | Meaning |
|---|---|
title, url | Article headline and link (as published; Google News RSS items keep their news.google.com link) |
sourceDomain | Publisher domain (bbc.co.uk, nos.nl) |
publishedAt | Publish time in ISO 8601 UTC (GDELT: the time GDELT first saw the article) |
language | ISO 639-1 language code when known |
matchedKeywords | Your keywords found in the title/snippet. For GDELT matches in the article body, the searched keyword(s) when unambiguous (see matchedIn) |
snippet | Short summary from the feed (max 300 characters). Always null for GDELT, which provides no summary. |
source | gdelt or the feed URL the article came from |
isNew | true if this article was never delivered by this monitor before |
sourceCountry, imageUrl, sourceName | Extra metadata when available |
matchedIn | title, title/snippet or article text (GDELT) |
alsoFoundIn | Other sources that had the same story (merged duplicates) |
articleId, collectedAt | Stable ID (from the canonical URL) and collection time |
A SUMMARY record in the run's key-value store shows the counts (found, filtered, duplicates, already seen,
delivered, charged), the exact GDELT query and status (requests, retries, errors), the status of each feed, and all
warnings.
Scheduling (monitoring)
- Save your input as a task (one task per brand or topic) and give each task its own
stateStoreName. - Console -> Schedules -> create a schedule (for example every hour, or daily at 07:00) and add the task.
- Add an integration to the task: Slack, email, Google Sheets, Zapier, Make, n8n or a webhook on "Run succeeded" to receive the new rows.
How "new" works: after an article is delivered, its canonical-URL ID and normalized-title ID are stored in the named
key-value store. The next run skips those, so the same story under a different URL (for example a Google News link
and the publisher link) is not reported twice. Articles cut off by maxArticles or by your max charge are not
marked as seen, so a later run delivers them. Seen IDs are kept for at least 30 days. To start over, delete the store
or use a new stateStoreName. Set onlyNew to false to get every match, with isNew on each row.
Tip: keep lookbackHours well above your schedule interval (the default 48 h suits hourly and daily runs). GDELT
sometimes publishes articles late, and the seen-store makes sure you never get duplicates.
Pricing
Pay per event: $0.001 per new article delivered (article event, $1.00 per 1,000 new articles).
| You get | Price |
|---|---|
A new article row (isNew: true) | $0.001 |
Articles you already received (re-delivered with onlyNew: false) | free |
| Duplicates, filtered or excluded articles, failed feeds, GDELT outages | free |
| A scheduled run that finds nothing new | no article charges |
Examples: a daily brand monitor that finds 20 new articles costs about $0.02 a day (~$0.60 a month). A topic feed with 500 new articles a day costs about $0.50 a day. The Actor checks your maximum cost per run before delivering each batch and stops cleanly when it is reached. Undelivered articles stay unseen and come in the next run.
Limitations
- GDELT rate limits and outages. GDELT allows about one request every 5 seconds per IP address and is often slow
(10-20 s per response). Shared IPs can get HTTP 429. The Actor retries with backoff for up to
gdeltMaxWaitSecs(default 40 s) and then continues with feed articles only. The run's SUMMARY and log show it. RaisegdeltMaxWaitSecsor set a proxy if GDELT matters more than speed. - GDELT returns at most 250 articles per run (newest first) and covers the last 3 months. It normally updates
every 15 minutes, but its index sometimes lags. During testing on 2026-10-03, the newest GDELT article was about
34 hours old, so a 24 h window returned nothing from GDELT. The default
lookbackHoursis therefore 48. The SUMMARY showsgdelt.newestSeenAt. - GDELT relevance: GDELT matches the keyword anywhere in the (translated) article text, including sidebars and related-article links, so some GDELT rows are only loosely related. Feed rows always mention the keyword in the title or summary.
- GDELT searches English translations. GDELT machine-translates non-English news into English and searches
only the translation (it dropped native-language search). Dutch keywords like
kabinetfind nothing there. Put English terms ingdeltKeywordsand uselanguagesto keep Dutch sources. Titles stay in the original language. When GDELT returns zero articles, the run log says so. - GDELT keywords: keywords shorter than 3 characters (like "AI") and wildcards are not supported by GDELT. They are still used for feeds and titles, and the log says so. The country filter applies to GDELT only.
- Only title, snippet and link are stored. The Actor never downloads or stores full article bodies and does not extract emails or personal data. Feed items are matched on their title and summary only. GDELT matches the full text on its side and gives no snippet.
- No Google scraping. Google News works only through RSS search URLs you paste as a feed. Their links point to news.google.com redirects.
- Paywalls: headlines and links from paywalled sites appear, but the content behind the paywall is not accessed.
- Deduplication uses canonical URLs and normalized titles. Rewritten versions of a story with different headlines count as separate articles.
- Feed language comes from the feed's
<language>tag. Feeds without one are not removed by the language filter.
FAQ
Do I need a GDELT or Google API key? No. GDELT is free and public, and feeds are public.
Can I monitor only RSS feeds? Yes: add feeds and turn off useGdelt. Without keywords, every new feed item is
returned. That makes it an RSS-to-dataset monitor.
Why does a GDELT row have empty matchedKeywords? GDELT matched one of several keywords somewhere in the article
text, not in the title, and does not say which. matchedIn is then article text (GDELT).
How do I get alerts? Schedule a task and add a Slack, email or webhook integration for successful runs. Only new articles are in each run's dataset.
Quiet runs
When a scheduled run finds nothing new, the dataset gets one free row with type: "status" and status: "no_new_articles", so you can see that the run happened. Set Status row when nothing is new (statusRowWhenEmpty) to false if you only want article rows.