Point it at any company. Know everything.
Beacon is a real-time competitive intelligence engine that monitors SEC filings, news, patents, and hiring signals for any public company — then classifies events by impact and generates executive intelligence briefs. Built entirely on free, public APIs with zero authentication required.
$ python main.py brief TSLA --days 30
Scanning Tesla, Inc. (TSLA)...
[sec] Found 12 events
[news] Found 28 events
[patent] Found 4 events
[jobs] Found 3 events
# Beacon Intelligence Brief — Tesla, Inc. (TSLA)
## Executive Summary
47 events detected. 3 high-impact events require attention.
- 🔴 TSLA — 8-K: CEO Compensation Update
- 🔴 Tesla Acquires Battery Startup for $2.1B
- 🔴 Tesla Announces 4,000 Layoffs in Austin Plant
┌──────────────────────┐
│ main.py │
│ CLI + Orchestrator │
└──────────┬───────────┘
│
┌──────────┴───────────┐
│ asyncio.gather() │
│ (parallel execution) │
└──┬────┬────┬────┬────┘
│ │ │ │
┌────────────┘ │ │ └────────────┐
│ │ │ │
┌───────▼──────┐ ┌──────▼───┐ ┌──────▼───┐ ┌──▼───────────┐
│ SEC Monitor │ │ News │ │ Patent │ │ Jobs │
│ EDGAR API │ │ 4x RSS │ │ USPTO │ │ Hiring RSS │
└───────┬──────┘ └──────┬───┘ └──────┬───┘ └──┬───────────┘
│ │ │ │
└────────┬───────┴─────┬──────┘──────────┘
│ │
┌──────▼──────┐ ┌───▼──────────────┐
│ detector │ │ Two-stage │
│ .py │ │ classification │
└──────┬──────┘ │ + escalation │
│ └──────────────────┘
┌──────▼──────┐
│ brief.py │
│ Markdown │
│ report │
└─────────────┘
All four monitors execute concurrently. Events pass through a two-stage classification pipeline — first by source-specific rules (form type, keyword matching), then by cross-cutting escalation patterns (M&A, bankruptcy, leadership changes). Output is a prioritized Markdown brief.
| Source | API | Signals Detected | Auth |
|---|---|---|---|
| SEC EDGAR | EDGAR Full-Text Submissions | 8-K material events, 10-K/10-Q financials, S-1 IPOs, Form 4 insider trades, SC 13D activist stakes | None |
| News | Google News RSS + GlobeNewswire + BusinessWire + PRNewswire | M&A, earnings, leadership changes, lawsuits, partnerships, product launches | None |
| Patents | USPTO PatentsView | New grants, AI/ML filings, biotech IP, technology trend signals | None |
| Jobs | Google News RSS (hiring keywords) | Hiring surges, AI team buildout, office expansion, layoffs | None |
Events are scored on two dimensions, then sorted by priority:
Category Impact
───────────────────────── ──────────────────────
MATERIAL 8-K, M&A, earnings, 🔴 HIGH Act now
lawsuits, leadership
STRATEGIC Patents, hiring, 🟡 MEDIUM Worth reviewing
partnerships, launches
ROUTINE 10-Q, press releases ⚪ LOW Background noise
Escalation rules can promote events upward (never downgrade). An innocuous news headline containing "acquisition" or "bankruptcy" gets escalated to MATERIAL/HIGH regardless of its original source classification.
# Install (single dependency)
pip install -r requirements.txt # just httpx
# Full scan — all sources, all events
python main.py scan TSLA
# Generate a Markdown intelligence brief
python main.py brief TSLA -o brief.md
# Query individual sources
python main.py filings TSLA --days 30
python main.py patents NVDA --days 90
python main.py news AAPL --days 7
# Continuous monitoring (scans every 60 min, alerts on HIGH events)
python main.py watch TSLA --interval 60Requires Python 3.12+. The only dependency is httpx for async HTTP.
Pre-configured companies live in companies.json. Add any public company:
{
"name": "Moderna, Inc.",
"ticker": "MRNA",
"cik": "0001682852",
"aliases": ["Moderna"],
"sector": "Biotechnology"
}Find CIK numbers at SEC EDGAR Company Search. Unknown tickers still work — Beacon creates a stub and scans news/patents — but adding the CIK unlocks SEC filing data.
beacon/
├── main.py CLI interface + async orchestration
├── models.py Event, Company dataclasses + enums
├── detector.py Two-stage classification + escalation rules
├── brief.py Markdown intelligence brief generator
├── companies.json Pre-configured company database
├── requirements.txt Dependencies (httpx >= 0.27)
└── monitors/
├── sec_monitor.py SEC EDGAR full-text submissions
├── news_monitor.py Multi-feed RSS aggregation + dedup
├── patent_monitor.py USPTO PatentsView API
└── jobs_monitor.py Hiring signal detection via news
- Zero API keys — Every data source is a free, public API. No rate-limit tokens, no OAuth, no vendor lock-in.
- Single dependency —
httpxhandles async HTTP. Everything else is Python standard library (asyncio,dataclasses,xml.etree,argparse). - Rule-based classification — Deterministic, auditable, no model inference cost. Escalation rules are readable Python, not a black box.
- Async-first — All monitors run in parallel via
asyncio.gather(). A full four-source scan completes in the time of the slowest API call. - Markdown output — Briefs are plain Markdown — readable in terminal, pasteable into Slack, renderable anywhere.
- LLM-powered summarization (Claude API for executive summaries)
- Slack/email alerting for high-impact events
- Historical trend analysis and change detection
- Sentiment scoring on news articles
- Web dashboard with real-time updates
Kyle Stringfellow — Environmental consultant building multi-source intelligence tools. GitHub