O'Reilly Auto Parts (careers.oreillyauto.com), Dollar Tree (careers.dollartree.com) and Trane Technologies (careers.tranetechnologies.com) show their jobs on a Phenom careers site, and the same jobs sit in the Workday site behind it. Read both and you hold every job twice. Five things to know, measured on 2026-10-29 with a few seconds between requests.
1. Two sites, one list
The two sides report nearly the same count: O'Reilly 19,120 jobs on Phenom and 19,104 on Workday, Dollar Tree 15,537 and 15,573, Trane 1,751 and 1,746. They are not two pools of jobs, they are two views of one, refreshed at slightly different moments.
2. The requisition id joins them
req=$(curl -s -X POST https://careers.oreillyauto.com/widgets -H "Content-Type: application/json" \
-d '{"ddoKey":"refineSearch","jobs":true,"from":0,"size":1,"sort":{"order":"desc","field":"dateCreated"}}' \
| jq -r '.refineSearch.data.jobs[0] | "\(.reqId) \(.title)"')
echo "Phenom: $req"
curl -s -X POST https://oreillyauto.wd1.myworkdayjobs.com/wday/cxs/oreillyauto/oreilly/jobs \
-H "Content-Type: application/json" -d "{\"limit\":5,\"offset\":0,\"searchText\":\"${req%% *}\",\"appliedFacets\":{}}" \
| jq -c '{total, jobs: [.jobPostings[] | {title, id: .bulletFields[0]}]}'
That printed Phenom: R209433 Parts Specialist, then {"total":1,"jobs":[{"title":"Parts Specialist","id":"R209433"}]}. Phenom's reqId is Workday's requisition id, the one in bulletFields and at the end of the job's externalPath. The same held for Dollar Tree (R-363425) and Trane (JR-19071).
3. Same jobs, different order
O'Reilly's first 100 jobs on each side shared 52: the same openings, sorted differently. So comparing first pages, or titles and cities, says little. Collect both lists and join them on the employer plus the requisition id.
4. How many
In a nightly harvest of 2.77 million jobs from 52,000 boards on 2026-10-29, 45,024 rows were a second copy of a job read on another system: 19,080 at O'Reilly, 15,525 at Dollar Tree, 1,731 at Trane, then Northrop Grumman (1,360), Applied Materials (1,126) and Morgan Stanley (1,013), each with Eightfold over Workday, and Mayo Clinic (1,035) with Eightfold over Oracle. By system, 37,725 were Phenom over Workday, 5,256 Eightfold over Workday and 2,043 Eightfold over Oracle.
5. Keep the system's copy, keep the front end's extras
Key the join on the employer's name, not on each board's own label: Workday names O'Reilly by its tenant, oreillyauto, and Phenom says "O'Reilly Auto Parts", so a join on the raw labels finds nothing. Keep the Workday or Oracle copy, which is read whole, but take what only the front end has before dropping it: Dollar Tree's Phenom records carry a salaryRange that its Workday list does not, on 5,244 of its 15,526 jobs that night.
Hosted
Job Listings API on Apify searches that nightly index and returns each of these jobs once, with the pay the front end carried. The Company Career Page Jobs Scraper takes O'Reilly Auto Parts or Dollar Tree by name, reads both sites, and keeps one row per requisition. Every other system's public endpoint, with a tested curl, is in job-board-apis.
Top comments (0)