Log SEC EDGAR filings to a Notion database
A SEC EDGAR + Notion agent flow
If you track a handful of public companies, the work isn't reading filings, it's noticing they exist. An 8-K drops on EDGAR, you find out a week later from a news summary, and by then the material event is old. This recipe gives an analyst a running watchlist log: your agent reads each tracked company's recent filings and writes a page into a Notion database, one row per filing, so the team has a dated, searchable record without anyone refreshing EDGAR. It calls get_recent_filings for the CIK and form types you care about, diffs the accession numbers against what's already logged, and for each new filing calls notion-create-pages with the company, form type, filing date, and the EDGAR link as page properties. EDGAR answers on request, so the agent runs on a cadence, a few times a day, and only new filings become pages.
The flow
get_recent_filingsLists a company's recent filings, filterable by form type and date range.
notion-create-pagesCreates one or more Notion pages with specified properties and content.
Step by step
- Set the watchlist and form types
Give the agent the tickers or CIKs you follow and the form types that matter, 8-K for material events, 10-Q and 10-K for periodicals, Form 4 for insider trades. Resolve tickers to CIKs once with get_cik_by_ticker.
- Read recent filings
For each company the agent calls get_recent_filings filtered to your form types and a recent date range. It gets back each filing's form type, filing date, and accession number.
- Diff against the log
Compare the returned accession numbers to the ones already in the Notion database. The accession number is unique per filing, so it's the clean key for deciding what's new since the last pass.
- Write a page per new filing
For each new filing the agent calls notion-create-pages in your database with properties for company, form type, filing date, and a link to the filing on EDGAR. For 8-Ks you can run analyze_8k first and drop the summarized events into the page body.
Tell your agent
Three times a day, get recent SEC EDGAR filings of form types 8-K, 10-Q, and 10-K for the companies on my watchlist over the last seven days. For any filing whose accession number isn't already in the 'Filings' Notion database, create a page with the company name, form type, filing date, and a link to the filing. For 8-Ks, summarize the material events into the page body.
Setup
This flow needs both servers connected to your agent. Follow each install guide:
Worth knowing
- notion-create-pages writes into a parent database whose schema you define up front. Match each property to the database's type, a date for filing date, a URL for the EDGAR link, or the page is created without those fields populated.
- get_recent_filings is per company, so the agent loops over the watchlist and makes one call each. EDGAR is rate-sensitive and expects a descriptive User-Agent, so keep the watchlist reasonable and space the calls rather than hammering in parallel.
- Dedupe on the accession number, not the filing date or form type. A company can file two of the same form type in a day, and only the accession number distinguishes them.
Questions
- Can it summarize the filing, not just link it?
- For 8-Ks, yes. The agent can call analyze_8k to surface the material events and write that summary into the Notion page body. For long 10-Ks, pull specific sections with get_filing_sections rather than dropping the whole document in.
- Does it catch a filing the second it's posted?
- No. EDGAR answers when the agent asks, it doesn't push. The log trails by your polling interval, so run it a few times a day; for material-event watching you can tighten that to hourly during earnings season.