Skip to content

Paycor Scraper Automation Learnings

This is a local practice harness for Paycor-style job applications. It does not visit Paycor, Newton, or any real employer site. It does not create an account. It does not submit an application. The fake submit button only writes would submit (suppressed) and restarts the local practice flow.

What Was Built

  • A fake Paycor candidate portal that runs on 127.0.0.1.
  • A Playwright automation runner that fills the form with the local Andrew Jones profile.
  • A repeat loop that changes field IDs, labels, required fields, and missing fields so selectors get tested under different conditions.
  • Logs that show which selector worked, which ones missed, how long each step took, and what failed.

What Paycor-Like Forms Need

Paycor-style forms look more like regular web forms than Workday forms. Good targets are:

  • Field IDs when they are stable.
  • Field names when IDs change.
  • Labels and accessible names when both IDs and names are different.
  • Careful handling for optional fields, especially education and voluntary disclosure fields.

The local fixture also includes the candidate account step because real Paycor candidate portals commonly ask for one. In this lab that step is fake and local only.

How It Differs From Workday

Workday automation often depends on tenant URLs and Workday-specific field markers. Paycor-style automation needs broader fallbacks across IDs, names, labels, and ARIA labels.

The biggest judgement-call area is education. A profile may say B.S., while a form may say Bachelor's Degree, or the form may omit the degree field. The lab records that instead of guessing silently.

Logs

The run writes:

  • artifacts/paycor-lab/paycor-learnings.jsonl
  • artifacts/paycor-lab/selector-tallies.json
  • artifacts/paycor-lab/failure-modes.txt

These files show what the runner learned and where selectors need hardening.

Long Local Run

dotnet run --project tools/WorkWingman.ScraperLab.Paycor -- --minutes 60 --output artifacts/paycor-lab-long

For a fixed run, use:

dotnet run --project tools/WorkWingman.ScraperLab.Paycor -- --iterations 100