Pre-market watchlist brief from a Google Sheet to Slack

By General Input

Every weekday at 8am ET, your watchlist becomes a short Slack brief: biggest movers first, the news behind each one, and any analyst rating shifts.

Integrations

  • Finnhub
  • Google Sheets
  • Slack Bot

Type

Agentic Task

Categories

  • Finance
  • Operations

Every weekday at 8:00am Eastern, before the US market opens, post a pre-market brief on my watchlist to a Slack channel I configure. The goal is one short, readable message that tells me what moved overnight and why, not a table of prices.

Trigger: cron schedule, Monday through Friday at 8:00am America/New_York.

Step 1. Read the watchlist. Use Google Sheets Get Values to read the ticker symbols from the watchlist tab of a spreadsheet I specify. I will give you the spreadsheet id and the range, for example Watchlist!A2:A41. Treat one symbol per row, skip empty cells and any header row, and normalize symbols to uppercase.

Step 2. For each ticker, gather three things from Finnhub. Use Quote for the latest price and the percent change on the day. Use Company News for headlines published in the last 24 hours, passing yesterday and today as the from and to dates. Use Recommendation Trends for the current analyst consensus, comparing the most recent period against the one before it so you can detect a shift rather than just reporting a snapshot.

Pace the Finnhub calls. The free plan allows 60 calls per minute and each ticker needs three calls, so keep the watchlist to roughly 40 symbols and spread the requests so a single run never trips the limit. If Finnhub returns a 429, back off briefly and retry rather than dropping the ticker silently. If a symbol returns no data at all, note it once at the end of the brief instead of failing the whole run.

Step 3. Filter before writing. Drop any ticker that moved less than 1 percent on the day and also has no fresh news in the last 24 hours. Those are the quiet names, and including them is what makes this kind of brief unreadable. Keep a ticker if it has either a meaningful move or real news, not necessarily both. This filter matters most during earnings season, when news volume is much heavier and an unfiltered brief turns into a wall of text.

Step 4. Synthesize one brief, written as short prose and bullets rather than a data dump. Lead with the biggest movers, largest absolute percent change first. For each one, explain what news appears to be driving the move by pairing the price change with a specific same-day headline. That pairing is the entire point of this brief: a price move with the reason sitting next to it is useful, a price list is not. If a mover has no headline that plausibly explains it, say so plainly rather than inventing a cause. Then call out any ticker where analyst consensus shifted, for example upgrades outnumbering downgrades versus the prior period, or a visible change in the strong buy or sell counts. Close with a single line: one thing to watch today.

Step 5. Format for Slack using mrkdwn, which means single asterisks for bold rather than double. Bold the tickers and show moves as +2.3% or -1.8%. Keep the whole thing to roughly one screen. Post it with Slack Bot Send a Message to the channel I configure.

Keep the brief scoped to my watchlist. Do not add market-wide indexes, top gainer lists, or most-active lists. The value here is depth on the names I actually hold or follow, not broad market coverage.

Configurable inputs the workflow should expose: the Google Sheets spreadsheet id and watchlist range, the Slack channel id, the percent move threshold (default 1 percent), the news lookback window (default 24 hours), and the time zone.

Related prompts

Explore more prompts
Call overdue Xero customers with an AI collections agentLocal listing health board for every location you manageLet support send one-off Loops emails without an engineerA brand asset library your marketing team actually searchesTurn Mailjet email clicks into ranked HubSpot follow-upsClean out the Looker dashboards and Looks nobody opensStop cold emails to anyone with a live deal in PipedriveLiveKit live operations console for room moderationWake up dormant Keap leads with a researched reasoniMessage campaign console with pre-flight checks and delivery board