Investment Intelligence Dashboard
Problem
The client had an investment portfolio scattered across stocks, funds, real estate bonds, and several brokers, with the source data locked inside financial PDFs and spreadsheets. There was no easy way to see total performance, drill into categories, or ask questions across the whole portfolio. The data needed to be standardized and queryable before any of that was possible.
Approach
The core problem was extraction. Financial documents come in many shapes, so the system first classifies each incoming file by type, then decides how to pull the right information from it. All of that classification runs on Claude. Once extracted, data gets standardized, categorized, and written to a database structured for fast querying and dashboard rendering. I split the work into ingestion and a nightly automation layer so the dashboard stays current without manual upkeep.
What I shipped
An investment intelligence dashboard backed by a Supabase database. The ingestion pipeline classifies PDFs and spreadsheets, extracts and standardizes the data, and stores it (over 200 documents ingested so far). A nightly job does three things: scans the client's email for finance-related documents from the prior day and auto-ingests any attached PDF, or flags it in the dashboard for manual upload when the file sits behind a login or 2FA; checks every holding against preset criteria to flag what's underwater, doing well, going stale, or needs attention; and queries live stock prices to compare public holdings against their cost basis. The front end shows total profit and loss plus category breakdowns by investment type and broker, kept high level by design. Underneath sits an AI chatbot for deep queries across the full portfolio in real time. It's behind authentication, works on computer and phone, and is structured for future custom features.
Outcome
The client gets an always-current view of total portfolio performance with granular breakdowns, plus a chatbot that answers any question against live data. The nightly automation keeps the dataset fresh on its own, with humans only stepping in for documents locked behind authentication.