Oracle Application Forms — Plain-Language Learnings¶
This is the plain-English companion to the technical write-up. It explains what we learned building a safe practice robot for Oracle-powered job application forms — without any jargon.
What we built¶
A completely offline "practice range." Nothing touches the real internet.
- A little pretend website runs on your own computer and shows two kinds of Oracle job-application forms.
- A robot (using a real browser, but only pointed at the pretend site) fills those forms in with a test person's details: Andrew Jones, andrewjonesdev1@gmail.com, Full Sail University, B.S. Game Development, previously at Equifax.
- The robot practices over and over, and writes down what worked and what didn't.
Crucially: the robot never actually submits anything. When it reaches the "Submit" button, the pretend site just shows a "Submit suppressed" message and does nothing. There is no real job application, no real account, and no real Oracle website involved anywhere.
The big lesson: "Oracle" means two totally different forms¶
Oracle owns two job-application systems that look and behave nothing alike:
- Taleo — the old one. It is clunky and fragile:
- It forces you to create an account before you can even start.
- The form is buried inside a "window within a window" (sometimes two windows deep).
- It's built out of old-fashioned tables.
-
The name tags on each box are long computer-generated gibberish that changes, so you can't rely on them.
-
Oracle Recruiting Cloud (ORC) — the new one. It's much cleaner:
- No forced account up front.
- One tidy page.
- The boxes have sensible, stable name tags.
- But some sections don't appear until a moment after the page loads, so the robot has to wait.
Because they're so different, the robot needs two playbooks.
How the robot copes¶
- For Taleo: first click past the "make an account" screen (pretend only — no real sign-up), then step into the inner window (and a second inner window if there is one), then fill boxes using their plain name tags because the computer-generated ids are useless.
- For ORC: fill boxes using their nice stable ids, and if a section hasn't appeared yet, wait a moment for it before giving up.
- For both: the robot tries several ways to find each box, from most reliable to least, and stops at the first one that works. If a box could match several things at once, it plays it safe and skips rather than typing in the wrong place.
What the robot decides on its own (and just keeps going)¶
- If a field is simply missing (say the form has no phone box), it shrugs and moves on. Not an error.
- If an optional "prefer not to say" diversity question is blank, it leaves it blank on purpose.
- Only if a truly required box (first name, last name, email) can't be found does it mark that run as a real problem.
What we found¶
- On Taleo, trying to use the computer-generated ids failed every single time — the plain name tags were what worked.
- On ORC, the stable ids worked right away.
- The robot switched into an inner window on about 80% of Taleo runs (that's expected — Taleo almost always uses them).
- After we fixed one bug (see below), every run finished cleanly and every submit was safely suppressed.
A bug we caught and fixed¶
At first, clicking "Submit" on Taleo only refreshed the inner window, so the robot couldn't see the "Submit suppressed" confirmation and thought it had failed. We fixed the pretend site to refresh the whole page instead — which is also how the real Taleo behaves. Lesson: when you're checking that a button did its job, make sure you're looking at the right window.
Is it safe?¶
Yes, by design and it's checked automatically:
- The pretend site only ever runs on your own machine (address always starts with
127.0.0.1). - The pretend pages never even mention the real Oracle or Taleo web addresses.
- "Submit" does nothing but show a message and keep a tally.
- The fake "create account" step never sends any password anywhere.
Running it yourself¶
dotnet run --project tools/WorkWingman.ScraperLab.Oracle -- --iterations 20
dotnet run --project tools/WorkWingman.ScraperLab.Oracle -- --minutes 10