Daily account watchlist alerts from the web into Slack
Every weekday at 9am ET, scan your strategic accounts for funding, leadership, product, layoffs, and lawsuit news, then post each material signal to Slack.
Build an agent workflow that runs every weekday at 9am America/New_York on a cron trigger and surfaces material news about my strategic accounts.
Step 1. Use Airtable List Records to read my Watchlist table. Filter to rows where Active is true. For each row, capture: record id, account name, website or domain, last signal type, last signal headline, last signal source URL, and last signal timestamp.
Step 2. For each active account, use Parallel Search with the account name and domain as the objective, scoped to the last 24 hours, to find candidate news. Keep the top ranked results with their URLs and excerpts.
Step 3. For each account that has candidate results, run Parallel Create Task Run with a structured output schema to classify and summarize signals. The schema should return an array of signals where each signal has: signal_type (one of funding, leadership_change, product_launch, layoffs, lawsuit, notable_press), headline (one short sentence), summary (two sentences max), source_url, source_published_at, and is_material (boolean). Pass the search results from Step 2 into the task input. Discard anything where is_material is false.
Step 4. De-duplicate against the Airtable row. Skip any signal where the source_url matches the row's last signal source URL, or where the headline is substantially the same as the row's last signal headline. If after dedupe there are no material signals for an account, skip it silently and do not post anything.
Step 5. For every remaining material signal, use Slack Send a Message to post one message per signal to the #account-intel channel. Format the message as a short structured alert with the account name, the signal type as a label, the headline, a one or two sentence summary, and the source URL on its own line so Slack unfurls it.
Step 6. After posting, use Airtable Update Record on that account's row to write back the latest signal type, headline, source URL, and timestamp. If multiple material signals fire for one account in a single run, store the highest-priority one (funding > leadership_change > lawsuit > layoffs > product_launch > notable_press) so the next run's dedupe check is meaningful.
Behavior rules: never post about accounts with no material updates, never re-post a headline that already exists on the Airtable row, never invent details that are not in a cited source, and always include the source URL in both the Slack message and the Airtable writeback. If Parallel returns no usable results for an account, skip silently. Treat the Airtable row as the source of truth for what has already been alerted.
Additional information
What does this prompt do?
- Reads your strategic account watchlist from Airtable each morning and only looks at rows you have marked active.
- Scans the web for the last 24 hours of news on each account and classifies anything material into funding, leadership, product, layoffs, lawsuit, or notable press.
- Posts a structured alert in your #account-intel Slack channel for every material signal, with a one-line summary and a source link.
- Writes the latest signal back to the account row in Airtable so you have a running log and so the same headline never fires twice.
What do I need to use this?
- An Airtable base with a Watchlist table that includes an account name, a website or domain, an active flag, and fields for the last signal type, headline, source URL, and timestamp.
- A Slack workspace and a channel like #account-intel where the alerts should land.
- A Parallel account so the agent can search the web and classify the signals it finds.
How can I customize it?
- Change the run time or the days of the week. Many teams prefer 8am ET or Monday through Thursday only.
- Edit the list of signal types you care about. You can drop layoffs and lawsuits, or add new ones like partnerships or executive hires.
- Point the alerts at a different Slack channel, route them by account owner using a DM, or tag the AE listed on the Airtable row.
Frequently asked questions
How does it avoid alerting me twice about the same news?
What counts as a material update?
Will it post for accounts that had nothing happen?
Can I run this for more than one team or channel?
What if I want it weekly instead of daily?
Stop refreshing news tabs for your top accounts.
Connect Airtable, Parallel, and Slack once, and Geni runs this watch every weekday at 9am.