Daily news archive for tracked keywords in Google Sheets
Every weekday at 7am, log every fresh news article matching your tracked keywords into a Google Sheet, with no duplicates and no manual work.
Build me a deterministic daily news archive pipeline as a code workflow. No AI step, no summarization, no branching by content. The whole thing is read-config, fetch, dedupe by URL, append.
Trigger: cron, every weekday (Monday through Friday) at 7:00am in my local timezone.
The workflow targets one Google Sheet with two tabs: a Keywords tab and an Articles tab. The spreadsheet ID and both tab names should be exposed as workflow configuration so I can point it at any sheet without code changes.
Step 1: Use Google Sheets Get Values on the Keywords tab to read every keyword row. Each row has a keyword in column A and optional language (column B) and sources (column C) filters. Treat empty cells as 'no filter'.
Step 2: For each keyword row, call NewsAPI Search Everything with q set to the keyword, from set to 24 hours ago (ISO 8601), to set to now, sortBy set to publishedAt, and pageSize 100. If the row has a language value, pass it as the language parameter. If the row has a sources value (comma-separated), pass it as the sources parameter. Collect all returned articles across all keywords, tagging each article with the keyword that found it.
Step 3: Use Google Sheets Get Values on the Articles tab to read the existing url column. Build an in-memory Set of these URLs to use as the dedupe set.
Step 4: For each fetched article whose url is not already in the dedupe set, build a row with these columns in this order: timestamp (workflow run time, ISO 8601), keyword, source.name, author, title, url, publishedAt, description. Skip articles missing a url. Within this run, also dedupe by url so the same article isn't added twice if two keywords both match it.
Step 5: Use Google Sheets Append Values to write the new rows to the Articles tab in a single batched call with valueInputOption USER_ENTERED so URLs render as clickable links. If there are zero new rows, skip the append entirely and exit cleanly.
Error handling: if NewsAPI returns a non-ok status for a keyword, log it and continue with the remaining keywords rather than failing the whole run. Respect NewsAPI rate limits with a small delay between keyword calls if the keyword list is long.
Output: a self-updating research archive in Google Sheets that the team can sort, filter, and pivot. No notifications, no Slack post, no summary; the sheet is the deliverable.
What does this prompt do?
- Runs every weekday at 7am and pulls the last 24 hours of news coverage for each keyword you track.
- Reads your list of keywords from a Google Sheet so anyone on your team can add or remove topics without touching the workflow.
- Skips articles already in your sheet so you never get duplicate rows, even when the same story is picked up by multiple outlets.
- Appends a clean row per new article with timestamp, keyword, source, author, title, link, publish time, and description, ready to sort, filter, and pivot.
What do I need to use this?
- A NewsAPI account (the free Developer plan works for light tracking; paid plans give live articles and bigger quotas).
- A Google account with edit access to the spreadsheet you want to use as your archive.
- A Google Sheet with two tabs: a Keywords tab (one keyword per row, with optional language and source columns) and an Articles tab to hold the archive.
How can I customize it?
- Change the schedule from weekday 7am to whatever cadence fits your team (hourly, weekends, end of day).
- Add columns to the Keywords tab to narrow each topic by language or specific publishers, and the workflow will respect them per row.
- Adjust which fields land in the Articles tab if you want extra columns like category, country, or a custom tag.
FAQs
Will I get duplicate rows if the same article shows up on multiple days?
Do I need any AI or writing step for this to work?
Can different keywords use different languages or publishers?
What happens on weekends or holidays?
Does this work on the free NewsAPI plan?
Related templates
Stage a batch of filings overnight, then approve each completed form from a screenshot before anything is ever submitted.
Review every conversation Fin closed as resolved, judge which ones actually stuck, and see what the gap is worth against your bill.
Work every return, damage and warranty claim in one queue, with the order, the delivery date and a policy-backed recommendation already on screen.
See exactly which ingredients next week needs based on what you actually sold, adjust anything by hand, then build a one-click grocery cart.
See follower growth, posting cadence, format mix and engagement rate for your brand and every competitor you track, side by side on one board.
Open one screen to see how every service in your Jobber price book actually performed: how often it sold, what you charged, and where prices swing.
Stop chasing news coverage across a dozen tabs.
Connect NewsAPI and Google Sheets once, and Geni quietly builds your team's research archive every weekday at 7am.