Skip to content

Teaching the assistant to fill in Paycom job applications (plain version)

Engineer version: ../technical/scraper-automation-learnings-paycom.md

Some employers run their job applications on a system called Paycom. It works a bit differently from Workday and UKG (two other big ones), so we built a practice range to teach the assistant how to fill in Paycom applications without ever touching a real one.

Everything here is a safe practice dummy

The practice range runs entirely on your own computer. There is no real Paycom website, no real internet connection, and no real "submit" button that sends anything to an employer. It's a pretend copy of a Paycom application that only exists on your machine.

No account is ever created, anywhere. Real Paycom applications ask you to sign in or create a candidate account. Our practice copy has a pretend version of that screen, but "creating an account" there does nothing except move to the next pretend page — it never talks to any real website, so there is no actual Paycom account sitting out there anywhere.

The most important rule: the assistant never actually submits. When it reaches the final "Submit Application" screen, it stops, writes down "I would submit here — but I won't," and starts over with a fresh pretend application. The submit button is wired to do nothing.

Why Paycom is harder than Workday (but different from UKG too)

Think of filling in a form as finding each box by a label on the back of it.

  • On Workday, every box has a neat, permanent barcode sticker. Find the sticker, find the box.
  • On UKG, there's no barcode, but nearly every box has a screen-reader tag that works almost as well.
  • On Paycom, there's no barcode and the screen-reader tags are hit-or-miss — sometimes there, sometimes not. The most dependable thing on a Paycom box turned out to be its plain id and its name, with the printed label as a solid backup, and the screen-reader tag only as a last-ditch extra.

So the assistant keeps a short list of ways to find each box, best first: its id, then its name, then the words printed next to it, then its screen-reader tag, then a greyed-out hint as a last resort.

The tricky part: figuring out which page you're on

Paycom applications sometimes put the optional demographic questions (gender, veteran status, disability — always optional, never required) on their own page, and sometimes tuck them onto the very last "review everything" page instead. Different employers set it up differently.

The assistant has to figure out which one is happening this time before it can fill anything in. This turned out to be trickier than it sounds, and the practice range caught two real mistakes while we were building it:

  1. First mistake: the assistant checked "is there a gender question on its own page?" — but the review page also has a gender question tucked into it, so the check kept getting fooled into thinking it was on the wrong page.
  2. Second mistake (found while fixing the first): the fix checked for a box that only appears on the dedicated demographic-questions page — but it checked using the box's id only, and sometimes the pretend site deliberately hides ids to make sure the assistant doesn't get lazy. When that happened, the assistant thought it was in the wrong place, skipped the entire page by mistake, and then couldn't find the submit button afterward.

The real fix was to check for a box using both its id and its name — the same "have a backup plan" idea used everywhere else. After that fix, every single practice run finished cleanly.

This is exactly why we practice on a fake copy that keeps changing instead of a single fixed layout: it deliberately surfaces the kind of "this works 90% of the time but fails in one specific setup" bug that would otherwise only show up on a real application, at the worst possible moment.

Other Paycom quirks the assistant learned to handle

  • "Upload your resume" screens. Like UKG, Paycom often pushes you to upload a resume file first. The assistant instead clicks the "Enter manually" link and types the details in.
  • Custom questions with no fixed pattern. Every employer using Paycom can add their own screening questions (earliest start date, desired salary, willingness to relocate, or something else entirely). There's no way to know ahead of time which ones will show up, so the assistant looks for whichever ones are actually there each time, fills in the ones it recognizes from your profile, and simply moves on if there aren't any that visit.
  • Slow-loading screens. Some screens appear a beat late while the page finishes setting itself up. The assistant waits patiently for each screen to actually show up before trying to type.

One thing it deliberately does not guess

Just like with Workday and UKG, there's a tricky spot around your degree. Your profile says "Bachelor of Science" in one box and "Game Development" in another — but some Paycom employers have a single box that wants them combined, like "B.S. in Game Development." Rather than guess the format, the assistant flags it as a judgement call and (in the real app) would pause to ask you, then remember your answer for next time.

What we ran

We ran 20 practice applications back to back. Every one finished, every one stopped safely at the submit screen without submitting, and no account was ever created anywhere. Along the way the practice range kept score of which "ways to find a box" worked and which failed — and, more importantly, it's the thing that caught both page-detection mistakes described above before they could ever reach a real application.

How to run a long practice session

If you want to leave it running to keep hardening the assistant:

dotnet run --project tools/WorkWingman.ScraperLab.Paycom -- --minutes 60

It will keep running fresh pretend applications for an hour, logging what it learns — and never submitting anything, and never creating any account, ever.