Competitor 10-K risk factor diff to Notion and Slack
Catch every new competitor annual report at 6am, diff the Risk Factors against last year, and brief your team in Notion and Slack.
Build me an agent workflow that watches a list of competitor public companies for newly filed 10-K (or 20-F for foreign issuers) annual reports and produces a strategic brief on how each competitor's Risk Factors section changed year over year.
Trigger: cron, daily at 6:00am US Eastern time. Most annual reports hit EDGAR overnight, so a morning sweep catches the prior trading day's filings.
Inputs the agent should let me configure on setup: (1) a list of competitor CIKs or tickers (the agent should resolve tickers to CIKs once and remember them), (2) the Notion database ID for my Competitive Intel database, and (3) the Slack channel ID (default #competitive-intel).
Each run, for every configured competitor, the agent should:
1. Use SEC EDGAR's Get Company Submissions to pull recent filings for that CIK. Identify any 10-K or 20-F filed since the last successful run for that competitor. If none, skip that competitor silently.
2. When a new 10-K (or 20-F) is found, fetch the primary document for that filing and also locate and fetch the prior year's 10-K/20-F from the same company so it can compare year over year. The filing URL pattern is documented in the sec-edgar common_docs; follow it to construct the document URL from the accession number and primary document filename.
3. Isolate Item 1A 'Risk Factors' in both documents (for 20-F use the equivalent Risk Factors item). Diff them and classify each change as: added risk, removed risk, or materially rewritten risk. Ignore boilerplate reordering and cosmetic edits.
4. Write a short written brief (roughly 300 to 600 words) explaining what the changes likely signal about the business. Call out things like new competitors named by name, new geographies entered or exited, supply chain or concentration shifts, regulatory or litigation exposure, and AI / cybersecurity callouts. Lead with a one-line takeaway.
5. Use Notion's Create a Page to add the brief as a new page in my Competitive Intel database. Populate database properties for Company, Ticker, Filing Date, Form Type (10-K vs 20-F), and a link back to the filing on EDGAR. The brief itself goes in the page body, organized as: Takeaway, Added Risks, Removed Risks, Materially Rewritten Risks, and What This Likely Signals.
6. Use Slack's Send a Message to post a digest to #competitive-intel summarizing the run. Format: one bullet per competitor that filed, with company name, ticker, the single most notable risk-factor change, and a link to the Notion page. If multiple competitors filed in the same run, post one combined digest, not one message per filing.
If no competitor has a new 10-K or 20-F that run, exit silently. Do not post 'nothing today' messages to Slack.
Persistence requirement: the agent needs to remember, per competitor, the accession number of the most recently briefed filing, so the same 10-K is never briefed twice across runs.
Tone for the brief: analyst-style, concrete, no hedging adverbs. Quote short phrases from the filing when they are the most efficient way to make a point. Always cite the form type and filing date at the top of the page.
Additional information
What does this prompt do?
- Watches a list of competitor companies you care about and notices the moment a new annual report is filed.
- Pulls this year's Risk Factors section and last year's version, then writes up what was added, dropped, or quietly rewritten.
- Turns those changes into a short strategic brief explaining what the shifts likely signal about the business.
- Files the brief in your Competitive Intel database in Notion and posts a digest in your Slack channel with the top three changes.
What do I need to use this?
- A list of the public competitors you want to track. The agent will look them up the first time you run it.
- A Notion workspace with a Competitive Intel database (or any database where briefs should land).
- A Slack workspace and a channel for the daily digest, like #competitive-intel.
How can I customize it?
- Change the watchlist of competitors at any time. Add a new ticker, drop one you stopped caring about.
- Adjust the time of day. Many teams move it to 7am or 8am local time instead of 6am ET.
- Swap the destination. Send the brief to a different Notion database, a different Slack channel, or email it to a distribution list.
Frequently asked questions
What's a 10-K risk factor diff and why does it matter?
Does this work for foreign competitors like European or Chinese companies?
What happens on days when no competitor files anything?
Can I run it more than once a day?
How does the agent know which Notion database to write to?
Stop reading 200-page annual reports to find the one paragraph that changed.
Connect SEC EDGAR, Notion, and Slack once, and Geni will brief you on every competitor's new risk disclosures the morning they file.