Costco (careers.costco.com), FedEx (fedex.jibeapply.com), H&R Block, PetSmart, Ulta Beauty and Universal Health Services run their careers sites on Jibe (iCIMS Talent Cloud). The site answers one GET with JSON, and its robots.txt is Allow: / with crawl-delay: 5.
curl -s "https://careers.costco.com/api/jobs?page=1&limit=100" \
| jq '.totalCount, (.jobs | length), .jobs[0].data.title'
Each job sits under jobs[].data and is richer than most careers APIs: title, req_id, street_address, city, state, postal_code, latitude and longitude, an ISO posted_date, the full description, categories and an apply_url. Four things to know, each measured on 2026-10-26 at one request every six seconds:
1. More than 100 a page is refused
limit=200 does not return 100. It answers HTTP 422 and no jobs.
2. Pages start at 1
page=0 is a 422 too. The first page is page=1.
3. The default order is not the newest
Without a sort, Costco's first job had been posted at the end of July. Ask for sortBy=posted_date&descending=true and the first rows are the latest postings:
curl -s "https://careers.costco.com/api/jobs?page=1&limit=5&sortBy=posted_date&descending=true" \
| jq -r '.jobs[].data | "\(.posted_date[:10]) \(.title)"'
4. Five seconds a page adds up
FedEx's site held 136,186 open jobs that day: 1,362 pages, which at the five seconds its robots.txt asks for is close to two hours. Costco held 20,663, H&R Block 18,613. Unless you need everything, let the site filter:
curl -s -G "https://careers.costco.com/api/jobs" --data-urlencode "page=1" \
--data-urlencode "limit=100" --data-urlencode "keywords=pharmacist" | jq '.totalCount'
keywords=pharmacist found 3,326 of Costco's jobs and location=Seattle found 538, each in one request.
Hosted
Company Career Page Jobs Scraper on Apify reads Costco, FedEx, H&R Block and the other Jibe employers by name, keeps to the five-second delay, and sends title and place filters to the site's own search. It covers 23 other career systems with the same row shape; their public endpoints, each with a tested curl, are in job-board-apis.
Top comments (1)
The two-hour FedEx walk can drift while you page. Keep req_id deduplication and a run checkpoint, and report the result as a time window rather than a single snapshot.