Skip to content

How the robot practices on Google's job application form (plain version)

Plain-language version. The engineer version with tables and file names is ../technical/scraper-automation-learnings-google.md.

Google's own careers site (google.com/about/careers) isn't built on off-the-shelf hiring software like Workday or Dayforce — Google built it themselves, in-house. That makes it the trickiest form in this whole practice series. We built a practice gym so the app can learn to fill it out without ever touching the real Google site. It all runs on your own computer, offline. Nothing is sent anywhere, no account is created, and the final "Submit" button is never really pressed.

Why Google's form is the hard one

Every other company's form we practiced on (Workday, Dayforce, iCIMS, and others) uses hiring software bought from an outside vendor. Those vendors leave "name tags" on every box specifically so robots and testing tools can find them reliably.

Google didn't buy that software — their own engineers built the form from scratch. That means there's no guaranteed name tag at all. The robot has to make its best guess at a hook, and be ready for that guess to be wrong or to disappear the next time Google updates their site.

The practice gym

  • We built a fake Google application form that lives only on your computer. It follows the same steps a real Google application does — upload a resume, contact info, a few job-specific questions, the optional equal-opportunity questions, review and submit — but it's a stand-in.
  • Each practice round, the fake form shuffles itself: it renames labels, sometimes in Spanish, hides the robot's best-guess name tag, scrambles the boxes' ID codes, adds a delay before the boxes appear, and occasionally leaves a required box out entirely or throws in a tricky open-ended question.
  • The app's form-filler walks through the whole thing and stops right before actually submitting.
  • It keeps a diary of what worked, what didn't, and how long it had to wait, so we can see where it struggles.

The big lesson: no single trick works twice

On Dayforce, the robot learned "wait for the page to finish loading, then wait for each box." That same waiting trick still works here — Google's form also loads empty and fills in a moment later. But the bigger lesson from Google is about not trusting any one clue too much.

Since there's no guaranteed name tag, the robot tries clues in order from "most likely to exist right now" to "most likely to still work no matter how much Google changes their site later":

  1. A custom hook the fake form uses to model Google's best-guess name tag.
  2. A partial match on the box's style class (works even if the exact hook changes).
  3. The plain old name attribute forms have used forever — boring, but durable.
  4. The accessibility label (what a screen reader would announce) — this tends to survive redesigns because accessibility rules don't go away.
  5. The visible label printed next to the box.
  6. A last-resort guess based on the hint text inside an empty box.

That's six fallback tricks — more than any other company's form needed — because there's no strong first clue to lean on. And critically: the robot never trusts the box's ID code alone, because Google's own builds can reshuffle those IDs any time they redeploy.

A tricky new problem: open-ended questions

Some Google job listings ask a free-text question like "Tell us about a relevant project." There's no dropdown, no fixed list of choices — just a blank box waiting for whatever words fit best. The robot can easily find the box. But it has no reliable way to know what to write in it, because the right answer depends on actually reading the job posting and matching it to the candidate's background.

Rather than make something up, the robot stops and asks for help — the same "flag it for a human" habit it learned on Dayforce's confusing degree box, but here it's a bigger deal, because a made-up answer to an open-ended question is much easier to get embarrassingly wrong than a formatting mismatch.

This is exactly the kind of moment we're building a smarter helper for — one that can actually read the page and the question and propose a good answer, instead of the robot guessing blindly or always stopping to ask a person. The pause point is already built and working; the smarter helper is the next piece that will plug into it.

Things that tripped it up (and how it recovered)

  • A required box was missing, same as before — the robot notes it and moves on.
  • "Upload your resume" instead of typing. The robot picks "enter it manually" instead of getting stuck on a file dialog.
  • The confusing open-ended question, described above — flagged instead of guessed.
  • The practice computer got busy. While testing this lab, other unrelated work was running on the same computer at the same time, which is a great stress test: a few practice rounds got stuck waiting, and — new lesson here — the whole browser window the robot uses crashed outright a few times under that much load, not just one practice round freezing up. The robot now notices when its browser has died and starts a new one before trying again, so one bad patch never kills the whole practice session. Every round still got written down in the diary, and the practice session still finished cleanly and printed its summary.
  • A sneaky startup bug. Early on, if you told the tool to save its diary to a plain filename (like the default setup does), it crashed immediately instead of running a single round. We found and fixed this, and added a check that would catch it again if it ever came back.

The safety promise

  • Nothing real is touched. The whole practice form runs on your own computer at a local-only address. There is no connection to the real Google careers site.
  • No account is ever made. Google's real form doesn't force an account step the way some other sites do, so there isn't one to simulate here.
  • Submit is never really pressed. The robot walks right up to the Submit button, notes "this is where I would submit," and stops. The practice form's fake submit button does nothing but print "nothing was sent." After every round the gym double-checks that no submission ever happened.