FinSight
Chrome extension that transforms dense SEC filings into actionable insights — inline definitions, AI summaries, red flags, and comparative analysis for retail investors.
The Problem
Retail investors have access to the same information as hedge funds — SEC filings (10-K, 10-Q, 8-K, proxy statements) are public. But the information is locked inside 100–300 page documents written in legal and accounting jargon.
A typical investor will try to read the filing, hit dense sections about “deferred tax liabilities” and “material weaknesses,” and give up. Meanwhile, professional investors with $30K/year terminal subscriptions have tools that auto-parse these. The technology exists — large language models can now summarize and extract facts reliably. But there’s no lightweight, affordable tool meeting retail investors where they already read: in the browser.
I built FinSight to fix this.
The Approach
FinSight is a Chrome extension (Manifest V3) with three components:
Service Worker (Backend) — Handles all API calls to Claude for summaries, explanations, and analysis. Manages IndexedDB cache (7-day TTL) to avoid re-analyzing the same filing. Orchestrates message passing between content scripts and the side panel. Implements rate limiting (SEC EDGAR imposes 10 req/sec — I respect it).
Content Script (Page Injection) — Detects SEC EDGAR filing pages by URL and page structure. Scans the text for ~500 financial terms (goodwill, deferred revenue, EPS, etc.). Highlights terms with hover tooltips (instant definitions from local dictionary — no API call). Injects floating action buttons (“Analyze this section”). Extracts section text and sends it to the service worker for Claude analysis.
Side Panel UI (React) — Shows filing metadata (company, ticker, filing type, date). Displays AI-generated summary with key takeaways, financial highlights, and top 3 risks. Shows comparative analysis tab (prior filing changes). Provides term glossary (searchable definitions). Caches all results locally.
Key Decisions & Trade-offs
User API keys vs. backend proxy — Required users to enter their own Anthropic API key (encrypted locally). Higher friction, but no backend infrastructure needed. Users control costs. This is phase 1 — a paid tier with a proxy backend comes later.
Local term dictionary vs. AI-powered definitions — Built a bundled JSON with 500+ financial terms (instant, zero API cost), but allow users to click “Explain with AI” for terms not in the dictionary. 80% of term lookups are common ones (revenue, cash flow, debt). Instant definitions create delight; edge cases use the API.
Chrome MV3 over legacy MV2 — Committed to Manifest V3 despite it being newer and less proven. MV2 is deprecated as of 2025. Better to build on the future platform. Also, MV3 forced cleaner architecture — no persistent background state.
IndexedDB for caching — All caches stored locally. Doesn’t sync across devices, but privacy first. Users don’t need servers knowing which filings they read.
Results & Impact
Users can install FinSight, navigate to any SEC filing on EDGAR, and get a side panel with the filing summary within 10 seconds. Hover over financial terms for instant definitions. Click “Analyze Risk Factors” for AI-powered red flags (going-concern language, auditor changes, related-party transactions). Click “Compare” to see how metrics changed vs. prior filing.
This demonstrates full-stack product thinking. I didn’t just code it — I validated the problem, designed the UX, made tech choices for users (local caching, user API keys), and built for extensibility.
What I Learned
Chrome extension APIs are powerful but byzantine. The permission model, message passing, storage APIs — all work, but the mental model is different from normal web development. Worth learning deeply.
Financial domain requires precision. Unlike general-purpose LLMs, financial analysis needs calibration. “Profit increased 15%” vs. “Profit increased 150 basis points” are different statements. Domain knowledge shapes architecture.
Caching is a feature, not an implementation detail. Users don’t think “I should cache this.” But when they get instant results, they feel fast. IndexedDB caching was the right bet.
Monetization doesn’t contradict user value. A free tier (5 filings/month) is enough for casual investors to find value and upgrade if they want more. You can be commercial and ethical simultaneously.