01 / Context
Why this project exists
Applying for engineering jobs is a data-entry problem wearing a career-defining costume. The same name, the same work history, and the same handful of demographic questions get retyped into a dozen incompatible applicant tracking systems, and the resume that should be tailored to each posting usually is not, because tailoring it by hand costs twenty minutes a listing.
I had already attacked this twice and stopped short both times. A Python scraping script proved the listings could be collected; an early browser extension proved a form could be filled but not reliably enough to trust. ApplyMaxxing is the third attempt, and the first one built as a product rather than an experiment: installable, versioned, signed, and billed.
02 / Approach
How the problem was framed
Two decisions shaped everything else. The first was local-first: the app is an Electron shell around a Node service writing to a SQLite database on the user's own machine, and the AI calls run on the user's own API keys. Nobody has to hand a stranger their work history to use it. The second was that the browser extension talks to the desktop app over a scanned range of local ports rather than through a server, so saving a job takes no account and no login.
The hard part is the autofill engine, and the interesting part is how it treats being wrong. An ATS form is a hostile target: shadow DOM, custom widgets, options phrased eleven different ways. The engine scans, resolves, executes, and verifies one frame at a time, and where it cannot match an option confidently it refuses to guess and escalates to the person instead. Demographic, salary, and EEO questions can always be declined regardless of saved answers. Checkbox writes are additive only, so it can never silently uncheck something a user set. Anything hand-edited outranks anything automated.
The engine was rewritten from roughly seven thousand lines to half that, and the rewrite shipped dark: it sits behind a flag that defaults off, and if a v2 pass finds no fields on a page the old engine silently re-runs it. The requirement I held myself to was that flag-off behavior stay byte-identical to the version already in users' hands.
03 / Result
What exists now
ApplyMaxxing is shipped and in use. Version 2.0.0 is published for macOS, Windows, and Linux with a notarized Mac build and working auto-update, reached through six public releases in ten days. Around a hundred and twenty thousand lines of application code sit behind it, with roughly two hundred and fifty test files, five shipped interface languages held in sync by a test that fails when a translation key goes missing, and per-site configuration for every major tracking system and job board I could get my hands on.
Around the app there is a marketing site, a live admin dashboard, and real billing: subscription tiers, a lifetime option, and a refund path. The companion extension recognizes roughly a hundred and fifty job-board and ATS URL patterns and saves any of them in one click.
What I will not claim here are user counts or revenue figures. The defensible statement is that it is a finished, signed, self-updating product with live commerce attached, built and maintained by one person.
04 / Reflection
Lessons and next steps
The lesson that transferred furthest is that safety is cheapest when it is structural. The app cannot double-submit an application, not because a guard catches the second click, but because the only points where the automation can pause are the points before a mutating click. There is no state in which the wrong thing is reachable. The same logic made the never-auto-submit rule and the no-blind-waits rule into tests rather than comments, which means a future version of me cannot quietly break them.
The other lesson is about shipping a rewrite. Putting v2 behind a default-off flag with an automatic fallback to v1 felt slow while I was doing it and looks obviously correct in hindsight: it let a five-thousand-line change land in a released product without a single user noticing the day it arrived.
Next is turning v2 on by default once its per-page fallback stops firing, publishing the extension to the Chrome Web Store, and finishing the remaining locales.
05 / SOURCE
See the product
The application is closed-source, but the product itself is public and the builds are downloadable.
Visit applymaxxing.com ↗