Daily watchlist close-of-day digest in Slack
Every weekday at 4:15pm ET, post a tidy close-of-day summary of every ticker on your watchlist to Slack, with alerts when prices cross your targets.
Build a code workflow that runs on a cron trigger every weekday (Monday through Friday) at 4:15pm America/New_York and posts a close-of-day watchlist digest to Slack.
Step 1. Read my watchlist from Google Sheets. Use Google Sheets' Get Values operation against the 'watchlist' tab of a spreadsheet I'll configure. Each row has columns: ticker, target_above, target_below, notes. Skip the header row. The list of tickers comes entirely from this tab. Treat target_above and target_below as optional numeric thresholds (either or both may be blank).
Step 2. For each ticker, fetch today's market data using RapidAPI's Call a Subscribed Hub API operation. Default to the Real-Time Finance Data API on the RapidAPI Hub (host: real-time-finance-data.p.rapidapi.com), with YH Finance as a fallback option I can swap in. From the response, extract: close price, day change percent, day volume, 52-week high, and 52-week low. If the API returns no data for a ticker, log a warning and keep going. Respect rate limits with a small delay between calls and retry on 429.
Step 3. Append one row per ticker per day to the 'history' tab of the same spreadsheet using Google Sheets' Append Values operation. Columns: date (YYYY-MM-DD in ET), ticker, close, change_pct, volume.
Step 4. Build a single Slack digest message and send it with Slack's Send a Message operation to the channel #markets (make the channel a configurable input). Format it tightly using Slack mrkdwn:
- Header line with today's date in ET and a quick summary count (e.g. 'Watchlist close: 12 tickers, 3 alerts').
- A compact table section with one line per ticker showing: ticker, close price, an up arrow (▲) or down arrow (▼) with the day change percent, day volume in shortened form (e.g. 12.4M), and the notes field if present.
- A separate 'Alerts' section listing only tickers whose close >= target_above or close <= target_below from the watchlist. For each alert, show ticker, close, which threshold it crossed, and the threshold value. Omit the section entirely if there are no alerts.
Keep the formatting tight (one row per ticker, no blank padding lines, no em dashes). Use periods or commas instead of em dashes anywhere in the message. The whole digest should fit comfortably without a 'See more' truncation in Slack.
Inputs I should be able to configure: the Google Sheets spreadsheet ID, the watchlist tab name (default 'watchlist'), the history tab name (default 'history'), the Slack channel (default '#markets'), the RapidAPI host for the finance API, and the cron timezone (default America/New_York).
Additional information
What does this prompt do?
- Pulls your watchlist (ticker, upper target, lower target, notes) from a Google Sheets tab so you stay in control of which symbols are tracked.
- Fetches the close price, day change, day volume, and 52-week high/low for every ticker right after the U.S. market closes.
- Logs one row per ticker per day to a history tab in the same spreadsheet so you can chart trends over time.
- Posts a single tidy Slack message to your markets channel with one row per ticker and a separate alerts section that calls out anything that crossed your target prices.
What do I need to use this?
- A RapidAPI account with an active subscription to a real-time finance API on the Hub (for example, Real-Time Finance Data or YH Finance).
- A Google account with edit access to a spreadsheet that has a watchlist tab and a history tab.
- A Slack workspace and the name of the channel where the daily digest should land (for example, #markets).
How can I customize it?
- Change the schedule. The default is 4:15pm ET on weekdays, but you can move it earlier or later, or run it twice a day for pre-market and post-market.
- Adjust your watchlist anytime by editing the spreadsheet. Add or remove tickers, change the upper and lower target prices, or add notes that show up next to each row in Slack.
- Pick a different finance API on RapidAPI if your current one runs out of quota or you want richer fields like analyst targets or option volume.
- Change the destination. Post to a different Slack channel, send a direct message to yourself, or route alerts-only messages to a separate channel.
Frequently asked questions
Do I need to pay for a finance data API?
Can I track non-U.S. stocks, crypto, or ETFs?
What happens when a ticker crosses one of my target prices?
How do I change which Slack channel it posts to?
Will the history tab fill up forever?
Get your watchlist in Slack before you close your laptop.
Connect Google Sheets, Slack, and a finance API on RapidAPI once, and Geni delivers a close-of-day digest every weekday at 4:15pm ET.