Agent live · 25 postings read

I ship software I don't write.

I'm not a programmer. I direct AI coding agents. I decide what gets built, judge whether it's actually right, and drive it until it ships.

How I work

The code isn't mine.
The judgement is.

I can't write most of the code in these projects, and I won't pretend otherwise. What I can do is take something from an idea to a finished, working, audited product. That turns out to be a different skill, and a scarcer one than it used to be.

Decide what gets built

Scope, constraints, and the sequence to build in. Most failed projects die here, long before anyone writes a line.

Judge whether it's right

AI is confidently wrong all the time. Catching that is the job. A payout model that doesn't hold. A filter that quietly matches the wrong thing.

Get it over the line

Certification, DNS, deployment, keys, cron, databases. The unglamorous distance between “it runs” and “it's live.”

Selected work

Shipped, not prototyped.

Game · Certified

Sakura Storm

A 6×5 slot game whose payout model holds a 0.97 return across three bet modes, verified over millions of simulated rounds and passed third-party certification.

Slot math is a constrained optimization problem. You are given a target return, a hit frequency, a max win cap and a volatility profile, and the reel set and payout table have to satisfy all four at once. Then it has to survive an audit by someone whose job is to find where you got it wrong.

I specified the game and drove it to certification. The judgement calls were mine: how volatile it should feel, when the numbers coming back were wrong rather than merely surprising, when a cascade animation read as broken instead of dramatic, and when it was actually finished.

Certification is a useful forcing function, because it removes the option of "close enough." A payout distribution is either provably correct across millions of rounds or it does not ship. Getting there meant a lot of runs where the answer was no.

My part: Specified the game, tuned the model against certification targets, and owned the call on when it was correct. Implementation produced by AI under my direction.

Return to player
0.97 across all 3 bet modes
Max win
25,000×
Bonus trigger
1 in 400 spins
Certification
Passed third-party audit
  • Stake Engine
  • Python
  • TypeScript
  • Svelte
  • PixiJS

AI automation · Live

The job agent

A pipeline that reads 4,500 job postings a day, narrows them to a few dozen, scores those against my profile, and drafts outreach. It is running on this site right now.

The most honest thing you can build while job hunting is the thing that solves your own job hunt. So this one runs in public, and you can read its output below.

Each morning it polls the public job-board APIs of a watchlist of companies. Cheap deterministic filters run first, checking title, location, and everything already seen, because there is no reason to spend model tokens learning that a Director of Sales role is a bad fit. About 4,500 postings become about 37.

Those go to Claude with a strict schema: a 0 to 100 fit score, the specific reasons, and a draft opener. Anything above the bar lands in a daily digest.

Two decisions I would defend. It drafts but never sends, because auto-applying at volume is how you become spam, and the goal was never to apply to more jobs. It was to only look at the ones that matter. And it is instructed to be harsh about my gaps. An early version rated every single posting exactly 72 and wrote openers claiming experience I do not have. That version was useless, and worse, dishonest. The current one routinely scores roles in the single digits and says why.

My part: Designed the pipeline, caught the scoring model hedging and fabricating, and rewrote the prompt until it told the truth.

Read per run
~4,500 postings
Survive filtering
~37
Scored by
Claude, structured output
Sends on my behalf
Never. Drafts only.
  • Next.js
  • TypeScript
  • Claude API
  • Postgres
  • Cron

See what it found

AI infrastructure

Jarvis

A home assistant whose identity and memory live in a service rather than in any one model, so swapping the model never changes who it is.

Most assistant projects are a thin wrapper around one model, so the day you swap models you lose the personality, the memory, and everything it knew about your house. The design decision here was to invert that. Identity lives in a service that sits between you and whichever model is answering.

It keeps a file of durable household facts injected into every conversation, plus a searchable store of past ones. Routing is by request type. Anything latency-sensitive stays on the model running locally on the GPU, open-ended questions go to the cloud, and if the cloud call fails it quietly falls back rather than dying.

Vision runs entirely on the local machine. Camera frames never leave the house. That was a requirement, not an optimization.

My part: Set the architecture constraints, including local-first, model-agnostic identity, and no camera data leaving the house, then drove the build against them.

Local model
Runs on-device, on GPU
Vision
Never leaves the machine
Memory
Durable facts + conversation recall
Model swaps
Identity survives them
  • Python
  • FastAPI
  • Ollama
  • Chroma
  • Claude API

Also shipped

Neon Ronin

Game

The Sakura Storm engine under a completely different theme. The test of whether the math and the presentation were genuinely separable.

Starpetal Harvest

Game

A 7×7 cluster-pays game with a tumble mechanic, where I learned how much of game feel is timing rather than art.

Freedom Septic

Client work

A working site for my brother's septic company in Shawnee, Oklahoma.

Running right now

A job agent, working in public.

It reads every posting across a watchlist of companies each morning, scores the survivors against my profile, and drafts the opener. Below is its actual output.

25
Postings read
25
Scored by Claude
1
Real matches
5
Companies watched

Zack is a strong full-stack builder whose AI project portfolio and recruiting-adjacent work map cleanly onto this 0-1 people-products role, though his professional tenure is the open question.

Drafted openerI noticed People Innovation Labs is building 0-1 recruiting tools and LLM-powered automations, which is squarely what I've been doing on my own — I built a job agent that automates candidate/role matching end-to-end, plus Jarvis, an LLM assistant wired into real workflows. I'd love to bring that full-stack React/Python and applied-LLM experience to your recruiting and culture products.
Figma · San Francisco, CA • New York, NY • United States

Software Engineer, Full Stack

63

Zack's React/TypeScript strength and heavy use of AI-assisted development align well with Figma's full-stack role, but his experience skews toward self-built projects rather than large-scale production systems at a company.

Drafted openerI noticed this role spans teams like the Figma Editor and Frontend Platform, and I've spent a lot of time building polished React/TypeScript front-ends end-to-end. My AI assistant Jarvis and an automated job agent I built lean heavily on AI-assisted development workflows, which lines up with the Copilot/Claude tooling you mention.

Zack is a strong AI builder whose voice and agent projects align well with ElevenLabs' platform, but he lacks the direct enterprise customer-facing and sales-engineering experience this role centers on.

Drafted openerI've been building AI agents end-to-end — from Jarvis, my personal assistant, to a job agent that automates application workflows — and ElevenLabs' push to productize common integration patterns for ElevenAgents is exactly the kind of scaling problem I like solving in Python. I'd love to talk about how I could turn recurring customer integrations into self-service tools and demos for your enterprise team.

See everything it found

Get in touch

Looking for my next role.

Best fit is a team that wants someone who can take an idea to shipped using AI, and who tells you plainly how it got built.

Zack Haynie · Shawnee, Oklahoma (open to remote)zack@zackhaynie.com