Automated CMO Marketing Brief
An executive marketing brief that writes itself, with three specific moves instead of a wall of charts.
Problem
Marketing leadership had plenty of numbers and no time. The data sat across Meta, Google Ads, Microsoft Ads, an attribution tool, a daily tracking sheet, the email calendar and the promo schedule. Assembling a read on the period meant opening all of it, reconciling the figures, and writing up what it meant, which is hours of work that competes with actually running marketing.
The reports that did get built described what happened. What leadership needed was what to do next, with a number attached.
Approach
A generated executive brief, delivered as a short slide deck on a schedule. Python pulls each source in a fixed order, assembles one payload, and a language model writes the analysis into a fixed eight-slide structure: the bottom line, a comparison table, three specific moves, and a bet for the next period.
Three things make it trustworthy rather than merely impressive:
The numbers are not written by the model. Every figure in the comparison table is rebuilt in code from a verified source and overrides whatever the model produced. This started as a correctness fix. One column in the source spreadsheet was wrong, and it had the brief reporting a metric as up 3% when it was actually up 13%, and another as up 7% when it was actually down 3%. Now the prose reasons on corrected inputs and the table is deterministic.
Recommendations require agreement across two periods. A cut cannot be triggered by a single window, or by a single supporting signal. Weaker indicators can support a recommendation but never trigger one on their own. Pausing something that has clearly just ended is the one exception.
Hard constraints, each written after a specific wrong call. Known measurement artifacts are named in the prompt so the model cannot diagnose them as real changes. Broad, sweeping actions are prohibited in favor of named, specific ones. A final pass scans the output for banned framings and rewrites if any leaked through.
Every recommendation also has to ladder up to a stated goal for the period, which appears on the deck itself, so no advice arrives without a reason attached.
Result
- Leadership gets a written point of view on a schedule instead of a request queue
- Each brief ends with three named moves and dollar amounts, not a list of observations
- Comparison table covers 13 metrics against the same period last year and against plan
- Runs for a few cents of model cost per brief
- Corrections requested by the reader shipped inside a week, because the structure is code rather than a habit
The interesting part was not generating the writeup. It was everything built to stop a confident, well-written brief from being wrong.
A lighter version of the same idea runs for Biketube Brand, a smaller company with fewer channels and a simpler picture to read. Same structure, fewer sources, shorter brief. Which is the point: the size of the brief should match the size of the business, not the size of the tool.