Daily small-cap stock screener log in Google Sheets
Every weekday at 9:30am ET, run your stock screen, log every candidate to Google Sheets, and post a one-line summary in Slack.
Build a code workflow that runs every weekday at 9:30am ET (cron trigger, US market open) and produces a longitudinal stock screener log in Google Sheets plus a one-line summary in Slack. Every step is a known structured operation, no model reasoning.
Expose these as workflow inputs so users can tune the screen without editing code: market cap minimum (default 100000000), market cap maximum (default 2000000000), allowed exchanges (default ["NYSE", "NASDAQ"]), sectors to exclude (default ["Healthcare"] or a more specific biotech-equivalent value the service accepts), minimum average daily volume (default 250000), Google Sheets spreadsheet id, sheet tab name (default "Screener Log"), Slack channel id or name for the summary post.
Step 1. Call Financial Research "Screen Stocks" with the screening inputs above. This returns the candidate ticker list for the day.
Step 2. For each returned ticker, call Financial Research "Get Company Profile" to enrich with company name, sector, industry, market cap, CEO, and last price. Run these in a bounded concurrency loop so the workflow does not stall on long lists.
Step 3. Append one row per candidate to the configured Google Sheets tab via "Append Values". Row columns in order: run_date (ISO date in America/New_York), ticker, company_name, sector, industry, market_cap, ceo, last_price. If the sheet is empty on first run, write the header row first. Use USER_ENTERED so numbers and dates render correctly in the UI.
Step 4. Post a one-line summary to Slack via "Send a Message" to the configured channel. Format: "Screener returned N new candidates on {date}; top 3 by market cap: TICKER ($X.XB), TICKER ($X.XB), TICKER ($X.XB). Log: <sheet_url>". Construct the sheet URL from the spreadsheet id. If N is zero, post "Screener returned 0 candidates on {date}. Log: <sheet_url>" instead. Use Slack mrkdwn link syntax <url|text> for the sheet link.
Implementation notes for the workflow author. Use the financial-research platform credentials (server-injected, no user setup). Use the user's connected Google Sheets and Slack OAuth credentials. Keep the screen criteria in a single inputs block at the top of the workflow so they are obvious to tune. Do not add reasoning, agents, or model calls; this workflow is intentionally deterministic CRUD.
Additional information
What does this prompt do?
- Runs your screening criteria right at the US market open every weekday and pulls the day's candidate tickers.
- Enriches each candidate with company name, sector, industry, market cap, CEO, and last price so the log is readable without leaving the sheet.
- Appends one row per candidate to your Google Sheet so you build a longitudinal record of what surfaced each day.
- Posts a one-line summary in Slack with the count of new candidates, the top three by market cap, and a link to the sheet.
What do I need to use this?
- A Google account with edit access to the spreadsheet you want to log into.
- A Slack workspace and a channel or DM where the morning summary should land.
- Your screening criteria, such as market cap range, exchanges, sectors to exclude, and a minimum average volume.
How can I customize it?
- Adjust the screening criteria. Market cap min and max, allowed exchanges, sectors to exclude, and minimum average daily volume are all workflow inputs.
- Point it at any spreadsheet and tab. The spreadsheet id and sheet name are configurable, so you can run separate logs for separate strategies.
- Change the schedule or the Slack destination. Move the run time, switch to a different channel, or send the summary as a DM instead.
Frequently asked questions
What kind of investor is this built for?
Can I run more than one screen?
Does the workflow give financial advice or pick stocks?
What happens if the screen returns no candidates one day?
Will it run on holidays when the US market is closed?
Stop rebuilding your screener by hand every morning.
Connect Google Sheets and Slack once, set your criteria, and Geni runs the screen and logs the results every weekday at the open.