Cornerstone Jobs API: Getting Cornerstone Job Listings as Data

CleanJobData Engineering

TL;DR

Cornerstone OnDemand career sites live at {company}.csod.com/ux/ats/careersite/{id}/home, and their job search JSON only works inside the career page's browser session, so a plain curl or fetch returns no jobs. Cornerstone's documented REST APIs are for its customers and use credentials created in the customer's own portal. Its job data has structured locations with ISO alpha-2 country codes and M/D/YYYY posting dates, a shortened description in search results with the full ad per job, and no salary, remote or employment-type field.

On this page

Cornerstone OnDemand 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. To get Cornerstone job listings as data, you either use Cornerstone's authenticated customer APIs as the employer, or use a job data API that already collects and normalizes them.

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

At a Glance

Public jobs APINone
Career sitehttps://{company}.csod.com/ux/ats/careersite/{careerSiteId}/home
Job pagehttps://{company}.csod.com/ux/ats/careersite/{careerSiteId}/home/requisition/{id}?c={company}
Job JSONTied to the career page's browser session
Official APICustomer REST APIs, credentials from the customer's portal
LocationStructured city, state and ISO alpha-2 country
DatesM/D/YYYY
Salary / remote / employment typeNo fields

What Cornerstone Is

Cornerstone OnDemand (often shortened to CSOD) is a talent management suite best known for learning and training software, with a recruiting module that includes hosted career sites. Its customers are mostly large organizations: universities, banks, airlines, construction firms, retailers and manufacturers. It's used worldwide, and we've seen tenants in the US, Latin America, the UK and continental Europe, many with career sites in languages other than English.

What a Cornerstone Career Site Looks Like

Each customer has its own subdomain on csod.com, and the career site sits under a numbered path:

https://acme.csod.com/ux/ats/careersite/4/home
        └ tenant ┘                      └ career site ID

Two values identify a board:

  • Tenant. The subdomain, usually the employer's name or an abbreviation.
  • Career site ID. A small number that differs by employer and can't be guessed from the tenant. Some employers have several career sites, for example one for external candidates and one for internal ones.

Some employers still link to an older URL such as acme.csod.com/ats/careersite/search.aspx. In the cases we checked, the same tenant also served the current /ux/ats/careersite/ site. Individual jobs open at .../home/requisition/{id}?c={tenant}.

Why a Plain Request Doesn't Return Jobs

A Cornerstone career site is a client-side application. Once it loads, it asks Cornerstone's servers for jobs, and those requests are only accepted as part of the browser session the page has started. Copied into curl on their own, they're rejected.

These are internal endpoints for Cornerstone's own front end, not a public API. They're undocumented, they can change without notice, and Cornerstone's terms govern how its sites are used. We don't publish a way around that, and it's not a stable base for a product.

The Official Route: Cornerstone's REST APIs

Cornerstone publishes REST APIs for its customers, covering areas such as users, learning and recruiting. Access uses OAuth 2.0 client credentials that an administrator creates in the customer's own Cornerstone portal, so each set of credentials only reaches that customer's data. If you build tools for an employer that runs Cornerstone, that's the supported way to read its requisitions. It doesn't give you other employers' jobs.

What Cornerstone Job Data Contains

  • Locations are structured. Each job lists one or more locations with a city, a state or region, and an ISO alpha-2 country code such as US, CL or BR. There's no country-name lookup to do.
  • Dates are M/D/YYYY. That's true even on Latin American and European tenants, where you might expect day-first dates. A posting has an effective date and an expiration date.
  • Search results carry a shortened description. It's plain text, and on the board we compared it left out whole sections such as minimum and preferred qualifications. The full job ad is a separate, per-job record.
  • The full ad is one HTML block. It's usually a table of label/value rows, and the labels depend on the employer and even on the job category within one employer: one university's staff postings had 22 rows, its student-worker postings 13. Some tenants supply a plain-text description instead.
  • A "location" on the job ad isn't always a place. On some tenants it's a department or facility label like "Facilities Maintenance (215E2)". Use the structured locations for geography.
  • No salary, remote or employment-type field. Pay and work arrangements, when mentioned, are in the description.

What a Normalized Cornerstone Job Looks Like

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

{
  "id": 51377214,
  "title": "Research Program Coordinator",
  "location": "Albuquerque, NM, US",
  "locations": [
    {
      "kind": "city_state_country",
      "city_name": "Albuquerque",
      "state_name": "New Mexico",
      "state_code": "NM",
      "country_code": "US",
      "is_primary": true
    }
  ],
  "published": "2026-10-20T00:00:00.000Z",
  "application_url": "https://acme.csod.com/ux/ats/careersite/4/home/requisition/1187?c=acme",
  "has_remote": false,
  "employment_type": null,
  "salary_min": null,
  "company": { "name": "Acme University" },
  "employer_id": "a1B2c3"
}

The description is the full job ad rather than the shortened search-result text; request it with extra_fields=description. Salary is only filled when the ad states pay in text; see the salary extraction guide.

Getting Cornerstone Jobs from CleanJobData

Cornerstone jobs come back in the same schema as every other source:

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

Each Cornerstone employer has its own csod.com subdomain, so 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 Cornerstone compares with other platforms, see the ATS public job postings API list.

FAQ

Does Cornerstone OnDemand have a public jobs API?

No. Cornerstone career sites load jobs from JSON that only works inside the career page's browser session, and Cornerstone's documented REST APIs need OAuth credentials created in the customer's own portal.

What is the career site ID in a Cornerstone URL?

It's the number after /ux/ats/careersite/ in the career site URL. It differs by employer, and one employer can have more than one career site.

Do Cornerstone job postings include salary?

There's no structured salary field in Cornerstone's job data. When an employer publishes pay, it's written into the job ad.

What date format does Cornerstone use?

Posting dates are M/D/YYYY, month first, on every tenant we've checked, including ones in Latin America and Europe.