{
  "$type": "site.standard.document",
  "bskyPostRef": {
    "cid": "bafyreidlxgfbsshrnc5szq4eev3p77kisxetc2tjchsetknu3b72vzxajq",
    "uri": "at://did:plc:25rdn5elo5izoxrmtis34zuk/app.bsky.feed.post/3mpj5to76iuq2"
  },
  "coverImage": {
    "$type": "blob",
    "ref": {
      "$link": "bafkreibdzpidwyde4ukzpocaey5bwxfnuleqbzq25zgy55wakwmdqnwi7q"
    },
    "mimeType": "image/webp",
    "size": 78610
  },
  "path": "/whateverneveranywhere/i-built-an-auto-apply-tool-then-found-most-applications-never-confirm-they-submitted-1ink",
  "publishedAt": "2026-06-30T13:50:38.000Z",
  "site": "https://dev.to",
  "tags": [
    "automation",
    "buildinpublic",
    "career",
    "showdev",
    "https://aiapplyd.com/?ref=devto"
  ],
  "textContent": "solo founder, building in public. short writeup of the one engineering problem that became the whole product.\n\ni built a thing that auto-applies to jobs. the easy 90% is filling the form and clicking submit. the part nobody ships is the last 10%: did the application actually land in the company's ATS, or did the page just render something that looks like success.\n\nthe failure mode that scared me is the false-positive submit. a confirmation toast or \"thanks for applying\" screen can render even when the backend rejected the record. required field hidden, page bounced to an aggregator, role already closed. you get a green checkmark and nothing reached the employer.\n\nso i stopped optimizing for \"we filled the form\" and rebuilt around one question: did this submission actually go through.\n\nhow it verifies, the way a human would double-check:\n\n  * the post-submit confirmation state on the page\n  * a confirmation email landing\n  * the application showing up in the candidate portal\n\n\n\nit only marks a job \"submitted\" when at least two of those three independent signals agree. requiring 2-of-3 killed most of the false positives.\n\nother notes:\n\n  * it drives a real browser per application, not a background POST, because the big ATSs break the naive autofill path.\n  * when it gets stuck it stops and surfaces a specific reason (job closed, captcha wall, auth wall) instead of retrying forever and burning money.\n\n\n\nwhat i'd genuinely like feedback on: how would you tell a real ATS write apart from a UI that just looks successful? that's the hard part and i'm sure i'm missing cases.\n\nit's free to start if you want to poke at it: https://aiapplyd.com/?ref=devto",
  "title": "i built an auto-apply tool, then found most \"applications\" never confirm they submitted"
}