See llms.txt for all machine-readable content.

Back to Templates

Send daily federal grant digests to Slack and Google Sheets with SpecStream

Quick overview

This workflow runs every morning at 7:00 to query SpecStream for open federal grants matching your field, appends newly found grants to a Google Sheets log, and posts a single Slack message listing the new opportunities with links, funders, and deadlines.

How it works

  1. Runs every day at 7:00 on a schedule.
  2. Reads your search parameters and loads the existing grant log from Google Sheets to determine whether to start a new SpecStream search or extend the most recent results list.
  3. On the first run, SpecStream reads the search request; on later runs, it reopens the previous SpecStream list so only new grants come back.
  4. Requests a SpecStream price quote for the run and stops with an error if the maximum cost exceeds your configured spending limit.
  5. Approves the quote so SpecStream starts the run, then checks every 30 seconds until the run finishes.
  6. Fetches all result rows from SpecStream, normalizes them into one item per grant (including the official source link and list ID), and appends them to Google Sheets.
  7. Formats a single Slack message containing one bullet per new grant and posts it to your chosen Slack channel.

Setup

  1. Create a SpecStream API key and add it to an n8n HTTP Bearer Auth credential used by the SpecStream HTTP Request steps.
  2. Connect Google Sheets credentials and select the target spreadsheet and sheet for both reading and appending the grant log.
  3. Connect Slack credentials and choose the channel to post the daily grant digest to.
  4. Update the search text, result count, and maximum spend (in cents) in the search parameters to match your field and budget.

Requirements

  • A SpecStream account and API key (specstream.ai, under Agents & API). New accounts get $10 of work free, no card.
  • Google Sheets and Slack credentials in n8n. The workflow uses only core nodes, so it runs on n8n Cloud and self-hosted n8n.

Customization

  • Change the request in Your grant search, for example "Open federal grants for rural broadband" or "Open federal grants that tribes can apply for". Use a new empty sheet for each field.
  • Run it weekly instead of daily by changing the schedule trigger to Monday morning.
  • Send the digest by email: replace Post to Slack with a Gmail or Outlook node and use the text field as the body.

Additional info

Each grant costs 10¢, and the price shows before anything runs. You pay only for new grants, so a morning with nothing new costs nothing. The default maximum is $2.50 a morning.