Personal project · 2026 · RevOps · Local LLM
Cockpit RevOps: the report that writes itself
I got some feedback: I communicated very well on the technical side, with sales and with the marketing operation, but needed to bring more practical narratives to the C-level. That's where Cockpit came from.
Challenge
Turn RevOps data into an executive narrative: a clear answer, why it matters and what to do, with no made-up numbers.
What I did
-
I built 7 n8n flows that pull CRM, GA4 and media data and calculate the metrics in Python and DuckDBSee the flow running
-
12 · Monday
- Windows Task Scheduler
- Webhook
- Save pipeline snapshot
- Standard briefs
- Open the weekly report
-
23 · Generate report
- Validate brief
- Calculate metrics (SQL)
- One section per item
-
34 · Write section
- Writer (LLM)
- Numeric check
- Do the numbers match?
- Request a fix
-
46 · LLM with a VRAM guard
- Check free VRAM
- Does it fit on the GPU?
- Ollama · qwen3:8b
- Wait 60 s
-
55 · Review
- Reviewer (LLM)
- Problems per section
- Ask the writer for a fix
-
63 · Generate report
- Rule-based verdict
- Summary and 3 actions
- Render HTML
- Notify that it's ready
7 · Error alert: if any flow fails, Windows sends a notification. And 1 · Form generates the same report on demand.
Monday, 6 a.m.: Windows fires the webhook, the Python service saves the pipeline snapshot (POST /snapshot) and, at the end of the batch, opens the weekly report: one HTML file with all 4 views.
-
- Headline, “why it matters” and decisions come from rules over the numbers. A local LLM (qwen3 on Ollama) writes the reading of each section; code checks every number against the data, a second LLM reviews it, and the verdict comes from a rule, never from the model
- Every Monday at 6 a.m., the report comes out as a single HTML file with 4 views, one for each role: C-level, marketing, SDRs and sales. A toggle switches between “with commentary” and “data only”
- I created one dashboard per role, without an LLM: the CEO sees the journey from traffic to MRR and where revenue leaks; SDRs see who needs to be contacted today; sales sees how much of the pipeline is real
- To test the agent, I hid 10 problems in Vela's fictitious data (a rep who inflates the forecast, a campaign with cheap, bad MQLs…), which should show up in 15 places across the reports. It flagged 12 of the 15, with the number that proves each one
Result
- 4 + 3views of the Monday report and dashboards per role (CEO, SDRs and sales)
- 12/15problems hidden on purpose in the data that the report flagged, with the number that proves them
- R$ 0per report: the model runs on my GPU
Each team's report
One report every Monday, with one view for each role. Click a view to open the report.
What Vela gets every Monday at 6 a.m.
1 report, 4 views: one for each role
- Executive
- CEO
- CMO
- COO
Is Vela really growing, and how much does growth cost?
We grew 4.7% in Q3, a little over half of Q2: less new revenue and more churn. Payback holds at 10.4 months.
Open this view → - Sales
- Head of Sales
- Account Executive
Will Vela hit its Q4 target?
Not yet: the adjusted commit covers 56% of the target.
Open this view → - SDRs
- Team Leader
- BDR
- SDR
- LDR
Does the lead become an opportunity, and fast?
Volume is on target, but leads wait 29.4 h for first contact (target: 4 h).
Open this view → - Marketing
- CMO
- Demand generation
Where does revenue come from, and where is the waste?
A cheap MQL isn't a good MQL: Meta for SMBs returns 0.0x; LinkedIn ABM, 16.5x.
Open this view →
Cockpit numbers from Oct 5, 2026, as Vela's Q4 begins. 100% fictitious data.