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.

Agentic Task
Financial ResearchGoogle SheetsSlackFinanceOperationsDaily DigestsResearch & MonitoringAI Reports

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?
It comes from the Financial Research integration that ships with General Input, which sources insider transactions directly from SEC filings. You don't need a separate paid data feed.
How does the digest decide what counts as a real signal?
It uses the cluster buying rule that equity analysts rely on. Three or more independent insiders buying open market shares inside the same 30-day window gets surfaced first. CEO or CFO purchases worth more than one year of base salary are flagged separately as high conviction.
Why does it ignore so many insider sales?
Most insider sales are pre-scheduled under 10b5-1 plans or are tax withholdings on vested equity. They aren't predictive of company outlook, so the agent drops them before ranking. The digest focuses on discretionary open market buying.
Can I track names that aren't in my watchlist?
Yes. Add the tickers to your Google Sheets watchlist tab and they show up in next Monday's digest. The agent reads the sheet fresh on every run.
What if there's no notable insider activity that week?
The digest says so plainly instead of padding with low-signal names. Quiet weeks stay short and you keep trust in the alert.

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.