cd /news/developer-tools/we-built-a-failed-column-on-purpose-… · home topics developer-tools article
[ARTICLE · art-46614] src=dev.to ↗ pub= topic=developer-tools verified=true sentiment=· neutral

we built a 'failed' column on purpose, then caught our own agent triggering it

A developer building an auto-apply tool that reads application confirmation pages discovered a false negative bug where a network blip after form submission caused a successful application to be marked as 'failed'. The team fixed the issue by adding a 'submitClickIssued' gate in submitter.ts, ensuring that post-click transport errors no longer produce hard failures but instead flag applications for human review. The developer emphasizes that transparent error handling is more valuable than hiding failures.

read1 min views1 publishedJul 1, 2026

most auto-apply tools have a dirty secret: they only autofill the form. they drop your details in and stop. some press submit. almost none read the confirmation the applicant tracking system sends back afterward, which means they cannot actually tell a click from a landed application. so they show you "applied" and hope.

we read that confirmation. it is the whole point of what we build. and the side effect of reading it is that we have a status most tools do not: failed

. a column that says, out loud, this one did not go through.

having that column means we can be wrong out loud too. today we were.

our apply agent clicked submit on a real Greenhouse form. the form went through. then, about half a second later, a downstream network blip threw an error, and the old code took that to mean the whole run had failed. it stamped a real, registered application as failed

. a false negative on the one signal that matters most.

the fix (in submitter.ts

) is a gate we now call submitClickIssued

. once the agent has actually clicked submit, a later transport error can no longer produce a hard failed

. it resolves to requires_human_review

with a "likely landed, confirm this one" disposition instead. a blip after the click can no longer fake a failure. worst case, we ask you to double-check one, instead of lying to you in either direction.

it is not a glamorous ship. no new feature, no screenshot. but a tool that never fails is a tool that never tells you, and the boring reliability days are the actual product.

building this in public. no fabricated numbers, just the log.

── more in #developer-tools 4 stories · sorted by recency
── more on @greenhouse 3 stories trending now
sponsored brought to you by zahid.host 4,200+ EU-deployed projects
reading about agents? ship yours in a single git push.

Run your AI side-project on zahid.host

EU-based hosting, git-push deploys, automatic HTTPS, no cold starts. Free tier with a custom domain — perfect for shipping the agent you just read about.

$git push zahid main
Live at https://your-agent.zahid.host
Get free account → Pricing
from €0/mo · no card required
LIVE [news/we-built-a-failed-co…] indexed:0 read:1min 2026-07-01 ·