Documentation Index
Fetch the complete documentation index at: https://docs.secapi.ai/llms.txt
Use this file to discover all available pages before exploring further.
Build an SEC Filing Monitor Agent
Build an autonomous agent that checks for new 8-K filings every day and sends Slack notifications when companies on your watchlist file material events. This tutorial uses Claude Code skills and the OMNI Datastream CLI to create a fully automated filing monitor you can run on a schedule.What you will build
- A Claude Code skill that runs on a cron schedule
- Daily checks against the OMNI Datastream API for new 8-K filings
- Slack alerts with filing details for your watchlist companies
- A persistent state file to avoid duplicate notifications
Prerequisites
- An Omni Datastream API key (set as
OMNI_DATASTREAM_API_KEY) - Claude Code CLI installed
- A Slack workspace with an incoming webhook URL
- Node.js 18+ installed
Step 1 — Install the OMNI Datastream CLI
Install the CLI globally so your agent skill can call it directly.Step 2 — Create the project structure
Set up a directory for your agent skill and configuration files.watchlist.json:
Step 3 — Write the filing check logic
Createskill.js with the core logic that queries the OMNI Datastream API for recent 8-K filings.
Step 4 — Create the Claude Code skill wrapper
Create a.claude/skills/sec-monitor.md file so Claude Code can invoke this as a skill:
.claude/skills/sec-monitor.md:
Step 5 — Set up the cron schedule
Add a cron entry to run the skill daily. You can usecrontab on Linux/macOS or a systemd timer.
Step 6 — Test the agent
Run the skill manually to verify it works before enabling the schedule.Expected output
Step 7 — Add error handling and retries
For production use, wrap the runner with retry logic and error notifications.Next steps
- Expand form types: Add
10-K,10-Q,13F-HR,S-1, orDEF 14Ato catch more filing types. - Add filing content extraction: Use the
/v1/filings/{accession_number}/sections/{section_key}endpoint to pull specific sections and include a summary in the Slack message. - Multi-channel routing: Route different form types to different Slack channels (e.g., earnings to #research, proxy statements to #governance).
- Build a dashboard: Store filings in a database and build a web UI for browsing alerts.