Projects / Automation & AI
The tools I build.
I get hired to run paid search. Then I build the tools that make the whole team faster. Here are a few I'm proudest of. Most are still running in production today.
Project 01 / Decision Support & Automation
Nine years of tools my team still runs.
At CINC I managed $6M+ a year in Google and Microsoft Ads across roughly 2,000 accounts, the largest Google Ads search book on the team, and built the data, reporting and automations that helped our team run its full ~$22M portfolio. At that scale, the invisible work quietly eats the day: formatting the same reports over and over, estimating a new market from scratch, guessing where it's worth expanding next.
So over my nine years there, I kept building the tools to remove that work. None of it was assigned. It started tiny and compounded into a decision-support suite the team relied on.
-
The report-formatting macro
Where it started: a macro that turned a report I ran by hand into one click.
5–10 min → ~1 min · run ~5×/day by a team of 5 -
Report-matic: portfolio-wide
Extended the same idea across the entire portfolio's data, not just one account.
~1 min → ~10 sec -
The Area tool: portfolio-wide metrics
Aggregated the whole client book into average market-volume and cost-per-lead benchmarks, so every new client estimate started from real data instead of a guess.
7 years in daily use -
The Radius tool: a recommendation engine
The Area tool's data turned into recommendations: give it an area or keyword and it estimated performance, computed distances, and surfaced every untargeted neighborhood within 20 miles, finding budget-worthy areas nobody had spotted.
5 years in use. The sales team used it to close accounts
search managed
my book
then down to seconds
still running today
The point isn't any one tool. It's that across nearly a decade I kept finding the manual work and deleting it, while doing the actual job. These tools are still in use at CINC today, after I've moved on. That's the real test of a tool: whether a team still reaches for it when nobody's making them.
Project 02 / Built with AI · Geospatial
A 15-minute ride, planned in one click.


ShredMyTown.com: a 5.6-mile, 31-minute loop, built with one click.
The problem
I ride a Onewheel, and my free time usually comes in small pieces: 15 or 20 minutes between client visits, often in a part of town I've never ridden. Map apps are built to get you from A to B. I needed the opposite: a loop that starts and ends where I'm standing, sticks to streets that are actually good to ride, fits the time I have, and doesn't get me lost.
What I built
ShredMyTown.com, a live web app that builds a rideable loop with one click.
- One-click loops. Pick a start point and a distance and get a loop back. Drag to reshape it, or add a detour with a click.
- Streets sorted for riding. Roads and paths are sorted by sidewalks, greenways, speed and surface, so loops favor smooth, safe routes.
- Turn-by-turn GPS mode. It calls out the turns while you ride. Go off course and one tap routes you back and adjusts the loop.
- Built to share. Every loop saves to a link friends can open, no sign-in needed. "Here's the loop I'm doing" is one text away.
- Phone or desktop. The whole app works on a phone in your pocket or a big screen at home.



A lot of my riding friends use a territory-claiming game where you collect map tiles by riding through them. I dug in and found the tiles are built on H3, Uber's open-source system that divides the world into hexagons. So I laid the exact same hexagons over the map to match the game, which shows where tiles are even when the game doesn't.
Then I used those hexagons to fix a different problem: loops kept repeating the same streets. Now the route builder tries to touch as many different hexagons as it can, which pushes loops wider and makes every ride a little different.
Under the hood
OpenStreetMap data, routed with GraphHopper · Uber's H3 hexagon grid for tile matching and route variety · PHP on my own server and JavaScript in the browser · built with AI over about 100 iterations.
rideable loop
to the game exactly
iterations
rides planned
What it shows
It's how I work: start from a real constraint, use open data instead of reinventing it, learn the system that matters fast, and turn a fuzzy goal ("make routes more varied") into something a computer can measure ("touch more hexagons"). Then ship it and let real people use it.
It's the same map-based thinking behind the Radius tool I built to find untargeted neighborhoods for paid search.
Project 03 / Everyday Automation
The one-click that gave a team hours back.
It's a tiny program that lives in your bookmarks bar. You click it like any bookmark, but instead of opening a website, it does something on the page you're already looking at.
One of our internal forms got filled out the same way 10 to 20 times a day by a team of five. I wrote a one-click bookmarklet that auto-fills the entire form by targeting the exact fields on the page, turning a repetitive multi-minute chore into a single click.
I used AI to write and refine the JavaScript so it hit the right page elements reliably, every time. Small, unglamorous, and multiplied across a whole team every day, and it's still in use today.
This is the kind of fix I look for first: the quiet, repeated task nobody thinks to question, and the hours it gives back once it's gone.
Let's build something
Got a manual process that's eating your week?
That's exactly what I look for. Tell me what's slowing you down and I'll tell you honestly whether I can help.