Case study · Internal tooling

Growth cockpit

A dashboard in the terminal that pulls five systems into one screen. Press one key on any row and it opens an AI coding session that already knows what you were looking at.

RustAsync API clientsTerminal UIClaude Code
5systems on one screen
1keypress from a row to a working session
Parallelfetches, so a slow API does not hold the rest
Rustsingle binary, no install steps

Problem

The weekly review was eleven browser tabs.

CRM in one tab, the content queue in another, ads in a third, tasks in a fourth. Half the review was navigation. Worse, when something looked wrong, describing it to an AI assistant meant copying and pasting context out of four systems before any work could start.

What it shows

Pipeline and lead quality

New leads, the share disqualified, and last week's intake by stage. A coloured dot shows whether the lead filter is still running or has gone quiet.

Content queue

How many days of scheduled posts are left, and how many are waiting for review. Green above two weeks, red under one.

Ads

The latest spend and click figures per campaign, read from the tracker that already collects them.

Tasks

What is due and what is overdue, so the review starts from what slipped.

The one interesting key

Press c and the AI already knows.

Every panel builds a description of whatever row is selected: the deal and its stage, the campaign and its numbers, the week and its figures. Press c and the dashboard drops out of the display, starts a Claude Code session in the repo with that description as the opening prompt, and restores itself when you quit.

The gap it closes is small. The cost of using an AI assistant on real work is rarely the model, it is assembling the context. If the tool that shows you the problem also hands the problem over, you use it. If you have to re-type the situation, you do not bother.

Build notes

Read-only, parallel, and honest when it breaks.

  • Read-only. The dashboard changes nothing. The one action it takes is starting a session where a human is present. Anything that writes to a CRM should not be one keypress away.
  • Parallel fetches. Every source is requested at once rather than in turn, so the slowest API sets the load time instead of the sum of all of them.
  • Visible failure. If a source is down, its panel says so and the footer counts how many are degraded. The dashboard always draws. A tool that shows a blank screen when one token expires gets abandoned in a week.
Figures, account identifiers, deal and campaign names are withheld. The code is mine.