Strategist · Designer · Operator

Launch
with Ben



Founder

One surface an AI agent can query for a site's analytics, ads, and errors.

One MCP surface joining analytics, ads, search, errors and uptime — 45 tools an agent can call.

3 weeks to launch askbowtie.com

Win: 45 agent-callable tools over 28 subsystems, watched every 5 minutes, 1,079 tests green.

The results

45 agent tools
One MCP, 28 subsystems
Database per site
Not a tenant column
$3 of ad spend
First paying customer

What was in the way

Site data lives in silos: analytics in one dashboard, Google Ads in another, Search Console in a third, JS errors and uptime nowhere useful. When you run sites with an AI agent, there is no single place it can query to answer "is anything broken, and is it costing me conversions?" The hard part is not joining the dashboards. It is being right about somebody else's site continuously, unattended, when every source lies differently — a counter that advances past a thrown exception, a page-level total that cannot exceed a property total but does, a canonicalization bug that the homepage is structurally immune to.

What it is

An MCP server that joins first-party analytics, conversions, Google Ads, Search Console, JS errors and uptime into one queryable interface, so Claude Code, Cursor or any MCP client can answer cross-cutting questions about a site in plain language. It exposes 45 tools. The Google Ads bridge is two-way: OAuth, sync, reports, campaign mutation and offline conversion upload, so an agent can read spend and act on it. Analytics work by role rather than by URL — a page carries a data-askbowtie-tag attribute and classifies itself on every crawl and every page load, with a second marker for section-level engagement, so "how do the commercial pages convert" is one call instead of a spreadsheet. Errors are ranked by business impact, and an uptime watcher runs every five minutes. Originally launched as itbroke.dev, then rebranded and expanded into askbowtie.

What I built

Full-stack SaaS on Cloudflare Workers with 28 distinct subsystems — ingest, tracker, crawl, alerts, flows, scores, sections, page tags, reports, rollup, outreach, email, webhooks and the MCP layer itself. Every tracked site gets its own D1 database rather than a tenant column in a shared table, so one customer's data cannot leak into another's by a missing WHERE clause. Session stitching across pageviews, conversion baselines that learn normal patterns, incident clustering, revenue-impact estimates. Two API contracts are formally locked and documented as locked, so an additive change cannot silently break an agent already reading the surface. 1,079 tests across 77 files run as the gate, and the project's hard-won rules are written down rather than rediscovered — including "a stamp or a counter is a claim, not a measurement", which exists because a job reported 90/90 while throwing.

The outcome

First paying customer acquired from $3 of ad spend while still itbroke.dev. Handling real production traffic across 16 registered domains, with the uptime watcher running 288 times a day unattended. Largest solo SaaS build to date.

Visit askbowtie.com ← All projects Work with me