Dayforce Jobs API: Getting Dayforce Job Listings as Data

CleanJobData Engineering

TL;DR

Dayforce (formerly Ceridian) hosts career sites at jobs.dayforcehcm.com/{client}/{board}, and their job data is JSON tied to the career page's browser session, so a plain curl or fetch doesn't return jobs. Dayforce's documented APIs are for its customers and need credentials from the employer's own Dayforce account. The job data itself is well structured: locations come with ISO country and state codes, remote postings are flagged, and many jobs carry a minimum and maximum pay rate with an hourly or salaried pay type.

On this page

Dayforce has no public jobs API: its career sites load job data as JSON, but only inside the browser session the career page sets up, so a plain curl or fetch gets no jobs back. To get Dayforce job listings as data, you either use Dayforce's authenticated APIs as the employer, or use a job data API that already collects and normalizes them.

CleanJobData collects jobs from Dayforce career sites along with other ATS platforms and serves them in one schema, with structured locations and parsed pay. See the Jobs API docs.

At a Glance

Public jobs APINone
Career sitehttps://jobs.dayforcehcm.com/{clientNamespace}/{jobBoardCode}
Job pagehttps://jobs.dayforcehcm.com/{clientNamespace}/{jobBoardCode}/jobs/{id}
Job JSONTied to the career page's browser session
Official APICustomer APIs, credentials from the employer's account
SalaryMinimum and maximum pay rate plus pay type on many jobs
LocationStructured city, state code and ISO country code
RemotePostings with a virtual location are remote

What Dayforce Is

Dayforce is a human capital management suite covering payroll, HR, workforce management and recruiting. The company was called Ceridian until 2024, when it renamed itself after the product. Its customers are mostly mid-sized and large employers in the US, Canada, the UK and Australia, with many retail, hospitality, fitness and field-services companies among them.

Employers that use its recruiting module publish jobs to a Dayforce-hosted career site, where candidates search and apply.

What a Dayforce Career Site Looks Like

The current generation of Dayforce career sites lives on one shared host:

https://jobs.dayforcehcm.com/acme/CANDIDATEPORTAL
                             │    └ job board code
                             └ client namespace

Two values identify a board:

  • Client namespace. The employer's identifier, sometimes a readable name, sometimes an opaque code.
  • Job board code. Whatever the employer named its board: careers, CANDIDATEPORTAL and short codes are common. CANDIDATEPORTAL is an old default that many employers keep as an empty board next to their real one, so a board with no jobs may just be the wrong board.

Follow the employer's own careers link and copy the URL you land on after redirects, keeping its case.

Why a Plain Request Doesn't Return Jobs

The page you see is an application that fetches its jobs from Dayforce's servers after it loads. Those requests only succeed inside the browser session the career page establishes. Copy one into curl on its own and you get an error, not jobs.

It isn't a public API: it's an undocumented, internal endpoint built for Dayforce's own front end, it can change without notice, and Dayforce's terms govern how its site is used. It's not something to build a product on, and we don't publish a workaround for it.

The Official Route: Dayforce's Customer APIs

Dayforce provides REST APIs to its customers and integration partners. Access is set up through the employer's Dayforce account, and the credentials are tied to that employer. If you work with a company that uses Dayforce, for example as its recruiting-tech vendor, that's the supported way to read its job requisitions. It isn't a way to read other companies' job boards.

What Dayforce Job Data Contains

Dayforce's job data is better structured than most ATS platforms':

  • Locations are structured. Each location has a city name, a state or province code and an ISO alpha-2 country code, plus a formatted address. A job can list several locations, and two different sites in the same city are separate records.
  • Remote jobs are flagged. A posting with a virtual location is remote, and it often has no physical location at all.
  • Pay is structured on many jobs. A minimum and maximum rate come with a pay type, such as hourly or salaried. Hourly and annual figures sit in the same fields, so you have to read the pay type before comparing them.
  • Descriptions are plain text. They come as line-separated text with HTML entities such as   and £ left undecoded, not as HTML. Decode the entities and rebuild paragraphs if you want to render them.
  • Dates come in two precisions. Search results carry a date with no real time of day; each job also has a precise creation timestamp.
  • No employment type. We haven't seen a full-time or part-time field in Dayforce's job data.
  • Company details come from the board. The display name and website are board-level settings, and one board's website link had a doubled scheme (https://https://...), so validate URLs.

What a Normalized Dayforce Job Looks Like

Here's a Dayforce job as it comes back from CleanJobData, trimmed (values illustrative):

{
  "id": 51234567,
  "title": "Assistant Store Manager",
  "location": "Austin, TX, US",
  "locations": [
    {
      "kind": "city_state_country",
      "city_name": "Austin",
      "state_name": "Texas",
      "state_code": "TX",
      "country_code": "US",
      "is_primary": true
    }
  ],
  "published": "2026-10-28T15:42:10.000Z",
  "application_url": "https://jobs.dayforcehcm.com/acme/careers/jobs/48211",
  "has_remote": false,
  "salary_min": 52000,
  "salary_max": 60000,
  "salary_currency": "USD",
  "employment_type": null,
  "company": { "name": "Acme Retail" },
  "employer_id": "a1B2c3"
}

Locations resolve to city, state and country IDs you can filter on, hourly Dayforce pay is converted to an annual figure, and extra_fields=description adds the HTML description. See the salary extraction guide and the location normalization guide.

Getting Dayforce Jobs from CleanJobData

Dayforce jobs come back in the same schema as every other source. Because every current Dayforce career site shares one host, the domain filter scopes a query to Dayforce jobs:

curl "https://api.cleanjobdata.com/jobs?domain=jobs.dayforcehcm.com&location=US&limit=20" \
  -H "Authorization: Bearer $CLEANJOBDATA_API_KEY"

domain is an exact match on the host of each job's application_url. Use company_website_url or employer_id to scope to one employer, and page with the cursor in pagination.next_page. Coverage depends on which employers are in the dataset, so check that the companies you care about appear before you rely on it. For how Dayforce compares with the other 32 platforms, see the ATS public job postings API list.

FAQ

Does Dayforce have a public jobs API?

No. Dayforce career sites load jobs from JSON that only works inside the career page's own browser session, and Dayforce's documented APIs need credentials from the employer's Dayforce account.

Why does curl return an error for a Dayforce job search request?

The request depends on the session the career page sets up when it loads in a browser, so it fails on its own. It's an internal endpoint for Dayforce's front end, not a public API.

Do Dayforce job postings include salary?

Many do. Dayforce stores a minimum and maximum pay rate with a pay type such as hourly or salaried, which makes its pay data more structured than most ATS platforms'.

What is a Dayforce client namespace?

It's the employer's identifier in a Dayforce career site URL, the first path segment after jobs.dayforcehcm.com. The second segment is the job board code.