All projects
Active

Internal Trading Intelligence Tool

An insider-style market intelligence app that combines scheduled market data, shareholder and insider tracking, adjacent-company discovery, LLM summaries, and daily audio digests.

Why it exists

The goal was to build a market intelligence tool that does more than show a watchlist. I wanted something closer to an internal analyst desk: it watches tickers, follows the surrounding universe, tracks ownership movement, turns noisy market updates into structured context, and makes the daily review easier to actually keep up with.

Overview

This is an internal trading intelligence app. It tracks tickers, pulls market data on a schedule, follows news and market context, watches ownership movement, and uses an LLM layer to turn that raw activity into summaries, narratives, ideas, and daily digests.

The interesting part is not just showing prices. Lots of apps do that. This is more about building a market radar. If a company matters, the tool should also care about what is happening around it: related companies, holders, insiders, commodities, benchmarks, sectors, and the news themes that connect them.

It is built like a real internal product. There is a backend API, typed frontend, migrations, auth, scheduled jobs, data services, LLM task runs, and a dashboard layer for actually working through the information.

How It Works

At a high level, the app has four jobs:

  1. Keep a clean watch universe of tickers and market anchors.
  2. Pull structured data on prices, fundamentals, news, holders, insiders, benchmarks, and commodities.
  3. Discover adjacent companies and investors that may matter before they are obvious.
  4. Summarise the signal into something a human can review quickly, including daily audio digests.

The backend owns the data and intelligence layer. Scheduled jobs pull market data, refresh news, update signal summaries, and run bounded LLM tasks. The frontend gives those workflows a clean surface: news, signals, ideas, universe detail, and daily digest views.

The LLM part is not a random chatbot bolted onto the side. It is task-based. Each job has a specific input, a known output shape, and a place where the result is stored. That keeps the system useful without turning it into a free-form guessing machine.

Market Intelligence Data Web

The app is designed as a connected data web, not just a list of stocks.

For a tracked ticker, the system can look at:

  • price history and daily movement
  • financials, estimates, earnings, dividends, and splits
  • news articles linked back to tickers and themes
  • shareholder snapshots and institutional holder movement
  • insider transactions
  • market indices and commodities as context
  • supply-chain or relationship links where known

That gives the app a richer view of why something may matter. A price move on its own is just a number. A price move connected to holder changes, insider activity, related news, and adjacent companies starts to become a story worth reviewing.

Adjacent Discovery

One of the cooler pieces is universe adjacency discovery.

The tool is not limited to the tickers that were manually added at the start. As news and market data come in, related symbols can be discovered and added to a broader universe. Some stay untracked, some sit in a watching state, and some can later be promoted into full coverage.

That matters because opportunities often show up around the thing you are already watching. A supplier moves. A customer gets hit. A competitor gets mentioned. A major investor appears somewhere unexpected. The system is built to notice those edges and preserve why it noticed them.

The point is not to automatically trade from that. The point is to make second-order market movement easier to see.

LLM Orchestration

The LLM system is built around bounded intelligence tasks:

  • news article enrichment
  • daily digest generation
  • ticker signal narrative refresh
  • idea generation
  • audio-ready digest scripts

Each task gets structured context from the app instead of being asked to reason from loose text. For example, a digest can use enriched news, latest signal summaries, holder or insider changes, and benchmark context. The output is persisted with metadata so the system can track what ran, what model produced it, and whether it succeeded.

That architecture is important. LLMs are great at turning a lot of structured context into something readable. They are not the source of truth. The data layer stays in charge, and the LLM helps make that data easier to understand.

Daily Audio Digests

The daily digest flow is there because reading market updates every day is easy to skip.

The app can generate a text summary and an audio-ready version of the same review. That makes the daily habit lighter: listen to the important movements, then open the dashboard only for the pieces that need a closer look.

It is a small feature on the surface, but it changes the shape of the workflow. The system is not just collecting information. It is helping turn market review into something repeatable.

What Makes It Cool

Most trading tools are either charts, spreadsheets, or news feeds. This is closer to an internal market intelligence desk.

It has the normal app pieces: API, frontend, scheduler, auth, migrations, tests. But the real value is how the layers connect. Shareholder movement can sit next to insider activity. Related companies can be discovered from the surrounding data. News can be enriched into themes and sentiment. Daily summaries can turn all of that into a plain-language briefing.

That is the kind of system that makes market research feel less scattered.

Current Shape

The tool covers ticker tracking, scheduled market data pulls, market-intelligence data modeling, LLM task orchestration, signal narratives, idea generation, daily text and audio digest workflows, holder and insider tracking, and universe adjacency discovery.

The direction from here is better ranking, better provenance, and better review flows so the tool keeps finding useful market context without becoming noisy.