đ Works best with your ad account and CRM. Connect both and Jeremy AI builds the dashboard from your live numbers. It only reads.
Paste your campaign numbers. Get one HTML file back that you can open in any browser: KPI tiles, a spend vs leads chart, a funnel, a sortable campaign table and a channel filter.
You'll see the SAMPLE data and spec pasted in, the dashboard built in about 4 seconds on screen (the real wait was about 2 minutes), the file card, then the live dashboard: the KPI tiles, the spend vs leads chart, the funnel, the campaign table, a click on Google to filter, a click on All, and sorting by CPL and by Spend.
What this use case does and who it's for
Spreadsheets hide the story. You scroll, you add formulas, you build a chart, and by then the meeting has started. A dashboard shows the answer in one glance. But building one usually means a tool, a login and an afternoon.
Here's the shortcut. Paste your numbers. Jeremy AI writes a single file called marketing-dashboard.html. Open it and it just works. No libraries. No internet needed. The numbers live inside the file. Five parts:
KPI tiles. Spend, leads, booked calls, closed sales and revenue. Plus four ratios worked out from your numbers: cost per lead, cost per booked call, show rate and close rate.
A spend vs leads chart. Spend as bars. Leads as a line. Seven days, all channels.
A funnel. Four bars: leads, booked, showed and closed, with the count on each bar.
A campaign table. Click any column header to sort. Click again to flip the order.
A channel filter. Buttons for All, Meta, Google and YouTube. Click one and the tiles, the funnel and the table all recompute for that channel.
It's for agency owners, media buyers, coaches running ads and anyone who reports on marketing every week. Nothing is published or sent. You get a file.
What you need before you start
A Jeremy AI account. Nothing to connect to try the sample.
Your numbers per campaign. The sample is made up: SAMPLE Lumen Growth, a paid-ads agency for gym owners, with five campaigns over 30 days. Each has spend, leads, booked calls, showed, closed and revenue.
Seven daily rows for the chart. The sample has spend and leads for Day 24 to Day 30.
Honest gaps. The sample says dates, targets, benchmarks, client names, ad account ids and per-channel daily data are "not provided." The dashboard lists them in a footer instead of guessing.
The hard rules. The sample bans invented numbers, trends, targets, benchmarks and forecasts. Every number must come from your data or be a ratio worked out from it.
How to set it up
You use the default Jeremy AI worker. There's nothing to build.
Open Jeremy AI. From the dashboard, type in the main box. Check the worker selector says Jeremy AI.
Paste the prompt below. Swap your own campaigns and daily rows in where the sample ones are.
Click Send message.
Wait. The walkthrough speeds this part up. In real time the build took about 2 minutes.
When it says the file is saved, a file card appears for marketing-dashboard.html.
Click Open to see the live dashboard. Use the Code view if you want to read the file.
To keep the file, download it and double-click it. It opens straight in your browser.
The prompt
This is the exact prompt from the walkthrough. The agency, campaigns and every number are SAMPLE and made up. Replace them with yours.
Act as my "Marketing Dashboard Builder" worker for SAMPLE Lumen Growth, a paid-ads agency for gym owners (all data below is made up). Build ONE self-contained HTML file named marketing-dashboard.html using the file tool (reply with a short summary only). It must be a clean, dark-themed dashboard titled "SAMPLE Lumen Growth: 30-day marketing dashboard" with: 1) KPI TILES for spend, leads, booked calls, closed sales and revenue, plus tiles for CPL (spend divided by leads), cost per booked call, show rate (showed divided by booked) and close rate (closed divided by showed), all computed in JavaScript from the data; 2) a SPEND VS LEADS CHART for the 7 daily rows, drawn as inline SVG with spend as bars on the left axis and leads as a line on the right axis, with day labels and axis numbers taken from the data, labeled "all channels, last 7 days"; 3) a FUNNEL with four bars (leads, booked, showed, closed) with the counts written on each bar; 4) a CAMPAIGN TABLE with columns campaign, channel, spend, leads, booked, closed, revenue, CPL, where clicking any column header sorts by that column (click again to reverse) and the header shows an arrow; 5) a CHANNEL FILTER with buttons All, Meta, Google and YouTube that filters the table and recomputes the KPI tiles and funnel from the visible campaign rows; the active button is highlighted; 6) a footer note headed "Not provided" listing: dates, targets, benchmarks, client names, ad account ids. TECHNICAL RULES: inline CSS and JavaScript only, no external libraries, CDNs, fonts, images or network calls; the data lives in one JavaScript array in the file; it must work when the file is opened directly in a browser. HARD RULES: every number shown must come exactly from the data below or be a ratio computed from it in JavaScript; never invent a number, trend, target, benchmark, forecast or comparison; never mention discounts, offers or free trials; format money with a dollar sign and thousands separators, ratios to 1 decimal place or percentages to 1 decimal place; never address me by name anywhere in the chat reply or the file. Draft only, nothing is published.
CAMPAIGNS, 30 days (SAMPLE):
- Meta Cold Audience | Meta | spend 4200 | leads 210 | booked 44 | showed 31 | closed 8 | revenue 24000
- Meta Retargeting | Meta | spend 1800 | leads 96 | booked 30 | showed 24 | closed 9 | revenue 27000
- Google Search Brand | Google | spend 2500 | leads 120 | booked 36 | showed 28 | closed 10 | revenue 30000
- Google Search Generic | Google | spend 3100 | leads 98 | booked 20 | showed 13 | closed 3 | revenue 9000
- YouTube In-Stream | YouTube | spend 2900 | leads 140 | booked 22 | showed 14 | closed 4 | revenue 12000
DAILY, all channels (SAMPLE), day | spend | leads:
- Day 24 | 480 | 20
- Day 25 | 510 | 24
- Day 26 | 495 | 19
- Day 27 | 530 | 26
- Day 28 | 520 | 25
- Day 29 | 560 | 28
- Day 30 | 540 | 27
Not provided: dates, targets, benchmarks, client names, ad account ids, per-channel daily data.
Prompting tips and how to adapt it
Name the file. "marketing-dashboard.html" tells Jeremy AI to save a file, not paste code in the chat.
List every part you want. The prompt names six: tiles, chart, funnel, table, filter and footer. Anything you leave out won't show up.
Say how each ratio is worked out. "Show rate is showed divided by booked" leaves no room for a guess.
Keep the data in one array. That's why you can change a number later by editing one line.
Ban outside code. "Inline CSS and JavaScript only, no external libraries" keeps the file working offline.
Lock the formatting. Dollar signs, thousands separators and one decimal place keep the tiles clean.
Ban invented numbers. The prompt says never to add a trend, target, benchmark or forecast. You add those yourself.
Adapt it. Swap in your own channels, funnel stages or weekly numbers. A coaching business could use applications, calls, enrolled and revenue.
The result to expect
One file named marketing-dashboard.html, titled "SAMPLE Lumen Growth: 30-day marketing dashboard." With the sample data and the All filter you should see:
Nine tiles.
Spend $14,500.
Leads 664.
Booked calls 152.
Closed sales 34.
Revenue $102,000.
CPL $21.84.
Cost per booked call $95.39.
Show rate 72.4%.
Close rate 30.9%.
A spend vs leads chart. Seven bars, Day 24 to Day 30, with a leads line over them. It's labeled "all channels, last 7 days."
A four-bar funnel. 664 leads, 152 booked, 110 showed and 34 closed.
A five-row campaign table. Click a header like CPL or Spend and the rows sort. Click again and they flip.
A channel filter. Click Google and the tiles drop to the Google rows: 218 leads and 13 closed sales. The funnel reads 218, 56, 41 and 13, and the table shows the two Google campaigns. Click All and everything comes back.
A "Not provided" footer. Dates, targets, benchmarks, client names, ad account ids and per-channel daily data.
You can also open the file Jeremy AI built in this walkthrough: marketing-dashboard.html, in the same folder as the video. Open it in your browser and click around.
The chat reply is a short summary. Nothing was sent or published.
These are sample results from made-up numbers. Wording and layout change from run to run. Check every tile against your own data before you share it.
Common mistakes and fixes
You get code in the chat, not a file. Say: "Save it as marketing-dashboard.html using the file tool."
A tile shows a number that isn't in your data. Say: "Every number must come from my data or be a ratio computed from it."
The chart axes look wrong. Ask it to take the axis numbers from the data and to draw spend on the left axis and leads on the right.
The filter changes the table but not the tiles. Say: "The tiles and the funnel must recompute from the visible rows."
It adds an outside chart library. Say: "Inline SVG only. No external libraries or network calls."
You paste real client data into a chat you share. Don't. Check who can see the chat first.
