Personal Project
Executive Intelligence Analyzer · Report to Decision
4 Roles · 3 Interventions · 1 Approval Gate
Executive Intelligence Analyzer: Reports Into Decisions
Upload a business report — finance, marketing, sales, operations, HR — and get back an evidence-backed diagnosis, exactly three comparable interventions, and an approval gate that keeps the decision human.
Personal Project · Live prototype on Vercel
4
Coordinated AI Roles
Analyst, Strategist, Execution, and Measurement, each with a named remit and visible handoffs
3
Interventions Per Run
Always exactly three, each scored for expected impact, cost, risk, and confidence, so options stay comparable
15+
Report Formats
PDF, Excel, PowerPoint, Word, CSV, images, Markdown, JSON, XML, SQL, logs, and plain text
$0.018
Verified Run Cost
Computed from actual token usage on a production test run — about 1.8 US cents
The Analyzer is decision support with a deliberately drawn line: it diagnoses, proposes, and routes for approval, but it does not touch live CRMs, budgets, ad platforms, or customer-facing systems. In the current prototype the four roles share one schema-constrained model call — the interface makes the handoffs explicit — and analyses are processed per request, not persisted.
The Problem
The data exists. The decision is the slow part.
Organizations are rarely short of data — it is just packaged badly. Performance lives across spreadsheets, PDFs, decks, screenshots, and exports from systems that do not talk to each other, and someone senior has to find the signal, challenge the assumptions, weigh the responses, and decide.
Most AI demonstrations stop at summarization. Useful, but it does not show a system participating in a real operating workflow while remaining accountable to a human decision-maker.
This product was built around a harder question: can one AI interface convert almost any business report into an evidence-backed, approval-ready decision?
The Agent Workflow
Four roles from evidence to action
The workflow is not a chat box. Each role has a named responsibility, its output feeds the next, and the whole chain is visible in the interface — including the point where it stops and waits for a person.
Analyst
Diagnosis
Reads the source, detects the business domain, checks calculations and assumptions, and grounds every finding in the uploaded material — anomalies, inconsistencies, mistakes, risks, and opportunities.
Strategist
Decision Options
Converts the diagnosis into exactly three practical interventions, each with expected impact, cost, risk, and a confidence score, so the comparison is honest.
Execution
Action Layer
Represents the path from decision to action. The selected intervention is held behind human approval and never fires automatically.
Measurement
Learning Loop
Defines what gets tracked after execution — the basis for comparing the approved intervention with what actually happened.
One call, four remits
In this prototype a single structured model call produces the shared analysis; the interface makes the responsibilities and handoffs explicit. A deliberate choice for speed, coherence, and cost — with a clear path to independently orchestrated agents once separate tools and permissions earn their overhead.
How a Run Works
Any report in, a decision brief out
The same intake handles a quarterly finance pack, a campaign report, an operations export, or a screenshot — and every run comes back in the same structure.
Intake
A written question, an uploaded report, or both. The client packages them as multipart form data, and the server validates the file extension and size before anything reaches a model.
Domain detection
Finance, marketing, sales, operations, HR, product, strategy, customer, or general business — detected from the material itself, not chosen from a dropdown.
Grounded analysis
The analysis prompt instructs the model to check calculations and assumptions, distinguish facts from inference, ground every finding in the uploaded material, and never invent unavailable values. Images run as high-detail inputs; PDFs get high-detail processing.
Schema-constrained output
The OpenAI Responses API returns strict JSON against a defined schema, so the interface renders a decision brief with guaranteed fields instead of interpreting prose.
Decision presentation
The command center shows the main issue, confidence, evidence, data-quality limitations, and the three interventions side by side, compared on likely impact, cost, and risk.
Human approval
Selecting an intervention routes it to a visible approval control. The operating principle it communicates: no campaign, budget, or customer-facing change happens without a person confirming it.
The Decision Brief
What every run hands back
Strict structured output means every analysis carries the same fields — whatever the report looked like on the way in.
Domain and summary
The detected business domain, a report title, and a concise executive summary.
Primary metric
The number that matters most, the material change in it, and a confidence score.
Findings and evidence
Two to four findings, each backed by evidence from the source material.
Mistakes and risks
Identified errors, inconsistencies, weak assumptions, and missing context.
Three interventions
Exactly three strategic options with expected impact, cost, risk, and confidence.
Run economics
Model, token usage, runtime, and the estimated cost of the analysis itself.
Trust and Run Economics
Constraints are part of the product
Confidence scores, evidence, data-quality limits, human approval, and visible cost are not technical details — they are what makes the output usable in a real decision.
Every finding must trace to the uploaded material, and the model is explicitly told not to invent unavailable values.
Data-quality status and limitations are part of the structured output, not a footnote.
The API key stays server-side, and requests run with store:false so no response storage is requested from the provider.
Uploads are validated, processed per request, and never persisted in an application database.
Cost is computed from actual token usage — uncached input, cached input, and output tokens priced separately, with long-context rates applied when an input crosses the threshold.
Model, token counts, runtime, and pricing basis are on screen for every run, so the economics of the workflow are visible rather than hidden.
A verified number, not a forecast
A production test run used 920 tokens and reported an estimated API cost of $0.017875 — about 1.8 cents to go from an uploaded report to a structured decision brief. Cost varies with file size and response length, and the pricing basis is shown with every run.
How It Is Built
How It Is Built
AI
OpenAI Responses API · multimodal file inputs + structured outputs
Output Contract
Strict JSON Schema, validated before anything renders
Intake
PDF, XLSX, PPTX, DOCX, CSV, images, Markdown, JSON, XML, SQL, logs
Run Metrics
Token-level cost calculation, runtime, pricing basis per run
App
Next.js 16 App Router, React 19, TypeScript
Interface
Dark command center: agent network, evidence panels, activity stream
Runtime
Node.js on Vercel Functions, 300-second execution window
Infrastructure
Vercel, GitHub, server-side environment secrets
What I Built
What I Built
The product design, the intake, the analysis prompt, the output contract, the run economics, and the command-center interface, all built and deployed by me.
Designed one focused story — report in, decision out — instead of a catalogue of disconnected AI features
Built universal intake that accepts fifteen-plus business formats, with server-side validation before the upstream request
Wrote the grounded-analysis prompt: automatic domain detection, calculation checks, fact separated from inference, and no invented values
Enforced a strict JSON Schema on every response, so one analysis engine reliably serves finance, marketing, sales, operations, HR, product, and strategy reports
Made the workflow visible in the interface: four named roles, evidence panels, a live agent network, an activity stream, and a human approval gate
Built run economics from real token usage, separating uncached input, cached input, and output tokens at their actual rates, with long-context pricing handled
Kept the trust boundary honest: store:false on requests, no persistence, and no live execution against CRMs, budgets, or ad platforms
Shipped it as a production deployment on Vercel, with the API key held server-side and a 300-second execution window for large reports
A report you already have goes in. What comes back is what leaders actually need: what changed, what may be wrong, three ways to respond — and a decision that stays human.
Access
See a run end to end.
The best demonstration is a report you know well: watch the domain get detected, the findings land with their evidence, three interventions arrive side by side, and the run report its own cost. The prototype is live on Vercel — ask me for a walkthrough with your own material.