NAV Navbar
shell

Custom Apply API

Overview

This is the official documentation for the JazzHR Custom Apply API.

The Custom Apply API allows partners to send applications to JazzHR through a RESTful interface.

Authenticating Requests

Authorization: Bearer <token>

The bearer token associated with the verified JazzHR user will be included in the Authorization header of all requests, except for the initial request to /authenticate which will return that token.

This bearer token should uniquely identify the user within the Custom Apply API.

POST authentication

Endpoint

POST https://applyapi.jazz.co/v1/authentication

Request Headers

Accept: application/json
Authorization: Token <token>
Content-Type: application/json

Request Body

{
    "userName": "partner@email.com",
    "password": "<password>"
}

Response Headers

Content-Type: application/json

Response Body

{
    "token": "<token>"
}

Generates an authentication token for the specified username and password.

The token included in the response should be included in the header of subsequent requests

The lifetime for this generated token is 48 hours. Ideally, it should be cached and regenerated when it expires (subsequent requests respond with a 401 HTTP status code).

GET questions

Endpoint

GET https://applyapi.jazz.co/v1/job/<jobBoardCode>/question

Request Headers

Accept: application/json
Authorization: Token <token>
Content-Type: application/json

200 Response Headers

Content-Type: application/json

200 Response Body Example

[
    {
        "id": "firstName",
        "format": "Text",
        "isRequired": true,
        "label": "First Name",
        "options": null,
        "maxLength": 50
    },
    {
        "id": "1",
        "format": "Select",
        "isRequired": false,
        "label": "First Name",
        "options": [
            "Apple",
            "Orange",
            "Banana"
        ],
        "maxLength": null
    }
]

400 Response Headers

Content-Type: application/json

400 Response Body Example

{
    "code": 400,
    "message": "<message>"
}

Returns the questions for the specified job ID.

A question will have one of the following formats:

Questions of format Checkbox and Select will include an array of string options.

Some questions include a maxLength property that should ideally be enforced on the rendered HTML input element.

Parameters

jobBoardCode: string (required)

XML Feed

JazzHR has a customer centric XML feed containing a list of jobs and job details that JazzHR customer have chosen to syndicate. jobBoardCode can be found in https://subdomain.applytojob.com/apply/<jobBoardCode>/Job-Title. For example: 7mQxdKqo0I

You can find example XML here.

JSON Feed

JazzHR also has a global JSON based feed containing a list of jobs and job details that all JazzHR customer shave chosen to syndicate. jobBoardCode can be found at node positionProfiles.positionId.value

You can find example JSON here.

POST application

Endpoint

GET https://applyapi.jazz.co/v1/job/<jobBoardCode>/question

Request Headers

Accept: application/json
Authorization: Token <token>
Content-Type: application/json

200 Response Headers

Content-Type: application/json

200 Response Body Example

{
    "jobBoardCode": "BvGJvE",
    "source": "Example Source",
    "answers": [
        {
            "questionId": "firstName",
            "value": "John"
        },
        {
            "questionId": "lastName",
            "value": "Smith"
        },
        {
            "questionId": "startDate",
            "value": "2016-12-01"
        },
        {
            "questionId": "email",
            "value": "engineering@jazzhr.com"
        },
        {
            "questionId": "file",
            "value": "Sm9obiBTbWl0aApTb2Z0d2FyZSBFbmdpbmVlcgpKYXp6SFI="
        },
        {
            "questionId": "1",
            "value": "100"
        },
        {
            "questionId": "phone",
            "value": "(888) 885-5299"
        },
        {
            "questionId": "citizenWorkStatus",
            "value": "U.S. Citizen/Permanent Resident"
        }
    ]
}

204 Response Headers

Content-Type: application/json

400 Response Headers

Content-Type: application/json

400 Response Body Example

{
    "code": 400,
    "message": "<message>",
    "errors": []
}

400 Response Body With Validation Errors Example

[
    {
        "questionId": "11",
        "messages": [
            "This answer is required"
        ]
    },
    {
        "questionId": "email",
        "messages": [
            "This value is not a valid email address."
        ]
    }
]

Creates an application.

All answer values are of type string with specific validation constraints enforced for each format.

Checkbox

Value is one or more of the related question options, delimited by a pipe character (|). Options that contain a pipe should be escaped by a backslash character ().

Date

Value is of the format "YYYY-MM-DD".

Email

Value is a valid email address.

File

Value is the base64-encoded file contents for a file under 10MB with one of the following accepted MIME types:

Valid Values:

Resume

The question with an ID "resume" (and format "File") must be under 2MB with one of the following accepted MIME types:

Valid Values:

Number

Value is a numeric string.

Phone

Value contains at least seven numeric characters.

Select

Value is one of the related question options.

Text & Textarea

Value length is less than or equal to the question's "maxLength" property, if defined.