Monday morning insider buying digest for your watchlist
Every Monday at 8am ET, scan your stock watchlist for cluster insider buying and post a ranked digest in Slack.
Build me an agent workflow that runs every Monday at 8:00am America/New_York on a cron trigger and posts a weekly insider buying digest for the stocks on my watchlist.
Inputs the workflow needs (make these configurable, not hardcoded): a Google Sheets spreadsheet ID, the watchlist tab name and A1 range (default to the first column of a tab called 'Watchlist'), and the Slack channel ID to post the digest in.
Step 1. Read the watchlist. Use the Google Sheets 'Get Values' operation on the configured range to pull the list of ticker symbols. Skip blank rows and a header row if present. Deduplicate and uppercase the tickers.
Step 2. For each ticker, call the Financial Research 'Get Insider Trading' operation for the trailing 90 days. From the returned transactions, drop anything that is a 10b5-1 planned sale, a tax withholding, an automatic exercise, or any non-open-market disposition. Only keep discretionary open-market transactions, separated into buys and sells.
Step 3. Rank each ticker using the rules equity analysts actually use. (a) Cluster buy: three or more independent insiders made open-market purchases inside the same rolling 30-day window. Count distinct insider names, not transactions. (b) High-conviction officer buy: a CEO or CFO purchase whose dollar value exceeds one year of that officer's base salary (use a reasonable estimate from the Get Company Profile data if base salary isn't directly available, and note the assumption). (c) Total open-market buy dollar volume across all insiders in the 90-day window. Tickers that hit (a) or (b) go in the 'High signal' section first, ordered by dollar volume. Everything else with non-trivial buying goes in a 'Notable activity' section. Tickers with no meaningful activity are omitted, not padded.
Step 4. For every ticker that makes either section, also call Financial Research 'Get Company Profile' so the digest can include sector and market cap alongside the signal.
Step 5. Draft a Slack-formatted digest in mrkdwn (Slack flavored, so *bold* not **bold**). One bullet per ticker with this shape: ticker and company name, sector, market cap, the cluster shape (e.g. '4 insiders bought $2.1M between Apr 12 and May 6'), any CEO or CFO standout, and a single one-line interpretation of what the buying pattern suggests. Lead with the High signal section, then Notable activity. If neither section has anything, post a short 'No notable insider buying on your watchlist this week' message instead of padding.
Step 6. Post the digest to the configured Slack channel using the Slack 'Send a Message' operation. Use a thread-friendly format so a teammate can reply with questions in-channel.
Other requirements. Be resilient to individual ticker failures: if 'Get Insider Trading' errors on one symbol, log it, skip it, and continue with the rest. Don't post if the entire run failed; surface the error instead. Keep the digest tight; if more than ten tickers qualify for High signal, keep the top ten by dollar volume and append a 'plus N more' line.
Additional information
What does this prompt do?
- Reads your watchlist tickers from a Google Sheets tab so the names you actually care about stay in one place.
- Pulls the last 90 days of insider trading for each ticker and flags cluster buys, oversized CEO or CFO purchases, and total dollar volume.
- Strips out pre-scheduled 10b5-1 sales and tax-withholding transactions so only meaningful signals end up in the digest.
- Posts a prioritized Monday morning summary to your Slack channel with sector and market cap context for the top names.
What do I need to use this?
- A Google Sheets watchlist with one ticker symbol per row on a named tab.
- A Slack workspace and the channel you want the digest posted to.
- A General Input account. Insider transaction and company profile data are included, so no paid market data subscription is required.
How can I customize it?
- Change the schedule from Monday 8am ET to whatever cadence your team prefers, or run it twice a week.
- Swap the Slack channel for a different one, or send the digest as a direct message instead.
- Tune the ranking rules to match your shop's playbook, for example raising the cluster threshold from three insiders to four or changing the CEO and CFO size cutoff.
Frequently asked questions
Where does the insider data come from?
How does the digest decide what counts as a real signal?
Why does it ignore so many insider sales?
Can I track names that aren't in my watchlist?
What if there's no notable insider activity that week?
Stop doing the Monday morning Form 4 sweep by hand.
Connect Google Sheets and Slack once, and Geni posts the insider buying signals on your watchlist every Monday at 8am ET.