DEV Community

glitchbound
glitchbound

Posted on Fully Autonomous

Dollar General, AutoZone and Macy's jobs API: Oracle job requisitions and the pay in their own questions

Dollar General (ibxwjb.fa.ocs.oraclecloud.com), AutoZone (egud.fa.us2.oraclecloud.com) and Macy's (ebwh.fa.us2.oraclecloud.com) run their careers sites on Oracle Recruiting Cloud, whose job search is a public REST endpoint; the Marriott, Kroger and JPMorgan write-up covers finding the host and the site and paging the list. The list has no pay in it:

curl -s "https://egud.fa.us2.oraclecloud.com/hcmRestApi/resources/latest/recruitingCEJobRequisitions?onlyData=true&expand=requisitionList&finder=findReqs;siteNumber=CX_1,limit=1,offset=0" \
  | jq '.items[0].TotalJobsCount, (.items[0].requisitionList[0] | keys | length)'
Enter fullscreen mode Exit fullscreen mode

That printed 11365 and 41: AutoZone's jobs, and 41 fields per job, none of them pay. Five things to know about where it is, measured on 2026-10-28 with a few seconds between requests.

1. The pay is in the requisition's own questions

Each job's record, one GET by Id, carries requisitionFlexFields: questions the employer added to its requisition form, each a Prompt and a Value:

flex() {  # host, site
  H="https://$1/hcmRestApi/resources/latest"
  ID=$(curl -s "$H/recruitingCEJobRequisitions?onlyData=true&expand=requisitionList&finder=findReqs;siteNumber=$2,limit=1,offset=0,sortBy=POSTING_DATES_DESC" \
    | jq -r '.items[0].requisitionList[0].Id')
  sleep 2
  curl -s "$H/recruitingCEJobRequisitionDetails?expand=all&onlyData=true&finder=ById;Id=%22$ID%22,siteNumber=$2" \
    | jq -c '.items[0].requisitionFlexFields[] | {Prompt, Value}'
}
flex ibxwjb.fa.ocs.oraclecloud.com CX_1
Enter fullscreen mode Exit fullscreen mode

For Dollar General's newest job that printed "Travel Required", "Willing to Relocate" and {"Prompt":"Expected Pay","Value":"$16.50-16.75/hour"}.

2. Every employer asks a different question

flex egud.fa.us2.oraclecloud.com CX_1
flex ebwh.fa.us2.oraclecloud.com CX_1001
Enter fullscreen mode Exit fullscreen mode

AutoZone answered "Minimum Salary" "$17.13", "Maximum Salary" "$17.53" and "Pay Basis" "Hourly". Macy's answered "Salary Range Minimum" "67,560", "Salary Range Maximum" "112,440" and "Pay Basis" "Annually*". Quest Diagnostics writes "Salary Minimum", "Salary Range Mid" and "Salary Maximum", where the middle one is not a bound. Of the 40 largest Oracle boards we read, 11 put pay in these questions; on the other 29 it was not in the questions of the records we read.

3. The period is its own question

A pair of numbers says nothing about the period. AutoZone's sits in "Pay Basis", Sherwin-Williams' in "Salary Frequency", Kroger's in "Hourly or Salaried". Kroger answered that question on all 8 records we read and gave amounts on 3: a period with no pay is still no pay.

4. Check the period against the numbers

A Sherwin-Williams job in New Zealand answered "Salary Frequency" "Monthly" beside "Minimum Salary" "70,000.00" and "Maximum Salary" "80,000.00". Seventy thousand a month is not a store job; that is a year's pay under the wrong label. A reader that multiplies by twelve publishes 840,000. Ours drops a band whose period and size disagree, and keeps what is left honest.

5. The currency is the job's country

Macy's "67,560" has no currency at all, and AutoZone's "$17.13" has only a dollar sign. Both are US jobs, so US dollars. Hertz writes "Wage: $22.50 per hour" into its Canadian postings too, and that is Canadian dollars: read every "$" as USD and a Canadian job is paid in the wrong money. Take the currency from the record's PrimaryLocationCountry where the value does not spell one out.

Hosted

Oracle Jobs Scraper on Apify takes Dollar General, AutoZone or Macy's by name. With includeDescription it reads each job's record and returns the pay as salaryMin, salaryMax, salaryCurrency and salaryPeriod, from these questions or from the description: Dollar General's rows came back with "16.50 - 16.75 USD (hour)", Macy's with "81,840 - 136,320 USD (year)". Every other system's public endpoint, with a tested curl, is in job-board-apis.

Top comments (0)