Skip to content

kstring99/beacon

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Beacon

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

How It Works

                          ┌──────────────────────┐
                          │      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.


Data Sources

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

Event Classification

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.


Quick Start

# 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 60

Requires Python 3.12+. The only dependency is httpx for async HTTP.


Adding Companies

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.


Project Structure

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

Design Decisions

  • Zero API keys — Every data source is a free, public API. No rate-limit tokens, no OAuth, no vendor lock-in.
  • Single dependencyhttpx handles 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.

Roadmap

  • 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

Author

Kyle Stringfellow — Environmental consultant building multi-source intelligence tools. GitHub

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors