Jacob Ramos · AI Engineer · remote, available now
Open to remote roles · interviewing now

I build the pipeline. Then I close it.

Ten years converting leads into revenue — internet sales, F&I, campaigns. Eight months building AI-first products with Claude agent workflows, webhooks, and instrumented funnels. Most people are one or the other. I stopped choosing.

The short version

The first two are what the last eight months built. The last three are the ten years of revenue work that came before, and the reason I build funnels rather than features.

3,100
active users in one quarter
GA4 · 2026-04-15 to 2026-07-23
54,281
requests served off hardware I administer
50–70
car deals funded a month, at the F&I desk
200+
volunteers led on one campaign
92%
open rate, 5k-stakeholder email program

Selected work

Every project below is live or verifiable.

Product · Zero to traction

St. Paul Skyway Map

Downtown St. Paul had no working map of its five-mile indoor skyway network. I built one — interactive map, turn-by-turn indoor routing, a 418-place directory, self-serve business claiming — solo, in two months, then took it to market with QR posters, one-pagers, and civic events.

3,100 active users in one quarter · 38K tracked events in one quarter · 313k lines of code, solo · 167 API routes shippedGA4 · 2026-04-15 to 2026-07-23stpaul-skyway-map · as of 2026-07stpaul-skyway-map · as of 2026-07-29
Infrastructure · Production I own

The routing engine runs on hardware in my apartment

spskyway.com's turn-by-turn routing is not a managed service. It is three OSRM containers behind Caddy on a Mac mini I administer, reached through a Cloudflare tunnel and a Tailscale funnel, with a shared-secret gate in front and Postgres and PostgREST alongside. A cron script probes four endpoints every five minutes and mails me when one fails — including an out-of-band check against the public site, because the obvious check kept passing while production was down.

The stack's real topology: Cloudflare tunnel and Tailscale funnel into Caddy's shared-secret gate, three OSRM engines, PostgREST and Postgres — six containers on a Mac mini, with the monitor's 99.98% July and 88.86% lifetime check rates
browser → Cloudflare tunnel → Caddy → shared-secret gate → OSRM (prod / preview / outdoor) → route
99.982% of uptime checks passed in the latest full month · 88.86% of uptime checks passed, all 100 days counted · 81,992 synthetic uptime checks against my own backend · 54,281 requests served off hardware I administer
AI · Agent orchestration

Multi-agent Claude workflows in production

My development process is itself an LLM pipeline: workflow scripts that fan out parallel Claude subagents with JSON-Schema-forced structured outputs, phased stages, and adversarial verification. MCP integrations, custom skills, and git-worktree parallel agent builds in every repo.

since November 2025 Claude Code as the daily driver
Automation · Attribution

QR-to-database attribution pipeline

Print collateral that reports its own conversion. Every scan is logged server-side before the redirect, so the destination can be swapped without reprinting a single poster — and every campaign carries a funnel number instead of a guess.

phone camera → short link → edge function → INSERT analytics_events → 302 → onboarding
Internal tools · Daily use

The admin CMS I run the company on

A ten-tab internal console — map editor, businesses, claims, beta cohort, hunt tickets, sensors, feedback — with automated data-integrity validations running on every load, catching orphaned nodes and dangling references before a human sees them. Built for one user who cannot afford to be lied to by his own dashboard.

418 places in the skyway directorySupabase · as of 2026-07
Growth · Ticketed product

A ticketed scavenger hunt, sold and instrumented

A five-day skyway treasure hunt: co-branded landing page, Stripe checkout, daily clue delivery, QR pickups in the field, and an admin console I ran the live event from. Strangers paid for it. The lander lets a cold visitor solve one real clue before buying, and every camera scan was logged by stage — including the failures.

// live — solve it yourself
SPSkyway_Hunt · Day 1 of 5
FROM clues@tctreasure.com · 11:00 AM
CLUE 01 / 05
READ ALOUD

“I share my name with every saint they call,
and from a copper crown I watch them all.”

Click a building to guess →
Tap any building above. The real hunt: 5 clues like this, one per day.
lander → play a practice clue → checkout → daily clue → QR scan in the skyway → letter
42 tickets sold through Stripe · 323 visitors to the hunt landing page · 93 who reached checkout · 259 QR scan events, logged by stageStripe · as of 2026-05-29GA4 · 2026-04-27 to 2026-07-25Supabase · 2026-05-24 to 2026-05-29
Shipping velocity

A live event check-in app, built in six hours

Two days before a sold-out civic event, 200+ people were registered and there was no way to check them in at the door. I forked an app I already had, stripped it to essentials, and shipped a dedicated check-in app overnight: guests self-check by name or QR, a volunteer board runs the door, and anyone missing from the list adds themselves as a walk-in. It ran live that week.

6 hours to ship a live event check-in app
Civic · Product with a crowd

The $5 Progressive Dinner

An app that walks diners between five downtown restaurants in one evening. Scan the QR at the door and you are checked in with zero taps — a checkmark to show the host, a thirty-minute slot with a push warning near the end, capacity broadcast live to everyone else, and a next stop ranked by which room has headroom. It filled five rooms on a Wednesday as volunteer work, and the honest finding survived into round two: couples shared one account, so attendance is published as a range and the rebuild checks in the whole party from one ticket.

scan QR → zero-tap check-in → ✓ for the host → 30-min slot + push warning → live capacity → next stop by headroom → next scan checks you out
511 check-ins in a single evening · 1,709 QR scans resolved into 511 clean check-ins · 472 slot-timer warnings pushed to diners' phones · 146 of 511 check-ins were plus-ones on a shared ticket · 26 diners who walked all five stopsSupabase · as of 2026-04-29Supabase · 2026-04-29 to 2026-04-30Supabase · as of 2026-04-30
AI · Conversational

Cleo, and the chatbots before her

Cleo is a customer-service agent running autonomously on live e-commerce, handling shopper questions, inventory and marketing for a patent-pending product that needs explaining before anyone buys it. Before her: a Facebook Messenger bot fielding voter questions on a district attorney campaign in 2020, and client chatbots either side of it. Underneath all of it, four years watching dealership chatbots from the buyer's side of the desk — where you learn precisely what a bad answer costs.

Data · Anti-hallucination

A provenance framework for every number shown

Provenance chips on every metric, data-valid-from floors, minimum-N privacy gating, freshness indicators and explicit degraded states — so a stakeholder can always see how a number is known and how much to trust it. Systematic anti-hallucination design for data products, which is the same discipline an LLM output needs.

Data · Live systems

Foot-traffic sensor network and dashboards

AI camera people-counters and BLE density sensors feeding hourly and daily rollups, baselines, and anomaly detection into admin dashboards — zoomable multi-lane timelines, weather and city-event context bands, and time-scrubbing map playback over a live Raspberry Pi fleet.

Hardware · Digital signage

A restaurant's menu wall, running on Raspberry Pis I deployed

Bambú's five TV menu boards run off three Raspberry Pi 5s I provisioned, deployed and monitor — dual-HDMI video players I designed the boards for, woken and slept on an HDMI-CEC schedule, watched by a heartbeat that mails me when a screen goes quiet. Getting Pi 5 dual output stable meant abandoning Wayland for X11 and mpv, and one field afternoon spent pinning a Pi to a specific radio dragged its ping from 1100ms to 9ms. Real hardware in a real restaurant, where the failure modes are power cuts and weak Wi-Fi, not stack traces.

designed board → rendered to looping MP4 → Pi pulls to local disk → dual-HDMI mpv → CEC wakes the TVs at open
5 TV menu boards, three Raspberry Pis, one restaurant · 28 days unattended uptime on the player I can still reach · 58 menu items behind a multi-tenant publish pipelineopen-civ · as of 2026-06-18Supabase · as of 2026-06-18
Computer vision · Playful

A shop window that plays back the street

On the storefront glass at Bambú, a short-throw projector rear-projects a game onto translucent film: bubbles drift up a pixelated live mirror of the skyway corridor, and pedestrians pop them by moving through them. It runs off the same IMX500 AI camera that counts foot traffic — the game just reads that detection stream — and the collision detection went through three generations, from bounding-box overlap to on-sensor keypoints to a MediaPipe pose skeleton. A single 1,048-line canvas file, no framework, supervised as a kiosk service so it restarts itself after a power cut.

Client work · Paid

Revenue software for other people's businesses

Task Force Contractors runs on a site I built end to end — the public side with its services and before-and-after project galleries, and behind it an admin panel: dashboard, inquiries inbox, a drag-and-drop deal pipeline, a client database, and an email-campaign builder with templates, audiences and per-send logging. Downtown Revival Trust is the larger engagement — a property and investment portfolio with branded transactional email. Both are live, both were paid, neither is mine.

Client work · Retail

A vintage shop's storefront, and the console behind it

Forever Young sells one-of-one vintage, so nothing about it is a catalogue: every piece is a single item that exists once and then does not. The storefront is built around that — era badges, sold state, a product page per find. Behind it runs the console the owners actually use: intake with barcode scanning and sold-comps lookup, a pickup queue in three columns, and an analytics view over in-store sales.

Civic · Editorial

Downtown St. Paul, told straight

An independent, resident-run guide that refuses to boost or doom. Every claim on the scoreboard carries its own date and a link to the primary source, including the unflattering ones — office vacancy, property values, neighbours without housing — because a downtown argument that only cites the good numbers convinces nobody who lives there. A live board tracks which places are actually open right now.

Civic · Founding

Linear Park Alliance

Founded and built the organization's web presence and its petition funnel from scratch — the site, the data, and the conversion path that turns a passerby into a signer, instrumented from the first day it was live.

The Linear Park Alliance homepage over the real skyway network geometry, with live downtown temperature and air quality and 681 recorded voices
63 petition signers in month oneSupabase · as of 2026-07
Product · Native iOS

SwiftUI navigation app with indoor positioning

Voice-guided navigation with Live Activities, iBeacon indoor positioning down to my own ESP32 beacon firmware, and a simulator-based end-to-end navigation test harness — because indoor wayfinding cannot be verified by unit tests alone.

Design · Not shipped

A licence-verification directory, designed and built

An AI-automations company with three sides feeding each other: consumers checking a contractor's licence before signing anything, contractors discovering the profile a scrape already built for them and claiming it, and voice agents sold to the ones who claim. The schema carries all three — licence status and disciplinary history, staged claim verification with expiring codes, per-state sync logs, embeddable verification badges tracked for clicks. It was never deployed and has no users, so what it demonstrates is the modelling, not a business.

Sales · Proposals that show the work

I pitch concepts by building them, not describing them

The Downtown Revival Trust proposal is a designed document, not a deck: one family of sites with a staged roadmap, delivery calendar, per-stage pricing and ongoing-care terms, each stage shipping a working preview so nothing is invisible between milestones. The Trust's site is live from it, and the Great Northern redesign was built as a clickable concept rather than a mockup, so the case for the rebrand could be made by using it. That is how I open with a stakeholder — with something they can argue with.

AI · Tooling from the inside

Early on the agent tools, and honest about what stuck

I ran OpenClaw during the week it was renamed from Clawdbot: a messaging-driven agent gateway paired to Telegram and WhatsApp, so I could hand work to an agent from my phone and have it flash the lights over my desk when a long task finished. Then the billing moved. What had been covered by my plan started drawing extra usage, and the same work cost more through the gateway than through the tool underneath it. Nothing was wrong with the software. I removed it and kept Claude Code, because a tool has to survive its price changing and this one did not.

since November 2025 Claude Code as the daily driver
Civic · Technical Director

Technical Director, Friends of the Saint Paul Skyway

Ran technology for a downtown civic organization — website, data, and the digital side of member and volunteer operations — while building the map the organization advocates for. Volunteer leadership with real deliverables and real stakeholders.

11 of 14 volunteers had their codes scanned in the field · 344 QR scans of volunteers' outreach codes · 88% of the scans came from a phoneSupabase · as of 2026-07-27Supabase · 2026-03-23 to 2026-05-19
Leadership · Teams

Leading the people who carry the number

Sixty-plus salespeople trained, mentored and presented to as a finance manager, without one of them reporting to me. Twenty employees across two New York restaurant locations with direct authority, inventory and P&L. A staff training program at Allegra that lifted operational efficiency measurably. Leadership here has always meant carrying a number, not holding a title.

20 employees managed across two sites · 30% operational efficiency gain from training · 60+ salespeople trained and mentored, none of them reports
Growth · Personalisation at volume

154 personalised car videos, one per lead

Rather than answer internet leads with a templated email, I shot and cut each shopper a bespoke commercial of the actual car — Premiere, an iPhone and a gimbal — and published 154 of them. Turnaround was the bottleneck, so I bought a scooter to cut the walk across the lot. It is the manual version of the personalisation engine everyone now wants agents to run, done by hand in 2022.

154 personalised car videos produced · 18+ cars / month from internet leads · Top 3% of 60+ salespeople on internet leadsYouTube · as of 2025-05

Receipts, not adjectives

Claude Code usage, counted from my own session logs rather than asserted.

$ npm run hire:statsmeasured 2026-07-27
127
sessions
65.9K
assistant messages
48.2K
of them subagent
14.5K
tool calls
27.3M
output tokens
76
working directories
claude-fable-5
most-used model

33 active days recorded, 2026-06-24 to 2026-07-27. Streamed line by line. Assistant messages deduplicated by message.id across every file, because transcripts write one line per content block and resumed sessions re-copy earlier messages. Locally generated error messages excluded. No project names, file paths, branch names, prompt text or code content is read into this artifact — counts only. Counted 310,744 lines across 2,586 files; 92,646 duplicate messages skipped.

Claude Code session transcripts (~/.claude/projects/**/*.jsonl) from one of the three machines I work across, so this counts a share of the total rather than all of it. The window starts where local transcript retention starts, not where the habit does. I have been running Claude Code daily since November 2025.

Stack

AI & LLM

Claude Code at expert depth, daily — agent orchestration, MCP integrations, custom skills, structured-output evals, prompt design. Make ran production flows for two client projects; n8n and Zapier are working familiarity, with the custom pipelines underneath built by hand. The claim-validation layer this site runs on is public at github.com/jaycubray/claim-registry.

Automation & data

Webhooks, REST APIs, Supabase and Postgres, SQL, edge functions, cron, GA4 event instrumentation, Stripe, Resend, Google Calendar API.

GTM & CRM

HubSpot and Elead in commercial settings; VoteBuilder and NGP VAN across three campaigns. CRM-agnostic — the workflow matters more than the vendor.

Engineering

TypeScript and JavaScript, React, Next.js, Swift for native iOS, Vercel, Playwright and Vitest. Eleven years building for the web. Python is the newest and the narrowest: it runs the on-device sensor pipeline, and nothing else yet.

Self-hosted infrastructure

The routing backend for spskyway.com runs on a Mac mini I administer: three OSRM graphs in Docker behind Caddy, reached through a Cloudflare tunnel and a Tailscale funnel, with Postgres and PostgREST alongside and a cron monitor that mails me when an endpoint stops answering. A Raspberry Pi fleet runs the rest — digital-signage players and IMX500 AI-camera sensors in the field.

Logistics, on paper

Status
Open to remote roles
Work authorisation
US citizen — no visa sponsorship required
Available
Interviewing now · available immediately
Arrangement
Remote — contract or full-time
Languages
English (native)
Compensation
Tell me the band for the role and I'll tell you straight whether it works

St. Paul's downtown skyway had no usable map, so I taught myself to build one. Open-CIV is where that turned into products. I'm handing off its civic leadership roles; the map stays live and I keep it running, which is maintenance rather than a second job.

Take it with you

Every number on this page has a source. Ask me for any of them.

Fifteen minutes, straight onto my calendar.

Jacob Ramos · Saint Paul, MN · Built by hand, obviously.