# Job Requisition Connector

The ATS Integration API provides the ability to create, update, fetch and remove job requisition details in Cornerstone. It creates the possibility to integrate other ATS with Cornerstone.

# Quick Start: Create Job Requisition

Creating a job requisition requires a POST request.

POST /v1/job-requisitions
HTTP 1.1
Host: {your portal}.csod.com
Authorization: Bearer {your oauth2 token}

{
    "externalId": "ats|csod|id|12345",
    "details": {
        "en-US": {
            "title": "software engineer",
            "description": "description",
            "jobDetailsUrl": "https://csod.com/jobs/1"
        }
    },
    "location": {
        "name": "Auckland, New Zealand",
        "countryCode": "NZ",
        "city": "Auckland",
        "isPrimary": true
    },
    "status": "open",
    "createdTime": "2021-04-29T09:12:33.001Z",
    "lastUpdatedTime": "2021-04-29T09:12:33.001Z",
    "expiryTime": "2021-12-29T09:12:33.001Z",
    "openings": 3,
    "defaultCulture": "en-US"
}

# Payload validation

  • externalId should be in format of ats|{ats-name}|id|{exteranl-id}
  • details is a group of key value pairs. Key is the culture name.
  • defaultCulture is a required field, the value must exist as a key in details field. It must be a valid supported IETF tag.
  • status is a required field, the valid value should be either open or closed
  • openings must not be negative.
  • location is a required field, when name sub field is not provided, city and countryCode must be provided. countryCode is 2 letters ISO 3166 Alpha 2 string.
  • There should be one and only one primary location (with isPrimary set to true).

# Quick Start: Create Job Requisition

Creating a job requisition requires a POST request.

POST /v1/job-requisitions
HTTP 1.1
Host: {your portal}.csod.com
Authorization: Bearer {your oauth2 token}

{
    "externalId": "ats|csod|id|12345",
    "details": {
        "en-US": {
            "title": "software engineer",
            "description": "description",
            "jobDetailsUrl": "https://csod.com/jobs/1"
        }
    },
    "location": {
        "name": "Auckland, New Zealand",
        "countryCode": "NZ",
        "city": "Auckland",
        "isPrimary": true
    },
    "status": "open",
    "createdTime": "2021-04-29T09:12:33.001Z",
    "lastUpdatedTime": "2021-04-29T09:12:33.001Z",
    "expiryTime": "2021-12-29T09:12:33.001Z",
    "openings": 3,
    "defaultCulture": "en-US"
}

# Payload validation

  • externalId should be in format of ats|{ats-name}|id|{exteranl-id}
  • details is a group of key value pairs. Key is the culture name.
  • defaultCulture is a required field, the value must exist as a key in details field. It must be a valid supported IETF tag.
  • status is a required field, the valid value should be either open or closed
  • openings must not be negative.
  • location is a required field, when name sub field is not provided, city and countryCode must be provided. countryCode is 2 letters ISO 3166 Alpha 2 string.
  • There should be one and only one primary location (with isPrimary set to true).

# Quick Start: Get Job Requisition

There are two ways to get job requisition, by external Id and Id.

# By ExternalId

External Id is a formatted string that consists of external ATS name and external job requisition Id. The format is "ats|{ats-name}|id|{identity-of-job-in-external-ATS}"

GET /services/api/x/perf-ats-integration-api/v1/job-requisitions/$externalId={external Id}
HTTP/1.1
Host: {your portal}.csod.com
Authorization: Bearer {your oauth2 token}

# By Id

Id is the internal identity you got from a success creation operation. It is GUID.

GET /services/api/x/perf-ats-integration-api/v1/job-requisitions/$id={guid}
HTTP/1.1
Host: {your portal}.csod.com
Authorization: Bearer {your oauth2 token}

# Quick Start: Update Job Requisition

This API currently only supports a full update. Similar to Get Job Requisition, there are two ways to identify a job requisition for a update: externalId and Id. The payload is similar to POST operation but require both externalId and Id exist in payload.

PUT /v1/job-requisitions/$id=8c4b4d0b-b597-41ea-9f1d-9900e0d14583
HTTP 1.1
Host: {your portal}.csod.com
Authorization: Bearer {your oauth2 token}

{
    "externalId": "ats|csod|id|12345",
    "id": "8c4b4d0b-b597-41ea-9f1d-9900e0d14583",
    "details": {
        "en-US": {
            "title": "software engineer",
            "description": "description",
            "jobDetailsUrl": "https://csod.com/jobs/1"
        }
    },
    "location": {
        "name": "Auckland, New Zealand",
        "countryCode": "NZ",
        "city": "Auckland",
        "isPrimary": true
    },
    "status": "open",
    "createdTime": "2021-04-29T09:12:33.001Z",
    "lastUpdatedTime": "2021-04-29T09:12:33.001Z",
    "expiryTime": "2021-12-29T09:12:33.001Z",
    "openings": 3,
    "defaultCulture": "en-US"
}

# Payload validation

The payload will be validated following the similar requirement in the Create Job Requisition operation.

# Quick Start: Delete Job Requisition

There are different ways to make job requisition invalid. Hard delete it via this DELETE endpoint or update the status of a job requisition via PUT.

# DELETE

Similar to GET and PUT operations, you need to provide either the externalId or Id of job requisition to get it removed from data store.

DELETE /v1/job-requisitions/$external-id=ats|csod|id|12345
HTTP 1.1
Host: {your portal}.csod.com
Authorization: Bearer {your oauth2 token}

# PUT

n order to mark a job requisition invalid, just specify the status "Closed" in job requisition payload and complete a PUT operation. The target job requisition would be deemed as invalid one and would not be used in job matching.