{"slug": "we-built-a-failed-column-on-purpose-then-caught-our-own-agent-triggering-it", "title": "we built a 'failed' column on purpose, then caught our own agent triggering it", "summary": "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.", "body_md": "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.\n\nwe 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`\n\n. a column that says, out loud, this one did not go through.\n\nhaving that column means we can be wrong out loud too. today we were.\n\nour 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`\n\n. a false negative on the one signal that matters most.\n\nthe fix (in `submitter.ts`\n\n) is a gate we now call `submitClickIssued`\n\n. once the agent has actually clicked submit, a later transport error can no longer produce a hard `failed`\n\n. it resolves to `requires_human_review`\n\nwith 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.\n\nit 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.\n\nbuilding this in public. no fabricated numbers, just the log.", "url": "https://wpnews.pro/news/we-built-a-failed-column-on-purpose-then-caught-our-own-agent-triggering-it", "canonical_source": "https://dev.to/whateverneveranywhere/we-built-a-failed-column-on-purpose-then-caught-our-own-agent-triggering-it-3gpl", "published_at": "2026-07-01 12:36:52+00:00", "updated_at": "2026-07-01 12:49:00.412221+00:00", "lang": "en", "topics": ["developer-tools", "ai-agents", "ai-products"], "entities": ["Greenhouse"], "alternates": {"html": "https://wpnews.pro/news/we-built-a-failed-column-on-purpose-then-caught-our-own-agent-triggering-it", "markdown": "https://wpnews.pro/news/we-built-a-failed-column-on-purpose-then-caught-our-own-agent-triggering-it.md", "text": "https://wpnews.pro/news/we-built-a-failed-column-on-purpose-then-caught-our-own-agent-triggering-it.txt", "jsonld": "https://wpnews.pro/news/we-built-a-failed-column-on-purpose-then-caught-our-own-agent-triggering-it.jsonld"}}