home / skills / openclaw / skills / sec-filing-watcher
This skill monitors SEC filings and delivers concise Telegram or Slack summaries via Clawdbot, helping you stay updated on new disclosures.
npx playbooks add skill openclaw/skills --skill sec-filing-watcherReview the files below or copy the command above to add this skill to your agents.
---
name: sec-filing-watcher
description: Monitor SEC EDGAR for new filings and get Telegram/Slack summaries via Clawdbot. Use when setting up SEC filing alerts, adding/removing tickers to monitor, configuring form types, starting/stopping the watcher, or troubleshooting filing notifications.
---
# SEC Filing Watcher
Monitors SEC EDGAR for new filings from a watchlist of tickers. When a new filing appears, notifies Clawdbot which fetches, summarizes, and sends to Telegram.
## Quick Setup
### 1. Create watchlist
```bash
cp assets/watchlist.example.json watchlist.json
# Edit watchlist.json with your tickers
```
### 2. Configure webhook
Edit `scripts/watcher.js` CONFIG section:
- `webhookUrl`: Your Clawdbot hooks URL (default: `http://localhost:18789/hooks/agent`)
- `webhookToken`: Your hook token (find in clawdbot.json under `hooks.token`)
### 3. Test run
```bash
node scripts/watcher.js
```
First run seeds existing filings (no notifications). Second run checks for new filings.
### 4. Schedule (every 15 min)
**macOS:**
```bash
cp assets/com.sec-watcher.plist ~/Library/LaunchAgents/
# Edit the plist to set correct paths
launchctl load ~/Library/LaunchAgents/com.sec-watcher.plist
```
**Linux:**
```bash
crontab -e
# Add: */15 * * * * /usr/bin/node /path/to/scripts/watcher.js >> /path/to/watcher.log 2>&1
```
## Managing Tickers
Add or remove tickers in `watchlist.json`:
```json
{
"tickers": ["AAPL", "MSFT", "TSLA"],
"formTypes": ["10-K", "10-Q", "8-K", "4"]
}
```
New tickers are auto-seeded (existing filings won't spam you).
See `references/form-types.md` for common SEC form types.
## Commands
**Check status:**
```bash
launchctl list | grep sec-watcher
```
**View logs:**
```bash
cat ~/clawd/sec-filing-watcher/watcher.log
```
**Stop:**
```bash
launchctl unload ~/Library/LaunchAgents/com.sec-watcher.plist
```
**Start:**
```bash
launchctl load ~/Library/LaunchAgents/com.sec-watcher.plist
```
**Manual run:**
```bash
node scripts/watcher.js
```
## Files
| File | Purpose |
|------|---------|
| `scripts/watcher.js` | Main watcher script |
| `watchlist.json` | Your tickers and form types |
| `state.json` | Tracks seen filings (auto-created) |
| `watcher.log` | Output log (if configured) |
## Troubleshooting
**No notifications:**
- Check `state.json` exists (first run seeds, second run notifies)
- Verify webhook URL and token in watcher.js CONFIG
- Check Clawdbot is running: `clawdbot status`
**SEC blocking requests:**
- Script uses proper User-Agent header
- If blocked, wait 10 minutes (SEC rate limit cooldown)
**Duplicate notifications:**
- Check `state.json` isn't corrupted
- Delete `state.json` to re-seed (will seed all existing filings again)
This skill monitors SEC EDGAR for new filings from a configurable list of tickers and pushes summaries to Clawdbot for delivery to Telegram or Slack. It seeds existing filings on first run and only notifies on subsequent new filings. The watcher is lightweight, runs on a schedule (cron or launchd), and stores seen filings in state.json to avoid duplicates.
The watcher polls EDGAR for configured tickers and form types, compares results to state.json, and posts new filings to a Clawdbot webhook with your webhook URL and token. Clawdbot fetches the filing, generates a summary, and delivers it to Telegram or Slack. You can run the script manually or schedule it every 15 minutes via cron (Linux) or launchd (macOS).
Why did I get no notifications after installing?
The first run seeds state.json and does not notify. Run the watcher a second time or wait for the scheduled run to see notifications for new filings.
I see duplicate notifications; what should I check?
Verify state.json is not corrupted. If needed delete state.json to re-seed (this will prevent immediate notifications for existing filings until new ones appear). Also confirm the webhook wasn't receiving retries from Clawdbot.