Projects

Most SEOs talk about AI. Here's what I've shipped.

Every project here started as a real problem — a client asking whether AI lies about their boats, a rank report nobody trusted, an inbox that needed an agent. I don't prototype in slides. I build the tool, run it in production, and publish the results, including the failures.

MarineBench

"Does AI actually know my client's products?"

A benchmark testing whether LLMs know exact facts from the 2026 Regulator Marine catalog — base prices, option costs, fuel capacity — 25 questions at temperature 0, run with and without catalog context, across providers.

Best model cold: 40%. Same questions with catalog context: 100%. AI models know boating. They do not know your catalog.

Agent Memory & the Dream Journal

"My AI agent kept forgetting what we were doing."

A homegrown memory architecture for an always-on agent: daily memory files, an entity store, and checkpoint protocols. Every night the agent reviews its day, consolidates what it learned, and writes an unedited journal entry.

22 published entries (Feb–Mar 2026), failure modes included. The journal is the receipts.

Gmail Mission Control

"Why are we paying for a shared-inbox SaaS?"

A single-page Gmail client on a Cloudflare Worker (~5,000 lines): threads grouped by client via sender-domain matching, Gemini one-line thread summaries and context-aware draft replies cached in KV, Slack alerts, archive/snooze/VIP, and a natural-language filter builder.

Replaced $8,804/yr of SaaS. Daily production tool at the agency — which is also why there's no public demo of someone's real inbox.

Architecture walkthrough available on a call.

Rank Tracker

"Nobody trusted the rank report."

A zero-backend rank-tracking dashboard: one HTML file with Chart.js and embedded daily position data, triangulated from DataForSEO SERP pulls and Google Search Console. Per-keyword trend charts, average-position scorecards, no subscription.

Daily positions, per-keyword trends, running as a live internal tool at Bonsai.

Bonsai Review

"How does an agency ship AI content a client can trust?"

An evidence workspace for reviewing AI-generated content: every product claim in a draft traces back to its source — spec sheet, model page, client email — with verified/needs-review counts per claim, a cross-client review queue, and Draft/Claims/Sources/Changes tabs.

"46 verified / 7 need review" — trust in AI copy becomes a number, not a vibe.

Keyword Cluster Map

"Ten thousand keywords. What do we actually build?"

An interactive discovery-to-content map: raw keywords from GSC, Semrush, and seed expansion deduplicated and clustered, with URL ownership per cluster and a clickable bubble map connecting search demand to the pages that should own it.

11,654 raw keywords → 7,339 deduplicated terms → 20 clusters, each mapped to a page.

Turf Wars

"And for fun: a strategy game, built from scratch."

A turn-based crime-strategy game — grow a gang from one city block to a citywide syndicate. TypeScript, Canvas, and Vite across ~15 modules: influence-based territory control, AI rival factions, district art, and six victory paths. A playable prototype, in active development.

Playable in your browser. No engine, no framework — hand-rolled game loop and renderer.

This Site's Hiring Chat

"Don't read my resume. Ask about me."

The AI chat on my hiring page is not an embedded widget — it's a Cloudflare Worker I wrote, with a role-config system that tailors the page per opportunity via query param. Ask it about my work, my gaps, or whether I fit your role. It's prompted to be honest about all three.

Self-built, self-hosted, and instructed to tell you the honest gaps, not just the highlight reel.