Devin Huber
Résumé
Home
Builds

What I’ve built, and how it measured

What I built for my employer, what I’ve built in code, and spec builds scored against answer keys. Client names are withheld; every figure comes from that build’s own runs.

01 · Built for my employer

Running at my current employer

The CEO’s email assistant and three agents, running at my current employer, and an archive assistant colleagues use in their own Claude.

In production · real users

Executive Email Assistant

Reads the CEO’s inbox and the shared inquiries inbox, answers routine mail and books accepted meetings on its own, and puts everything else in one evening to-do she answers a line at a time. The model drafts; code decides every send.

  • n8n
  • Claude Sonnet
  • Microsoft 365
  • 97 tests
97tests run the workflows’ own code
52machine senders filed before the model sees them

Ask me about what the assistant is allowed to do without asking, and how code enforces it

In production · real users

Monday Operations Brief

A weekly Claude task reads the website and podcast analytics and the Kajabi platform’s figures, and emails leadership the biggest changes, flags and suggestions. Its GA4 reports and its email go only through a no-AI n8n workflow.

  • Claude scheduled task
  • n8n
  • GA4 · Kajabi
  • Fixed recipients
Every Mondaysent without interruption
2 · 3GA4 properties it may read · fixed recipients

Ask me about why the allow-lists live in n8n code instead of the prompt

In production · real users

Guest Application Flywheel

Each month a Claude Cowork task scores new podcast guest applications, holds anyone the CEO already knows, declines weak fits on its own and sends her a digest. Leadership no longer handles applicant email.

  • Claude Cowork
  • n8n
  • Relationship check
  • Emergency stop
27applications screened, a backlog of 21 first
~110 ha year of screening saved, projected

Ask me about how it defends against instructions hidden in an application

In production · real users

Podcast Archive Article Engine

A 343-episode archive indexed so that each week code picks an eligible episode, Claude drafts the newsletter section around a quote already on record, and n8n sends it to the editors.

  • Claude scheduled task
  • n8n
  • Google Sheets index
  • Quote card
343episodes indexed, 2016–2026
Weeklynewsletter drafts, without interruption

Ask me about why the model never chooses the episode

Released · used by colleagues

Podcast Archive Assistant

Colleagues ask ten years of the podcast a question in their own Claude. Answers are built only from the transcripts, code checks every quote against its source, and a question the archive can’t answer is declined.

  • Python
  • MCP server
  • Cloud Run
  • 183 tests
157 of 161test questions handled as the answer key says
0 of 33trick questions answered as if true

Ask me about why combining keyword and meaning search did worse than keyword alone

02 · Built in code

Systems built in code, with tests and CI

A finance operations platform that checks its own work, and the evaluation harness behind every error rate on this site. The four free tools package the same measuring for anyone to use.

Personal build · tested prototype

Finance Operations Platform

Spreads financial statements, reconciles bank against ledger, matches invoices to orders and receipts, gates vendor data and scans spreadsheets for formula risks. Every engine checks its own work and sends a person only what it is unsure of; a small local model maps labels and never sees a number.

  • Python
  • FastAPI
  • React + TypeScript
  • SQLite
  • 1,200+ tests
  • Release gate in CI
1.5%silent error rate, 30 held-out SEC 10-Ks
0 of 37problem invoices reached approval without a person

Ask me about why it won’t auto-accept a rule that has been right every time so far

Personal project · in regular use

Workflow Evaluation Harness

My own command-line tool, built with Claude Code and still evolving: it grades any workflow export against an answer key written in advance. The headline is the silent error rate, every rate carries a range, and separate commands measure run-to-run variance and what-if thresholds. I use it regularly on new builds.

  • Node.js
  • Zero dependencies
  • GitHub Actions CI
  • 200+ tests
17runs scored across two workflows
80+ways it could miscount, each handled

Ask me about how you test a tool whose whole job is to be right about numbers

03 · Agents, measured

Scored against 500-record answer keys

Spec builds for real problems, measured with the same harness, bad results included. The answer keys are stress tests I wrote: 500 records each, many built to trip the agent.

Spec build

Metadata Enrichment Agent

Tags incoming news against a controlled vocabulary and decides which articles can publish with no editor. Rules resolve the companies, a model proposes tags with evidence, and a guard rejects anything the evidence does not support.

  • n8n
  • Claude API
  • JavaScript
  • 500-record answer key
27% → 8.6%silent error rate, 500 articles, worst of three runs
$9.21per 1,000 articles, measured tokens at today’s price

Ask me about why 24 test articles said zero errors and 500 said 27%

Spec build

Bar-Compliance Content Reviewer

Screens law-firm advertising against attorney advertising rules. Regex catches the banned words, a model catches the implied violations, and its confidence decides what a person reviews. Since ported to tested Node.js code that matches the workflow on all 500 documents.

  • n8n
  • Claude API
  • Regex rules
  • Node.js port
30% → 6.7%silent error rate, first 40 documents
9.8%on 500 documents

Ask me about why the fix went into the prompt, not the threshold

04 · Also built

Smaller builds and take-homes

Contact

Want to see one run?

I'll screen-share any build: the workflow, the test set and the results, including what didn't work.

Open to AI automation & AI engineering roles · Columbus, OH · relocation or remote