Skip to content

How we practice filling Meta-style job applications (plain-language)

This is the plain-English version of the Meta careers automation notes. If you want the code-level detail, see docs/technical/scraper-automation-learnings-meta.md.

The short version

Most big companies use an off-the-shelf "application system" (an ATS) — Workday, Greenhouse, iCIMS, and so on. Meta doesn't. Meta built its own custom application website from scratch, the way a handful of the very largest tech companies do. That means none of the shortcuts that work on the off-the-shelf systems apply here — we had to figure out a completely different way to reliably fill out the form. Like the other practice gyms, this one runs entirely against a fake copy that lives only on your own computer. Nothing real is ever touched — not the real Meta careers site, not Facebook, nothing.

Why a homemade website is actually harder than a big vendor's system

When a company uses Workday or Greenhouse, thousands of OTHER companies use the exact same system — so there are shared conventions our practice-gym engine can lean on (a company might rename things slightly, but there's always a family resemblance). Meta's site was built just for Meta. There's no family to compare it to. And it has one specific extra twist that makes it uniquely tricky:

The visual styling "names" on the page scramble themselves every time the site is rebuilt. Modern websites often generate a fresh, meaningless nickname for every visual style each time the developers publish a new version of the site — something like _8f3a instead of a readable name like "first-name-box". Those nicknames are only used for looks (making the box blue, rounding the corners), and they get reshuffled constantly. If our practice engine tried to find the "First Name" box by looking for one of those style-nicknames, it would work for exactly one version of the site and then break the very next time Meta pushes an update — possibly the same day.

So the engine has to ignore style-nicknames completely and look for things that don't get reshuffled on every rebuild:

  1. First, it looks for a plain, readable name tag on the box (like a label a person could read), if Meta's website happened to keep one.
  2. If that's not there, it looks for a near-match name tag (maybe it got a suffix added).
  3. If that's not there either, it checks the box's internal form-data name — a different kind of tag that tends to survive even when the readable name tag disappears.
  4. If that's gone too, it checks the accessibility description — the text a screen-reader would announce for a blind user. Big companies are legally and ethically obligated to keep these accurate, so they're surprisingly reliable.
  5. If even that's missing, it looks at the visible instruction text right next to the box (like the word "Email" printed above the box).
  6. As an absolute last resort, it checks the grayed-out hint text typed inside an empty box (like "you@example.com" shown before you start typing).

Six fallback plans deep, and NONE of them is ever the scrambled style-nickname — because we proved, by literally scrambling the nicknames differently every single practice round, that leaning on them would be building on sand.

What the practice gym does

Each practice round:

  1. Opens a fake Meta-style application page that lives only on your computer, with brand-new scrambled style-nicknames every single time (just like a real site update would produce).
  2. Sometimes the readable name tags are kept, sometimes they're renamed, and often they're dropped entirely — the practice gym deliberately makes the "dropped" case the MOST common one, because that's closer to how a hand-built site actually behaves.
  3. Fills in the contact info (name, email, phone), finds the resume-upload box (but never uploads anything real), and answers the job's specific screening questions.
  4. Hits the voluntary self-identification section (gender, veteran status, etc.) — filling this out is always optional. Sometimes it's a normal dropdown menu (easy). Sometimes it's a custom, fancier-looking set of buttons that don't behave like a normal dropdown at all — and in that case, the practice gym deliberately REFUSES to guess. Guessing on a sensitive, voluntary question is exactly the kind of thing that should pause and ask a person, not get automated away.
  5. Hits screening questions that are unique to this one specific job posting — since every posting can ask something different, there's no way to pre-memorize the "right" answer to all of them. Anything the engine doesn't clearly recognize also pauses and asks, rather than guessing.
  6. At the very end, it FINDS the "Submit Application" button (proving it could click it) and then deliberately does not click it — it just writes down "would have submitted here, but didn't" and starts the next practice round.

Why this is the best test case for giving the assistant real judgement

On the other practice gyms (the ones based on big vendor systems), the "ask a person" moments are pretty contained — usually just one dropdown menu with a fixed list of choices, like a degree picker. A simple scoring trick can often make a decent guess on its own.

Meta's homemade site breaks that assumption twice over. First, every single job posting can ask completely different questions, so there's no fixed list of "usual suspects" to prepare for ahead of time. Second, even the SHAPE of a tricky control can vary — sometimes it's a normal dropdown, and sometimes it's a custom-styled thing that doesn't even look like a dropdown to the computer.

That's exactly the situation where having a smart assistant "look at the actual screen and figure it out" beats any pre-written checklist. We're building exactly that kind of assistant separately (it's called the "page advisor," and it plugs in at the same pause-and-ask moment this practice gym already uses) — so all the pause points this practice gym creates are already shaped to hand off to that smarter assistant later, with no rework needed.

What we measured

Running the practice loop 20 times in a row (with the SAME starting conditions each time, so the results are exactly repeatable):

  • All 20 practice rounds finished successfully. Zero crashed.
  • Every required box (name, email, resume) got filled in every single time — even though the "readable name tag" trick alone only worked about half the time on any given attempt. The backup plans picked up the rest, every time.
  • The engine asked for a person's judgement about 29 times across the 20 rounds (a little over once per round) — mostly unfamiliar screening questions and the fancier self-identification widgets. That's a noticeably higher "please ask a human" rate than the other practice gyms, which makes sense: this site has no fixed script to memorize.
  • All 20 rounds correctly found the Submit button and refused to press it, every time.

Safety, always

Every single thing this practice gym does happens on a fake, made-up website your own computer is hosting for itself — nothing ever leaves your machine, nothing ever reaches metacareers.com or facebook.com, no account is ever created, and the "Submit" button is never actually pressed.