NAV 3 gray stripes for navigation bar

API Reference

API endpoint: https://api.jobscore.com/v1

The JobScore Hire API is a RESTful API designed to have predictable, resource-oriented URLs.

We use built-in HTTP features, like HTTP authentication and HTTP verbs, which can be understood by off-the-shelf HTTP clients. We use HTTP response codes to indicate API errors. We support cross-origin resource sharing to allow you to interact securely with our API from a client-side web application, but please never expose your secret API token in any public website’s client-side code.

Use Cases

The JobScore Hire API lets you build a variety of applications and integrations. Here are some examples of things you can do with the API:

The JobScore Hire API is not designed for you to build a customized careers site / jobs page. Please build your careers site using the Job Feed API.

The JobScore Hire API is in Limited Access to Enterprise customers and select partners. Interested partners should contact partners@jobscore.com.

Authentication

Example request using Token Authentication:

curl -X "GET" "https://api.jobscore.com/v1/users" \
  -H "Authorization: Token token=YOUR_PERSONAL_ACCESS_TOKEN"

Example request using Basic Authentication:

curl -X "GET" "https://api.jobscore.com/v1/users" \
  -u YOUR_PERSONAL_ACCESS_TOKEN:

cURL uses the -u flag to pass basic auth credentials (adding a colon after your API token prevents cURL from asking for a password).

You authenticate to our API by providing your Personal Access Token in the request. Your tokens carry many privileges, so be sure to keep them secret and secure!

All API requests must be made over HTTPS. Calls made over plain HTTP will fail. You must authenticate for all requests.

HTTP Token Authentication

You can authenticate via HTTP Token Authentication by sending an Authorization header with the Token parameter.

HTTP Basic Authentication

Alternatively, authentication to the API may occur via HTTP Basic Auth. Provide your personal access token as the basic auth username. You do not need to provide a password (we ignore it).

Impersonation

Example request using impersonation:

curl -X "GET" "https://api.jobscore.com/v1/candidates" \
  -H "Authorization: Token token=YOUR_PERSONAL_ACCESS_TOKEN"
  -H "X-On-Behalf-Of: user=ZrYIlgUtgCTUNhhSWxQmmw"

You can impersonate a different user by sending the X-On-Behalf-Of header. Only users with the Owner role can use such feature.

The content for the header must be a user’s id prefixed by “user=”, which you can fetch with the List Users method. Please refer to the example shown to the right.

Rate Limits

cURL uses the -v flag to print return headers.

curl -X "GET" "https://api.jobscore.com/v1/users" \
  -H "Authorization: Token token=YOUR_PERSONAL_ACCESS_TOKEN" \
  -v

Among other headers, you will find the following ones:

(...)
< X-Ratelimit-Limit: 3600
< X-Ratelimit-Remaining: 2891
(...)

We rate limit by user. By default, we allow 3,600 requests/hour. On every request, both HTTP headers X-RateLimit-Limit and X-RateLimit-Remaining will be returned. We use a fixed window implementation, meaning that your number of requests will be reset exactly 1 hour after you made the first request.

Rate limits are important to prevent abuse and keep the service available for everyone. If you need a higher rate limit for your integration(s), please contact api@jobscore.com and we’ll be happy to consider granting an exception.

Media Type

To conform to the JSON API specification, the Content-Type HTTP header must always be application/vnd.api+json.

Also, if you want to specify the application/vnd.api+json in the the Accept HTTP header, there must be at least one of such media type without any parameters.

Required HTTP Headers

JSON-API 1.0 requires the Content-Type header to be set. The Accept header is not required, but is recommended.

HTTP Method Headers
GET Accept: application/vnd.api+json
POST Content-Type: application/vnd.api+json (required)
Accept: application/vnd.api+json
PATCH Content-Type: application/vnd.api+json (required)
Accept: application/vnd.api+json
DELETE No specific headers required.

Responses and Errors

In order to allow usage from client-side web applications, the JobScore Hire API enables Cross-origin Resource Sharing, though you should never expose API tokens in visible source on public websites.

We use HTTP response codes to indicate success or failure of a request.

Response codes in the range 2xx indicate a successful request; 4xx range indicates an error with your request (this could be an invalid Content-Type, missing parameters, etc), and 5xx range indicates an error on our servers.

Code Description
200 OK: If data was requested, it will be available in the data field at the top level of the response body.
201 Created: Resource was successfully created and information is available in the data field at the top level of the response body.
400 Bad Request: The request data is invalid in some way.
401 Unauthorized: You are not authorized to access a resource. It could be that your authentication token is invalid.
403 Forbidden: You are sending an ID attribute when creating a resource. We do not support client-generated ids.
404 Not Found: The requested resource does not exist.
405 Method Not Allowed: You are using the wrong HTTP method. Use POST to create a resource, GET to get them and PATCH to update.
406 Not Acceptable: The Accept header you sent has not even one application/vnd.api+json media type without parameter. This check exists to conform to the JSON API specification.
415 Unsupported Media Type: The Content-Type header you sent is not application/vnd.api+json. This check exists to conform to the JSON API specification.
422 Unprocessable Entity: The request was formatted correctly but cannot be processed in its current form. Often used when the specified parameters fail validation errors.
429 Too Many Requests: You used more requests than you’re allowed to. Keep an eye on HTTP headers X-RateLimit-Limit and X-RateLimit-Remaining to prevent that from happening again.
500 Internal Server Error: Houston, we have a problem. Please try again, and report continued problems to api@jobscore.com
503 Service Unavailable: We’re offline for maintenance. Try again later.

Pagination

Example request:

curl -X "GET" "https://api.jobscore.com/v1/candidates?page%5Bnumber%5D=2&page%5Bsize%5D=10" \
  -H "Authorization: Token token=YOUR_PERSONAL_ACCESS_TOKEN"
{
  "data": ["REDACTED"],
  "links": {
    "self": "https://api.jobscore.com/v1/candidates?page%5Bnumber%5D=2&page%5Bsize%5D=10",
    "first": "https://api.jobscore.com/v1/candidates?page%5Bnumber%5D=1&page%5Bsize%5D=10",
    "prev": "https://api.jobscore.com/v1/candidates?page%5Bnumber%5D=1&page%5Bsize%5D=10",
    "next": "https://api.jobscore.com/v1/candidates?page%5Bnumber%5D=3&page%5Bsize%5D=10",
    "last": "https://api.jobscore.com/v1/candidates?page%5Bnumber%5D=4&page%5Bsize%5D=10"
  },
  "meta": {
    "pagination": {
      "resources": 39,
      "pages": 4
    }
  }
}

All resources with a list (candidates, jobs, etc) have pagination support. We follow the Pagination section from JSON API v1.0.

We accept pagination as query parameters. The page[number] parameter denotes the page number, starting from 1, with 0 being interpreted as 1. The page[size] denotes the number of records shown in each page. This number is 100 if omitted. The maximum is 100.

In order to help navigation, we return a links attribute in the JSON body response, with up to five keys containing URLs: first (the first page), last (the last page), prev (the previous page), next (the next page), and self (the current page).

We display the total counts under the meta.pagination dictionary. You can check how many records your search yielded under meta.pagination.resources, while you can see how many pages are there by reading meta.pagination.pages.

Sorting

Example request:

curl -X "GET" "https://api.jobscore.com/v1/candidates?sort=created_on" \
  -H "Authorization: Token token=YOUR_PERSONAL_ACCESS_TOKEN"

All resources with a list (candidates, jobs, etc.) support sorting. We follow the Sorting section from JSON API v1.0.

We accept sorting order as query parameters. The sort parameter denotes the sort field. Sorting is ascending by default, unless noted with a prefixed minus sign (“-”), which makes it descending. Most of the lists have default sort order as “-created_on”, showing an descending list of the created_on field, thus showing the most recently created resources.

Filtering

Example request:

curl -X "GET" "https://api.jobscore.com/v1/candidates?filter%5Bcreated_on_before%5D=2016-12-31T23:59:59Z" \
  -H "Authorization: Token token=YOUR_PERSONAL_ACCESS_TOKEN"

Most resources with a list (candidates, jobs, etc) support filtering. We follow the Filtering section from JSON API v1.0.

We accept filters as query parameters. The filter[] array denotes a list of filters that are ANDed. Different lists support different specific filters as noted below.

Candidates

Candidates represent specific people you are trying to hire right now — or at some point in the future.

The source represents who “gets credit” for finding a candidate. A source may include up to three parts:

  1. Source which explains how the candidate was added to you JobScore account. For example,someone may have applied because they found one of your jobs on a job board, a sourcer may have done research and found them using Google, or an employee may have added a friend’s resume directly into the system.
  2. Source detail provides more detail about the primary source. For instance, a candidate who found your job on a job board would have the primary source “Job Board” and the secondary source “Indeed” where a resume found on Google would have the primary source “Database” and secondary source “Google.”
  3. Referral data is information about the individual who referred someone. Referrals can be added to JobScore using different primary / secondary source combinations (directly entered by a user, replied to an email campaign, found through a social network share), but referral data captures who referred the candidate (first name, last name, email) so that person gets credit.

Each primary source has it’s own set of specific metadata that can be entered and customized. Learn more about sources in JobScore in this support article.

The Candidate Object

Attributes

first_name required, string
First name.
last_name required, string
Last name.
email string
Email address according to RFC 5322.
home_phone string
Phone number. If country is “US”, must be a valid 10-digit string, otherwise it is free text.
home_street1 string
Street address.
home_street2 string
Additional street address.
home_city string
City name.
home_state string
State name. If country is “US”, must be a valid 2 letters state, otherwise it is free text.
home_postal_code string
Postal code or Zip code. If country is “US”, must be Zip-5 or Zip-9.
home_country string
Country code, 2 letters.
profile_links[] list
Profile links, such as URLs for Facebook, Twitter and others.
profile_links[].url string
Social profile URL address
profile_links[].type string
Social profile URL type. Automatically detected. Optionally, three special types are allowed:
  • other
  • portfolio
  • blog
tags[] list
Tags provide additional context or information about candidates. They are a great way to group or categorize candidates with specific attributes. Want to learn more about tags? Read more about different ways to use tags in JobScore in this support article.
schools[] list
Education history.
schools[].degree_type string
degree_type code. Valid options:
  • certification
  • some_high_school
  • high_school
  • vocational
  • associates
  • some_college
  • bachelors
  • some_post_graduate
  • masters
  • doctorate
  • postdoctorate
schools[].degree_major string
Major.
schools[].name string
School name.
schools[].graduation_year string
Graduation year, with 4 digits (e.g.: 2010).
employers[] list
Employment history.
employers[].employer_name string
Company name for a candidate’s employer.
employers[].titles[] list
List of titles the candidate had in the former employer.
employers[].titles[].start_year integer
Start year.
employers[].titles[].end_year integer or string
End year number or special string `to_present`, which indicates that this title is the current position of the candidate.
employers[].titles[].title string
Title.
source string
Identifier for source. If left empty, it defaults to ‘user’ pointing to the logged in user. Valid options:
  • job_board:
    This candidate found your job opening on a Job Board.
    When using this source, it is required to set source_detail, and it must contain a name for an existing Job Board. You can get a list of job board names with the List Job Boards method.
  • company_website:
    This candidate found the job opening through your company’s website.
  • social_network:
    This candidate found the job opening through a social network share.
    When using this source, it is required to set source_detail, and it must contain a name for an existing Social Network. You can get a list of social network names with the List Social Networks method.
    When using this source, it is optional to set a referrer: source_referral_first_name, source_referral_last_name and source_referral_email.
  • user:
    This candidate was referred by a user.
    When using this source, it is required to set relationships.source_user, and it must contain an object referencing to a user. It must be referenced as a JSON API Resource linkage. You can fetch the list of all existing valid users through the List Users method.
    When using this source, it is optional to set a referrer: source_referral_first_name, source_referral_last_name and source_referral_email.
  • internal:
    This is a current employee that applied for an open job.
  • email:
    This candidate found the job opening because of referral email sent through JobScore
    When using this source, it is required to set source_detail, and it must contain the email address that referred him to the job.
    When using this source, it is optional to set referrer: source_referral_first_name, source_referral_last_name and source_referral_email.
  • search_firm:
    This candidate was sourced by a Search Firm.
    When using this source, it is required to set relationships.source_search_firm, and it must contain an object referencing to a search firm. It must be referenced as a JSON API Resource linkage. You can fetch the list of all existing valid search firm through the List Search Firms method.
    When using this source, it is required to set relationships.source_search_firm_recruiter, and it must contain an object referencing to a search firm recruiter. It must be referenced as a JSON API Resource linkage. You can fetch the list of all existing valid search firm recruiter through the List Search Firm Recruiters method.
  • database:
    This candidate was found through a resume database.
    When using this source, it is required to set source_detail, and it must contain a name for an existing Database. You can get a list of database names with the List Databases method.
  • event:
    This candidate was found through an event.
    When using this source, it is required to set source_detail, and it must contain the Event’s name.
    When using this source, it is required to set source_detail, and it must contain a name for an existing Event. You can get a list of Event names with the List Events method.
    When using this source, it is optional to set a referrer: source_referral_first_name, source_referral_last_name and source_referral_email.
  • other:
    This candidate was found through other means not listed here.
    When using this source, it is required to set source_detail, and it must contain a plain free-text field with details about how the candidate was sourced. HTML is not allowed. It must contain between 1 and 255 characters.
    When using this source, it is optional to set a referrer: source_referral_first_name, source_referral_last_name and source_referral_email.
  • jobscore_network (read-only):
    This is shown when your company purchased a candidate’s profile from JobScore. You can find candidates with this source, but you can’t set a candidate to have this source.
source_detail hash
Details of the candidate’s source. This field’s content changed according to the source. It is required whenever source is job_board, social_network, user, email, search_firm, database, event or other.
source_referral_first_name string
Referral first name. Referral is someone that referred the job.
When this attribute is set, it is required to set source_referral_last_name and source_referral_email.
Only available if source is social_network, event, user, email or other.
source_referral_last_name string
Referral first name. Referral is someone that referred the job.
When this attribute is set, it is required to set source_referral_first_name and source_referral_email.
Only available if source is social_network, event, user, email or other.
source_referral_email string
Referral’s email address according to RFC 5322. Referral is someone that referred the job.
When this attribute is set, it is required to set source_referral_first_name and source_referral_last_name.
Only available if source is social_network, event, user, email or other.
created_on timestamp ISO8601, read-only
Record creation time in ISO 8601 format.
updated_on timestamp ISO8601, read-only
Record last update time in ISO 8601 format.

Note: The source_id and source_detail must not be set when the source of the candidate is a Search Firm. Currently we do not support writing Search Firms sources.

A candidate also has the following relationships:

To facilitate the retrieval of related resources, relationships are also provided in the form of JSON API links.

List Candidates

curl -X GET https://api.jobscore.com/v1/candidates?page%5Bsize%5D=2 \
  -H 'Authorization: Token token=YOUR_PERSONAL_ACCESS_TOKEN'

Returns JSON structured like this:

{
  "data": [
    {
      "id": "IvV2eM3TnFb2X5J7nlW35g",
      "type": "candidates",
      "attributes": {
        "first_name": "Peter",
        "last_name": "Smith",
        "email": "petesmith29@example.org",
        "created_on": "2015-12-01T12:00:16.000Z",
        "updated_on": "2015-12-01T12:00:16.000Z",
        "home_phone": "555-555-5555",
        "home_street1": "104 Example St",
        "home_street2": "Apt. 2",
        "home_city": "Exampletown",
        "home_state": "CA",
        "home_postal_code": "94000",
        "home_country": "US",
        "source": "user",
        "source_detail": null,
        "profile_links": [
          {
            "url": "https://www.facebook.com/PeterSmithExample",
            "type": "facebook"
          },
          {
            "url": "https://twitter.com/PeterSmithExample",
            "type": "twitter"
          }
        ],
        "tags": [
          "expert"
        ],
        "schools": [
          {
            "degree_type": "masters",
            "degree_major": "Physics",
            "name": "King's College London",
            "graduation_year": "1952"
          }
        ],
        "employers": [
          {
            "employer_name": "Physics Enterprise",
            "titles": [
              {
                "start_year": 2010,
                "end_year": 2014,
                "title": "Physics Specialist"
              }
            ]
          }
        ],
        "source_referral_email": null,
        "source_referral_first_name": null,
        "source_referral_last_name": null
      },
      "relationships": {
        "source_user": {
          "data": {
            "id": "aU0UzeSUur6Ak63kKeJOM4",
            "type": "users"
          }
        },
        "primary_resume": {
          "data": {
            "id": "5aIc9hJH9ru8LgvhuitM_g",
            "type": "documents"
          }
        },
        "candidate_emails": {
          "data": [

          ]
        }
      },
      "links": {
        "notes": {
          "href": "/v1/candidates/IvV2eM3TnFb2X5J7nlW35g/notes"
        },
        "assignments": {
          "href": "/v1/candidates/IvV2eM3TnFb2X5J7nlW35g/assignments"
        }
      }
    },
    {
      "id": "TYbRbNaTBB0jp3uFWsuOaQ",
      "type": "candidates",
      "attributes": {
        "first_name": "François",
        "last_name": "Higgs",
        "email": "f_higgs@example.org",
        "created_on": "2015-09-12T16:15:04.000Z",
        "updated_on": "2015-09-12T16:15:04.000Z",
        "home_phone": "555-555-5555",
        "home_street1": "101 Demonstration St",
        "home_street2": "",
        "home_city": "Sometown",
        "home_state": "CA",
        "home_postal_code": "95000",
        "home_country": "US",
        "source": "other",
        "source_detail": "Read article about him.",
        "profile_links": [
          {
            "url": "https://www.facebook.com/FHiggsExample",
            "type": "facebook"
          },
          {
            "url": "https://twitter.com/Official_Higgs_Example",
            "type": "twitter"
          }
        ],
        "tags": [

        ],
        "schools": [
          {
            "degree_type": "masters",
            "degree_major": "Physics",
            "name": "Université Libre de Bruxelles",
            "graduation_year": "1977"
          }
        ],
        "employers": [
          {
            "employer_name": "Gravity Inc",
            "titles": [
              {
                "start_year": 2007,
                "end_year": null,
                "title": "Physics Expert"
              }
            ]
          }
        ],
        "source_referral_email": null,
        "source_referral_first_name": null,
        "source_referral_last_name": null
      },
      "relationships": {
        "primary_resume": {
          "data": null
        },
        "candidate_emails": {
          "data": [

          ]
        }
      },
      "links": {
        "notes": {
          "href": "/v1/candidates/TYbRbNaTBB0jp3uFWsuOaQ/notes"
        },
        "assignments": {
          "href": "/v1/candidates/TYbRbNaTBB0jp3uFWsuOaQ/assignments"
        }
      }
    }
  ],
  "links": {
    "self": "https://api.jobscore.com/v1/candidates?page%5Bnumber%5D=1&page%5Bsize%5D=2",
    "first": "https://api.jobscore.com/v1/candidates?page%5Bnumber%5D=1&page%5Bsize%5D=2",
    "prev": null,
    "next": "https://api.jobscore.com/v1/candidates?page%5Bnumber%5D=2&page%5Bsize%5D=2",
    "last": "https://api.jobscore.com/v1/candidates?page%5Bnumber%5D=2&page%5Bsize%5D=2"
  },
  "meta": {
    "pagination": {
      "resources": 3,
      "pages": 2
    }
  }
}

Get list of candidates.

HTTP Request

GET /candidates

Parameters

page[number] integer
Page number. Starts at 1. Default is 1.
page[size] integer
Number of records per page. Maximum is 100. Default is 100.
sort string
Sort order. Allowed attribute is created_on. Prepend with a - (minus) sign to reverse the order. Default is -created_on.
filter[created_on_after] timestamp ISO8601
Filter that returns only records created after given date. Date must be in ISO8601 format. Default is empty. Example: 2015-12-31T23:59:59Z
filter[created_on_before] timestamp ISO8601
Filter that returns only records created before given date. Date must be in ISO8601 format. Default is empty. Example: 2015-12-31T23:59:59Z
filter[email] string
Filter that returns only records with exact match for the given email address (case insensitive). Email address must follow RFC 5322.
filter[has_status] string
Filter that returns only candidate cards which have at least one job assignment with the given status. Valid parameters are: brandnew, active, active:sub_status_id, hired, declined and withdrawn.
included_relationships[] string
Include record relationships in the returned query, which are placed inside a field names included. Valid options are: job_assignments

Meta Attributes

This action returns a meta attribute that cointains information related with your pagination. Those attributes are no specified by the JSON API, but we return them in order to make it easier for our customers using the API.

meta.pagination.resources integer
Total number of resources your filters found (or all you have, if you didn’t set any filters). This includes results across all pages.
meta.pagination.pages integer
Total number of pages.

Get Candidate

curl -X GET https://api.jobscore.com/v1/candidates/IvV2eM3TnFb2X5J7nlW35g \
  -H 'Authorization: Token token=YOUR_PERSONAL_ACCESS_TOKEN'

Returns JSON structured like this:

{
  "data": {
    "id": "IvV2eM3TnFb2X5J7nlW35g",
    "type": "candidates",
    "attributes": {
      "first_name": "Peter",
      "last_name": "Smith",
      "email": "petesmith29@example.org",
      "created_on": "2015-12-01T12:00:16.000Z",
      "updated_on": "2015-12-01T12:00:16.000Z",
      "home_phone": "555-555-5555",
      "home_street1": "104 Example St",
      "home_street2": "Apt. 2",
      "home_city": "Exampletown",
      "home_state": "CA",
      "home_postal_code": "94000",
      "home_country": "US",
      "source": "user",
      "source_detail": null,
      "profile_links": [
        {
          "url": "https://www.facebook.com/PeterSmithExample",
          "type": "facebook"
        },
        {
          "url": "https://twitter.com/PeterSmithExample",
          "type": "twitter"
        }
      ],
      "tags": [
        "expert"
      ],
      "schools": [
        {
          "degree_type": "masters",
          "degree_major": "Physics",
          "name": "King's College London",
          "graduation_year": "1952"
        }
      ],
      "employers": [
        {
          "employer_name": "Physics Enterprise",
          "titles": [
            {
              "start_year": 2010,
              "end_year": 2014,
              "title": "Physics Specialist"
            }
          ]
        }
      ],
      "source_referral_email": null,
      "source_referral_first_name": null,
      "source_referral_last_name": null
    },
    "relationships": {
      "source_user": {
        "data": {
          "id": "a3yxNySUur6Ar93kKeJOM4",
          "type": "users"
        }
      },
      "primary_resume": {
        "data": {
          "id": "5aIc9hJH9ru8LgvhuitM_g",
          "type": "documents"
        }
      },
      "candidate_emails": {
        "data": [

        ]
      }
    },
    "links": {
      "notes": {
        "href": "/v1/candidates/IvV2eM3TnFb2X5J7nlW35g/notes"
      },
      "assignments": {
        "href": "/v1/candidates/IvV2eM3TnFb2X5J7nlW35g/assignments"
      }
    }
  }
}

Get existing candidates.

HTTP Request

GET /candidates/:id

Parameters

id required, uid
Candidate’s unique identifier.
included_relationships[] string
Include record relationships in the returned query, which are placed inside a field names included. Valid options are: job_assignments

Candidate Documents

Candidate documents represent resumes and cover letters. They are always associated with a candidate. Resumes and cover letters may be used in job assignments.

A candidate may have more than one resumes attached, but has only one primary resume. This is determined by the primary_resume relationship in the candidates resource.

The Candidate Document Object

Attributes

file_name required, string
The file name, such as resume.pdf. When fetching records, it is always present. When creating a new document, we will deduce the `file_name` from the attribute `filename` sent via `multipart/form-data`.
mime_type required, string, read-only
The MIME type of the file. This attribute is read-only and will be deduced from the file we receive.
purpose required, string
The purpose of this file. Valid options:
  • resume: A candidate resume.
  • cover_letter: A cover letter used when applying for a job by creating a new assignment.
created_on timestamp ISO8601, read-only
Record creation time in ISO 8601 format.
updated_on timestamp ISO8601, read-only
Record last update time in ISO 8601 format.

List Documents

curl -X GET https://api.jobscore.com/v1/candidates/l4hjLAjTtrLDJje6kmpU9w/documents?page%5Bsize%5D=2 \
  -H 'Authorization: Token token=YOUR_PERSONAL_ACCESS_TOKEN'

Returns JSON structured like this:

{
  "data": [
    {
      "id": "IFnHJqU3v-kq13Y_yuXPWQ",
      "type": "documents",
      "attributes": {
        "file_name": "resume.doc",
        "mime_type": "application/msword",
        "purpose": "resume",
        "created_on": "2015-12-01T12:00:16.000Z",
        "updated_on": "2015-12-01T12:00:16.000Z"
      }
    },
    {
      "id": "HJTgCBHzkp62anvLOQ9RaQ",
      "type": "documents",
      "attributes": {
        "file_name": "cover_letter.html",
        "mime_type": "text/html",
        "purpose": "cover_letter",
        "created_on": "2015-09-12T16:15:04.000Z",
        "updated_on": "2015-09-12T16:15:04.000Z"
      }
    }
  ],
  "links": {
    "self": "https://api.jobscore.com/v1/candidates/l4hjLAjTtrLDJje6kmpU9w/documents?page%5Bnumber%5D=1&page%5Bsize%5D=2",
    "first": "https://api.jobscore.com/v1/candidates/l4hjLAjTtrLDJje6kmpU9w/documents?page%5Bnumber%5D=1&page%5Bsize%5D=2",
    "prev": null,
    "next": "https://api.jobscore.com/v1/candidates/l4hjLAjTtrLDJje6kmpU9w/documents?page%5Bnumber%5D=2&page%5Bsize%5D=2",
    "last": "https://api.jobscore.com/v1/candidates/l4hjLAjTtrLDJje6kmpU9w/documents?page%5Bnumber%5D=2&page%5Bsize%5D=2"
  },
  "meta": {
    "pagination": {
      "resources": 3,
      "pages": 2
    }
  }
}

Get list of attached documents. You may only list documents for a specific candidate.

HTTP Request

GET /candidates/:candidate_id/documents/:id

Parameters

candidate_id required, uid
Candidate’s unique identifier.
page[number] integer
Page number. Starts at 1. Default is 1.
page[size] integer
Number of records per page. Maximum is 100. Default is 100.
sort string
Sort order. Allowed attribute is created_on. Prepend with a - (minus) sign to reverse the order. Default is -created_on.
filter[created_on_after] timestamp ISO8601
Filter that returns only records created after given date. Date must be in ISO8601 format. Default is empty. Example: 2015-12-31T23:59:59Z
filter[created_on_before] timestamp ISO8601
Filter that returns only records created before given date. Date must be in ISO8601 format. Default is empty. Example: 2015-12-31T23:59:59Z

Meta Attributes

This action returns a meta attribute that cointains information related to your pagination. Those attributes are not specified by the JSON API, but we return them in order to make it easier for our customers using the API.

meta.pagination.resources integer
Total number of resources your filters found (or all you have, if you didn’t set any filters). This includes results across all pages.
meta.pagination.pages integer
Total number of pages.

Get Document

curl -X GET https://api.jobscore.com/v1/candidates/l4hjLAjTtrLDJje6kmpU9w/documents/IFnHJqU3v-kq13Y_yuXPWQ \
  -H 'Authorization: Token token=YOUR_PERSONAL_ACCESS_TOKEN'

Returns JSON structured like this:

{
  "data": {
    "id": "IFnHJqU3v-kq13Y_yuXPWQ",
    "type": "documents",
    "attributes": {
      "file_name": "resume.doc",
      "mime_type": "application/msword",
      "purpose": "resume",
      "created_on": "2015-12-01T12:00:16.000Z",
      "updated_on": "2015-12-01T12:00:16.000Z"
    }
  }
}

Get existing candidate document metadata (not the file itself). You’ll need to use the Download method in order to download the file.

HTTP Request

GET /candidates/:candidate_id/documents/:id

Parameters

candidate_id required, uid
Candidate’s unique identifier.
id required, uid
Candidate Document’s unique identifier.

Download Document

cURL uses the -v flag to print return headers.

curl -X GET https://api.jobscore.com/v1/candidates/l4hjLAjTtrLDJje6kmpU9w/documents/IFnHJqU3v-kq13Y_yuXPWQ/download \
  -H 'Authorization: Token token=YOUR_PERSONAL_ACCESS_TOKEN'
  -v

Among other headers, you will find the following:

(...)
< Location: https://s3.amazonaws.com/jobscore-filestore/3cdd753c67638b901d27ca753ad54f89?X-Amz-Expires=600&X-Amz-Date=20160218T152302Z&X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=AKIAILXAOYR2FWDLAARQ/20160218/us-east-1/s3/aws4_request&X-Amz-SignedHeaders=host&X-Amz-Signature=b3ebac245c3fbc5d205a362de36e23c5de70adae918a8d058461df054acab0bf
(...)

Downloads candidate document. It will return a redirect to a new address from Amazon S3, valid for 10 minutes after you make the request. Keep an eye out for the Location key in the HTTP headers section, follow that URL to download the file.

HTTP Request

GET /candidates/:candidate_id/documents/:id/download

Parameters

candidate_id required, uid
Candidate’s unique identifier.
id required, uid
Candidate Document’s unique identifier.

Candidate Notes

Candidate Notes are how your team enters information about candidates and discusses them.

The Candidate Note Object

Attributes

content required, string
Note’s content, exclusively in HTML format. When creating a new note or updating, this field will be sanitized.
private boolean
Whether this is a private note (true) or not (false). Default is false.
created_on timestamp ISO8601, read-only
Record creation time in ISO 8601 format.
updated_on timestamp ISO8601, read-only
Record last update time in ISO 8601 format.

List Notes

curl -X GET https://api.jobscore.com/v1/candidates/l4hjLAjTtrLDJje6kmpU9w/notes?page%5Bsize%5D=2 \
  -H 'Authorization: Token token=YOUR_PERSONAL_ACCESS_TOKEN'

Returns JSON structured like this:

{
  "data": [
    {
      "id": "8olEVH44vvdUPXdzdojZLA",
      "type": "notes",
      "attributes": {
        "content": "<p>Good candidate for this job opportunity. I say we should hire him.</p>",
        "private": false,
        "created_on": "2015-12-01T12:00:16.000Z",
        "updated_on": "2015-12-01T12:00:16.000Z"
      }
    },
    {
      "id": "4B-SQeQJGf-JxVoIbusWIw",
      "type": "notes",
      "attributes": {
        "content": "<p>According to this candidate's LinkedIn profile, he already worked at the same company as Mark from R&amp;D. We should inquire him if they knew each other.</p>",
        "private": false,
        "created_on": "2015-09-12T16:15:04.000Z",
        "updated_on": "2015-09-12T16:15:04.000Z"
      }
    }
  ],
  "links": {
    "self": "https://api.jobscore.com/v1/candidates/l4hjLAjTtrLDJje6kmpU9w/notes?page%5Bnumber%5D=1&page%5Bsize%5D=2",
    "first": "https://api.jobscore.com/v1/candidates/l4hjLAjTtrLDJje6kmpU9w/notes?page%5Bnumber%5D=1&page%5Bsize%5D=2",
    "prev": null,
    "next": "https://api.jobscore.com/v1/candidates/l4hjLAjTtrLDJje6kmpU9w/notes?page%5Bnumber%5D=2&page%5Bsize%5D=2",
    "last": "https://api.jobscore.com/v1/candidates/l4hjLAjTtrLDJje6kmpU9w/notes?page%5Bnumber%5D=2&page%5Bsize%5D=2"
  },
  "meta": {
    "pagination": {
      "resources": 3,
      "pages": 2
    }
  }
}

Get list of notes. You may only list notes for a specific candidate.

HTTP Request

GET /candidates/:candidate_id/notes

Parameters

candidate_id required, uid
Candidate’s unique identifier.
page[number] integer
Page number. Starts at 1. Default is 1.
page[size] integer
Number of records per page. Maximum is 100. Default is 100.
sort string
Sort order. Allowed attribute is created_on. Prepend with a - (minus) sign to reverse the order. Default is -created_on.
filter[created_on_after] timestamp ISO8601
Filter that returns only records created after given date. Date must be in ISO8601 format. Default is empty. Example: 2015-12-31T23:59:59Z
filter[created_on_before] timestamp ISO8601
Filter that returns only records created before given date. Date must be in ISO8601 format. Default is empty. Example: 2015-12-31T23:59:59Z

Meta Attributes

This action returns a meta attribute that cointains information related to your pagination. These attributes are not specified by the JSON API, but we return them in order to make it easier for our customers using the API.

meta.pagination.resources integer
Total number of resources your filters found (or all you have, if you didn’t set any filters). This includes results across all pages.
meta.pagination.pages integer
Total number of pages.

Get Note

curl -X GET https://api.jobscore.com/v1/candidates/l4hjLAjTtrLDJje6kmpU9w/notes/8olEVH44vvdUPXdzdojZLA \
  -H 'Authorization: Token token=YOUR_PERSONAL_ACCESS_TOKEN'

Returns JSON structured like this:

{
  "data": {
    "id": "8olEVH44vvdUPXdzdojZLA",
    "type": "notes",
    "attributes": {
      "content": "<p>Good candidate for this job opportunity. I say we should hire him.</p>",
      "private": false,
      "created_on": "2015-12-01T12:00:16.000Z",
      "updated_on": "2015-12-01T12:00:16.000Z"
    }
  }
}

Get existing notes.

HTTP Request

GET /candidates/:candidate_id/notes/:id

Parameters

candidate_id required, uid
Candidate’s unique identifier.
id required, uid
Note’s unique identifier.

Job Assignments

When you consider a candidate for a job, an job assignment is created.

The Job Assignment Object

Attributes

origin string, read-only
The origin of the job assignment. Valid options are:
  • user: When job assignment done by a user from your account (your or a coworker).
  • candidate: When the job assignment was done by the candidate itself. In other words, when the candidate applied to the job himself.
  • jobscore_network: When the job assignment was created through JobScore Network recommendations.
created_on timestamp ISO8601, read-only
Record creation time in ISO 8601 format.
updated_on timestamp ISO8601, read-only
Record last update time in ISO 8601 format.
offer_extended_on timestamp ISO8601, read-only
Record offer extended date in ISO 8601 format.
offer_accepted_on timestamp ISO8601, read-only
Record offet accepted date in ISO 8601 format.
start_date timestamp ISO8601, read-only
Record start date in ISO 8601 format.

A job assignment also has the following relationships:

To facilitate the retrieval of related resources, relationships are also provided in the form of JSON API links.

List Job Assignments

curl -X GET https://api.jobscore.com/v1/candidates/zSbCGzFu1FGIRzfeXGaZaw/assignments?page%5Bsize%5D=2 \
  -H 'Authorization: Token token=YOUR_PERSONAL_ACCESS_TOKEN'

Returns JSON structured like this:

{
  "data": [
    {
      "id": "D1QM7aZIvCd_Ee2MFcNbKQ",
      "type": "assignments",
      "attributes": {
        "origin": "candidate",
        "created_on": "2015-12-01T12:00:16.000Z",
        "updated_on": "2015-12-01T12:00:16.000Z",
        "offer_extended_on": null,
        "offer_accepted_on": null,
        "start_date_on": null
      },
      "relationships": {
        "candidate": {
          "data": {
            "id": "zSbCGzFu1FGIRzfeXGaZaw",
            "type": "candidates"
          }
        },
        "job": {
          "data": {
            "id": "LO6cKciop0lMO2UvCyzrwQ",
            "type": "jobs"
          }
        },
        "resume": {
          "data": {
            "id": "IFnHJqU3v-kq13Y_yuXPWQ",
            "type": "documents"
          }
        },
        "cover_letter": {
          "data": {
            "id": "HJTgCBHzkp62anvLOQ9RaQ",
            "type": "documents"
          }
        },
        "workflow_stage": {
          "data": {
            "id": "brandnew",
            "type": "workflow_stages"
          }
        }
      },
      "links": {
        "self": {
          "href": "/v1/candidates/zSbCGzFu1FGIRzfeXGaZaw/assignments/D1QM7aZIvCd_Ee2MFcNbKQ"
        }
      }
    },
    {
      "id": "TBnOFWKqasmOhh128uUJ8Q",
      "type": "assignments",
      "attributes": {
        "origin": "user",
        "created_on": "2015-09-12T16:15:04.000Z",
        "updated_on": "2015-09-12T16:15:04.000Z",
        "offer_extended_on": null,
        "offer_accepted_on": null,
        "start_date_on": null
      },
      "relationships": {
        "candidate": {
          "data": {
            "id": "zSbCGzFu1FGIRzfeXGaZaw",
            "type": "candidates"
          }
        },
        "job": {
          "data": {
            "id": "vIsygSK2JKab_dlhrbUCwg",
            "type": "jobs"
          }
        },
        "workflow_stage": {
          "data": {
            "id": "active:brhLAoSUur6AA_3kKeJOM4",
            "type": "workflow_stages"
          }
        }
      },
      "links": {
        "self": {
          "href": "/v1/candidates/zSbCGzFu1FGIRzfeXGaZaw/assignments/TBnOFWKqasmOhh128uUJ8Q"
        }
      }
    }
  ],
  "links": {
    "self": "https://api.jobscore.com/v1/candidates/zSbCGzFu1FGIRzfeXGaZaw/assignments?page%5Bnumber%5D=1&page%5Bsize%5D=2",
    "first": "https://api.jobscore.com/v1/candidates/zSbCGzFu1FGIRzfeXGaZaw/assignments?page%5Bnumber%5D=1&page%5Bsize%5D=2",
    "prev": null,
    "next": "https://api.jobscore.com/v1/candidates/zSbCGzFu1FGIRzfeXGaZaw/assignments?page%5Bnumber%5D=2&page%5Bsize%5D=2",
    "last": "https://api.jobscore.com/v1/candidates/zSbCGzFu1FGIRzfeXGaZaw/assignments?page%5Bnumber%5D=2&page%5Bsize%5D=2"
  },
  "meta": {
    "pagination": {
      "resources": 3,
      "pages": 2
    }
  }
}

Get list of job assignments.

HTTP Request

GET /candidates/:candidate_id/assignments

Parameters

candidate_id required, uid
Candidate’s unique identifier.
page[number] integer
Page number. Starts at 1. Default is 1.
page[size] integer
Number of records per page. Maximum is 100. Default is 100.
sort string
Sort order. Allowed attribute is created_on. Prepend with a - (minus) sign to reverse the order. Default is -created_on.
filter[created_on_after] timestamp ISO8601
Filter that returns only records created after given date. Date must be in ISO8601 format. Default is empty. Example: 2015-12-31T23:59:59Z
filter[created_on_before] timestamp ISO8601
Filter that returns only records created before given date. Date must be in ISO8601 format. Default is empty. Example: 2015-12-31T23:59:59Z

Meta Attributes

This action returns a meta attribute that cointains information related to pagination. These attributes are not specified by the JSON API, but we return them in order to make it easier for our customers using the API.

meta.pagination.resources integer
Total number of resources your filters found (or all you have, if you didn’t set any filters). This includes results across all pages.
meta.pagination.pages integer
Total number of pages.

Get Job Assignment

curl -X GET https://api.jobscore.com/v1/candidates/zSbCGzFu1FGIRzfeXGaZaw/assignments/aQJtsWGyCr5BVHndy7X6hw \
  -H 'Authorization: Token token=YOUR_PERSONAL_ACCESS_TOKEN'

Returns JSON structured like this:

{
  "data": {
    "id": "D1QM7aZIvCd_Ee2MFcNbKQ",
    "type": "assignments",
    "attributes": {
      "origin": "candidate",
      "created_on": "2015-12-01T12:00:16.000Z",
      "updated_on": "2015-12-01T12:00:16.000Z",
      "offer_extended_on": null,
      "offer_accepted_on": null,
      "start_date_on": null
    },
    "relationships": {
      "candidate": {
        "data": {
          "id": "zSbCGzFu1FGIRzfeXGaZaw",
          "type": "candidates"
        }
      },
      "job": {
        "data": {
          "id": "LO6cKciop0lMO2UvCyzrwQ",
          "type": "jobs"
        }
      },
      "resume": {
        "data": {
          "id": "IFnHJqU3v-kq13Y_yuXPWQ",
          "type": "documents"
        }
      },
      "cover_letter": {
        "data": {
          "id": "HJTgCBHzkp62anvLOQ9RaQ",
          "type": "documents"
        }
      },
      "workflow_stage": {
        "data": {
          "id": "brandnew",
          "type": "workflow_stages"
        }
      }
    },
    "links": {
      "self": {
        "href": "/v1/candidates/zSbCGzFu1FGIRzfeXGaZaw/assignments/D1QM7aZIvCd_Ee2MFcNbKQ"
      }
    }
  }
}

Job assignment data can be retrieved with a GET to the /v1/candidates/:candidate_id/:assignment_id endpoint, where :candidate_id is the Candidates’s ID and :assignment_id is the Job Assignment’s ID.

HTTP Request

GET /candidates/:candidate_id/assignments/:id

Parameters

candidate_id required, uid
Candidate’s unique identifier.
id required, uid
Job Assignment’s unique identifier.

Workflow Stages

Workflow Stages are the steps in your hiring process. All candidates that are assigned to a job have a workflow stage. A candidate may have more than one job assignment, hence they have more than one workflow stage. Stages may be customized per-account and per-job

Workflow stages only indicate where a candidate is in the hiring process right now. Candidate activity is recorded separately as emails (correspondence between your team and the candidate), tasks (for scheduled events like phone screens and interviews) and notes (feedback entered by users about the candidate).

The Workflow Stage Object

Attributes

name required, string
Workflow stage name.

List Workflow Stages

curl -X GET https://api.jobscore.com/v1/jobs/ob3EQtrPkREE62lZiPQ6Wg/workflow_stages?page%5Bsize%5D=2 \
  -H 'Authorization: Token token=YOUR_PERSONAL_ACCESS_TOKEN'

Returns JSON structured like this:

{
  "data": [
    {
      "id": "brandnew",
      "type": "workflow_stages",
      "attributes": {
        "name": "brandnew"
      }
    },
    {
      "id": "active:bc7XhuSUur6Av53kKeJOM4",
      "type": "workflow_stages",
      "attributes": {
        "name": "Interview"
      }
    }
  ],
  "links": {
    "self": "https://api.jobscore.com/v1/jobs/ob3EQtrPkREE62lZiPQ6Wg/workflow_stages?page%5Bnumber%5D=1&page%5Bsize%5D=2",
    "first": "https://api.jobscore.com/v1/jobs/ob3EQtrPkREE62lZiPQ6Wg/workflow_stages?page%5Bnumber%5D=1&page%5Bsize%5D=2",
    "prev": null,
    "next": "https://api.jobscore.com/v1/jobs/ob3EQtrPkREE62lZiPQ6Wg/workflow_stages?page%5Bnumber%5D=2&page%5Bsize%5D=2",
    "last": "https://api.jobscore.com/v1/jobs/ob3EQtrPkREE62lZiPQ6Wg/workflow_stages?page%5Bnumber%5D=5&page%5Bsize%5D=2"
  },
  "meta": {
    "pagination": {
      "resources": 10,
      "pages": 5
    }
  }
}

Get list of workflow stages. As stages may be customized per job, you must build a list of stages for a specific job.

HTTP Request

GET /jobs/:job_id/workflow_stages

Parameters

job_id required, uid
Job’s unique identifier.
page[number] integer
Page number. Starts at 1. Default is 1.
page[size] integer
Number of records per page. Maximum is 100. Default is 100.

Meta Attributes

This action returns a meta attribute that cointains information related to pagination. These attributes are not specified by the JSON API, but we return them in order to make it easier for our customers using the API.

meta.pagination.resources integer
Total number of resources your filters found (or all you have, if you didn’t set any filters). This includes results across all pages.
meta.pagination.pages integer
Total number of pages.

Get Workflow Stage

curl -X GET https://api.jobscore.com/v1/jobs/ob3EQtrPkREE62lZiPQ6Wg/workflow_stages/active:5aM8oe4uk_8Zo0YqQcWqUg \
  -H 'Authorization: Token token=YOUR_PERSONAL_ACCESS_TOKEN'

Returns JSON structured like this:

{
  "data": {
    "id": "active:be5YUySUur6AxB3kKeJOM4",
    "type": "workflow_stages",
    "attributes": {
      "name": "Interviewing"
    }
  }
}

Get existing workflow stage.

HTTP Request

GET /jobs/:job_id/workflow_stages/:id

Parameters

job_id required, uid
Job’s unique identifier.
id required, uid
Workflow stage’s unique identifier.

Jobs

Jobs represent specific roles you are trying to hire candidates for. In JobScore there are 6 different job statuses: Draft, Internal, Open, On-Hold, Closed and Filled.

The Job Object

Attributes

title required, string
Job title.
description required, string
Job description
status required, string
Current job status. More details below. Valid options are:
  • draft: job with work in progress. Not accessible externally.
  • internal: job not displayed in your careers site but accessible through the public_description_url link.
  • open: job is open and your company is hiring.
  • on_hold: “pauses” application submission.
  • filled: you hired someone.
  • closed: job was closed before hiring anyone. Since deleting jobs is not possible for compliance reasons, use this job status instead of deleting.
publish boolean
Whether this job is published in your company’s careers site. When a job is not published, it is still possible for candidates to apply — but only if they have the public URLs for this job. Those URLs can be found at link’s public_description_url and public_application_url. If not given, publish is set as true for open jobs and false on any other statuses.
requisition_number integer, read-only
The number of this requisition.
job_types required, list
List of job types. Require at least one job type. Repeated types will be ignored. Valid options are:
  • full_time
  • part_time
  • contract
  • temporary
  • temp_to_perm
  • internship
  • volunteer
career_level required, string
Required career level for this job. More details below. Valid options are:
  • student_high_school: Student (High School)
  • student: Student
  • entry_level: Entry Level
  • mid_level: Mid-Level
  • experienced_non_manager: Experienced (Non-Manager)
  • manager: Manager (Manager/Supervisor of Staff)
  • executive: Executive (SVP, VP, Director, etc.)
  • senior_executive: Senior Executive (President, CFO, etc.)
salary_minimum integer
Minimum salary, in cents.
salary_maximum integer
Maximum salary, in cents.
hourly_minimum integer
Minimum hourly rate, in cents.
hourly_maximum integer
Maximum hourly rate, in cents.
custom_fields read-only
List of custom fields for this job. Only job fields with “Include in Feed” checked are shown here.
created_on timestamp ISO8601, read-only
Record creation time in ISO 8601 format.
updated_on timestamp ISO8601, read-only
Record last update time in ISO 8601 format.

A job resource also has the following relationships:

A job resource also has the following links:

List Jobs

curl -X GET https://api.jobscore.com/v1/jobs?page%5Bsize%5D=2 \
  -H 'Authorization: Token token=YOUR_PERSONAL_ACCESS_TOKEN'

Returns JSON structured like this:

{
  "data": [
    {
      "id": "ob3EQtrPkREE62lZiPQ6Wg",
      "type": "jobs",
      "attributes": {
        "title": "Physics Specialist",
        "description": "We are looking for a Physics specialist.",
        "status": "open",
        "requisition_number": 3,
        "publish": true,
        "job_types": [
          "full_time"
        ],
        "career_level": "senior_executive",
        "salary_minimum": null,
        "salary_maximum": null,
        "hourly_minimum": null,
        "hourly_maximum": null,
        "custom_fields": [
          {
            "label": "What's your favorite programming language?",
            "content": "Python"
          }
        ],
        "created_on": "2015-12-01T12:00:16.000Z",
        "updated_on": "2015-12-01T12:00:16.000Z"
      },
      "relationships": {
        "location": {
          "data": {
            "id": "avSWGaMcmr5z4O3kKeJOM4",
            "type": "locations"
          }
        },
        "department": {
          "data": {
            "id": "avSWGaMcmr5z463kKeJOM4",
            "type": "departments"
          }
        },
        "job_active_sub_statuses": {
          "data": [
            {
              "id": "avSWGaMcmr5z5d3kKeJOM4",
              "type": "job_active_sub_statuses"
            },
            {
              "id": "avSWGaMcmr5z5c3kKeJOM4",
              "type": "job_active_sub_statuses"
            },
            {
              "id": "avSWGaMcmr5z5b3kKeJOM4",
              "type": "job_active_sub_statuses"
            },
            {
              "id": "avSWGaMcmr5z5a3kKeJOM4",
              "type": "job_active_sub_statuses"
            },
            {
              "id": "avSWGaMcmr5z4_3kKeJOM4",
              "type": "job_active_sub_statuses"
            },
            {
              "id": "avSWGaMcmr5z4-3kKeJOM4",
              "type": "job_active_sub_statuses"
            },
            {
              "id": "avSWGaMcmr5z493kKeJOM4",
              "type": "job_active_sub_statuses"
            },
            {
              "id": "avSWGaMcmr5z483kKeJOM4",
              "type": "job_active_sub_statuses"
            },
            {
              "id": "avSWGaMcmr5z473kKeJOM4",
              "type": "job_active_sub_statuses"
            }
          ]
        }
      },
      "links": {
        "location": {
          "href": "/v1/locations/avSWGaMcmr5z4O3kKeJOM4"
        },
        "department": {
          "href": "/v1/departments/avSWGaMcmr5z463kKeJOM4"
        },
        "public_description_url": {
          "href": "https://dev.jobscore.com/careers/iusto67963/jobs/physics-specialist-ob3EQtrPkREE62lZiPQ6Wg"
        },
        "public_application_url": {
          "href": "https://dev.jobscore.com/apply_flow/applications/go?job_id=ob3EQtrPkREE62lZiPQ6Wg"
        }
      }
    },
    {
      "id": "yrjzegVHDqBb0D4Y0yiUsQ",
      "type": "jobs",
      "attributes": {
        "title": "Physics Intern",
        "description": "We are looking for a Physics intern.",
        "status": "open",
        "requisition_number": 2,
        "publish": true,
        "job_types": [
          "full_time"
        ],
        "career_level": "senior_executive",
        "salary_minimum": null,
        "salary_maximum": null,
        "hourly_minimum": null,
        "hourly_maximum": null,
        "custom_fields": [
          {
            "label": "What's your favorite programming language?",
            "content": "Go"
          }
        ],
        "created_on": "2015-09-12T16:15:04.000Z",
        "updated_on": "2015-09-12T16:15:04.000Z"
      },
      "relationships": {
        "location": {
          "data": {
            "id": "bTaRqawwKr5z343kKeJOM4",
            "type": "locations"
          }
        },
        "department": {
          "data": {
            "id": "bTaRqawwKr5z4k3kKeJOM4",
            "type": "departments"
          }
        },
        "job_active_sub_statuses": {
          "data": [
            {
              "id": "bTaRqawwKr5z4t3kKeJOM4",
              "type": "job_active_sub_statuses"
            },
            {
              "id": "bTaRqawwKr5z4s3kKeJOM4",
              "type": "job_active_sub_statuses"
            },
            {
              "id": "bTaRqawwKr5z4r3kKeJOM4",
              "type": "job_active_sub_statuses"
            },
            {
              "id": "bTaRqawwKr5z4q3kKeJOM4",
              "type": "job_active_sub_statuses"
            },
            {
              "id": "bTaRqawwKr5z4p3kKeJOM4",
              "type": "job_active_sub_statuses"
            },
            {
              "id": "bTaRqawwKr5z4o3kKeJOM4",
              "type": "job_active_sub_statuses"
            },
            {
              "id": "bTaRqawwKr5z4n3kKeJOM4",
              "type": "job_active_sub_statuses"
            },
            {
              "id": "bTaRqawwKr5z4m3kKeJOM4",
              "type": "job_active_sub_statuses"
            },
            {
              "id": "bTaRqawwKr5z4l3kKeJOM4",
              "type": "job_active_sub_statuses"
            }
          ]
        }
      },
      "links": {
        "location": {
          "href": "/v1/locations/bTaRqawwKr5z343kKeJOM4"
        },
        "department": {
          "href": "/v1/departments/bTaRqawwKr5z4k3kKeJOM4"
        },
        "public_description_url": {
          "href": "https://dev.jobscore.com/careers/iusto67963/jobs/physics-intern-yrjzegVHDqBb0D4Y0yiUsQ"
        },
        "public_application_url": {
          "href": "https://dev.jobscore.com/apply_flow/applications/go?job_id=yrjzegVHDqBb0D4Y0yiUsQ"
        }
      }
    }
  ],
  "links": {
    "self": "https://api.jobscore.com/v1/jobs?page%5Bnumber%5D=1&page%5Bsize%5D=2",
    "first": "https://api.jobscore.com/v1/jobs?page%5Bnumber%5D=1&page%5Bsize%5D=2",
    "prev": null,
    "next": "https://api.jobscore.com/v1/jobs?page%5Bnumber%5D=2&page%5Bsize%5D=2",
    "last": "https://api.jobscore.com/v1/jobs?page%5Bnumber%5D=2&page%5Bsize%5D=2"
  },
  "meta": {
    "pagination": {
      "resources": 3,
      "pages": 2
    }
  }
}

Get list of jobs.

HTTP Request

GET /jobs

Parameters

page[number] integer
Page number. Starts at 1. Default is 1.
page[size] integer
Number of records per page. Maximum is 100. Default is 100.
sort string
Sort order. Allowed attribute is created_on. Prepend with a - (minus) sign to reverse the order. Default is -created_on.
filter[created_on_after] timestamp ISO8601
Filter that returns only records created after given date. Date must be in ISO8601 format. Default is empty. Example: 2015-12-31T23:59:59Z
filter[created_on_before] timestamp ISO8601
Filter that returns only records created before given date. Date must be in ISO8601 format. Default is empty. Example: 2015-12-31T23:59:59Z
filter[status] string
Filter that returns only records with the given status. Example: open
filter[requisition_number] string
Filter that returns only records with the given requisiton number. Example: 103

Meta Attributes

This action returns a meta attribute that cointains information related to pagination. These attributes are not specified by the JSON API, but we return them in order to make it easier for our customers using the API.

meta.pagination.resources integer
Total number of resources your filters found (or all you have, if you didn’t set any filters). This includes results across all pages.
meta.pagination.pages integer
Total number of pages.

Get Job

curl -X GET https://api.jobscore.com/v1/jobs/ob3EQtrPkREE62lZiPQ6Wg \
  -H 'Authorization: Token token=YOUR_PERSONAL_ACCESS_TOKEN'

Returns JSON structured like this:

{
  "data": {
    "id": "ob3EQtrPkREE62lZiPQ6Wg",
    "type": "jobs",
    "attributes": {
      "title": "Physics Specialist",
      "description": "We are looking for a Physics specialist.",
      "status": "open",
      "requisition_number": 1,
      "publish": true,
      "job_types": [
        "full_time"
      ],
      "career_level": "senior_executive",
      "salary_minimum": null,
      "salary_maximum": null,
      "hourly_minimum": null,
      "hourly_maximum": null,
      "custom_fields": [
        {
          "label": "What's your favorite programming language?",
          "content": "Python"
        }
      ],
      "created_on": "2015-12-01T12:00:16.000Z",
      "updated_on": "2015-12-01T12:00:16.000Z"
    },
    "relationships": {
      "location": {
        "data": {
          "id": "avSWGaMcmr5z093kKeJOM4",
          "type": "locations"
        }
      },
      "department": {
        "data": {
          "id": "avSWGaMcmr5z1p3kKeJOM4",
          "type": "departments"
        }
      },
      "job_active_sub_statuses": {
        "data": [
          {
            "id": "avSWGaMcmr5z1y3kKeJOM4",
            "type": "job_active_sub_statuses"
          },
          {
            "id": "avSWGaMcmr5z1x3kKeJOM4",
            "type": "job_active_sub_statuses"
          },
          {
            "id": "avSWGaMcmr5z1w3kKeJOM4",
            "type": "job_active_sub_statuses"
          },
          {
            "id": "avSWGaMcmr5z1v3kKeJOM4",
            "type": "job_active_sub_statuses"
          },
          {
            "id": "avSWGaMcmr5z1u3kKeJOM4",
            "type": "job_active_sub_statuses"
          },
          {
            "id": "avSWGaMcmr5z1t3kKeJOM4",
            "type": "job_active_sub_statuses"
          },
          {
            "id": "avSWGaMcmr5z1s3kKeJOM4",
            "type": "job_active_sub_statuses"
          },
          {
            "id": "avSWGaMcmr5z1r3kKeJOM4",
            "type": "job_active_sub_statuses"
          },
          {
            "id": "avSWGaMcmr5z1q3kKeJOM4",
            "type": "job_active_sub_statuses"
          }
        ]
      }
    },
    "links": {
      "location": {
        "href": "/v1/locations/avSWGaMcmr5z093kKeJOM4"
      },
      "department": {
        "href": "/v1/departments/avSWGaMcmr5z1p3kKeJOM4"
      },
      "public_description_url": {
        "href": "https://dev.jobscore.com/careers/qui35714/jobs/physics-specialist-ob3EQtrPkREE62lZiPQ6Wg"
      },
      "public_application_url": {
        "href": "https://dev.jobscore.com/apply_flow/applications/go?job_id=ob3EQtrPkREE62lZiPQ6Wg"
      }
    }
  }
}

Get existing job.

HTTP Request

GET /jobs/:id

Parameters

id required, uid
Job’s unique identifier.

Departments

Departments in JobScore represent the different parts of your organization. Departments are a way to classify and group jobs so job seekers can easily find the jobs appropriate for them. Typical department names include Sales, Marketing, Operations, Finance, etc.

The Department Object

Attributes

name required, string
Department name. Typical department names include Sales, Marketing, Operations, Finance, etc.
created_on timestamp ISO8601, read-only
Record creation time in ISO 8601 format.
updated_on timestamp ISO8601, read-only
Record last update time in ISO 8601 format.

List Department

curl -X GET https://api.jobscore.com/v1/departments?page%5Bsize%5D=2 \
  -H 'Authorization: Token token=YOUR_PERSONAL_ACCESS_TOKEN'

Returns JSON structured like this:

{
  "data": [
    {
      "id": "mRAnrKLrNraZvuxsU7kvAg",
      "type": "departments",
      "attributes": {
        "name": "Operations",
        "created_on": "2015-12-01T12:00:16.000Z",
        "updated_on": "2015-12-01T12:00:16.000Z"
      }
    },
    {
      "id": "NJkxcdtcuuPvY5CdkyuNlQ",
      "type": "departments",
      "attributes": {
        "name": "Sales",
        "created_on": "2015-09-12T16:15:04.000Z",
        "updated_on": "2015-09-12T16:15:04.000Z"
      }
    }
  ],
  "links": {
    "self": "https://api.jobscore.com/v1/departments?page%5Bnumber%5D=1&page%5Bsize%5D=2",
    "first": "https://api.jobscore.com/v1/departments?page%5Bnumber%5D=1&page%5Bsize%5D=2",
    "prev": null,
    "next": "https://api.jobscore.com/v1/departments?page%5Bnumber%5D=2&page%5Bsize%5D=2",
    "last": "https://api.jobscore.com/v1/departments?page%5Bnumber%5D=2&page%5Bsize%5D=2"
  },
  "meta": {
    "pagination": {
      "resources": 3,
      "pages": 2
    }
  }
}

Get list of departments.

HTTP Request

GET /departments

Parameters

page[number] integer
Page number. Starts at 1. Default is 1.
page[size] integer
Number of records per page. Maximum is 100. Default is 100.
sort string
Sort order. Allowed attribute is created_on. Prepend with a - (minus) sign to reverse the order. Default is -created_on.
filter[created_on_after] timestamp ISO8601
Filter that returns only records created after given date. Date must be in ISO8601 format. Default is empty. Example: 2015-12-31T23:59:59Z
filter[created_on_before] timestamp ISO8601
Filter that returns only records created before given date. Date must be in ISO8601 format. Default is empty. Example: 2015-12-31T23:59:59Z

Meta Attributes

This action returns a meta attribute that cointains information related to pagination. These attributes are not specified by the JSON API, but we return them in order to make it easier for our customers using the API.

meta.pagination.resources integer
Total number of resources your filters found (or all you have, if you didn’t set any filters). This includes results across all pages.
meta.pagination.pages integer
Total number of pages.

Get Department

curl -X GET https://api.jobscore.com/v1/departments/mRAnrKLrNraZvuxsU7kvAg \
  -H 'Authorization: Token token=YOUR_PERSONAL_ACCESS_TOKEN'

Returns JSON structured like this:

{
  "data": {
    "id": "mRAnrKLrNraZvuxsU7kvAg",
    "type": "departments",
    "attributes": {
      "name": "Operations",
      "created_on": "2015-12-01T12:00:16.000Z",
      "updated_on": "2015-12-01T12:00:16.000Z"
    }
  }
}

Get existing department.

HTTP Request

GET /departments/:id

Parameters

id required, uid
Department’s unique identifier.

Locations

Locations are where a job is located. It’s where a candidate will work when you hire them.

The Location Object

Attributes

nickname string
Internal nickname for the location. This is what employees see in filters and reports. Customizing the internal name of a location overrides the standard “city, state” location display inside of JobScore for your employees. Most employers only customize the internal name if they have more than one location in the same city. If left null, it will show “city, state”.
public_nickname string
Public nickname for the location. This is what job seekers see when they apply. Customizing the external name of a location overrides the standard “city, state” location display on your careers site seen by job seekers. Most employers customize the external name if they want to publish a job with “no location” where candidates can work remotely from anywhere. If left null, it will show “city, state”.
street1 required, string
Street Address 1.
street2 string
Street Address 2.
postal_code required, string
Postal code or Zip code. If country is “US”, must be Zip-5 or Zip-9.
city required, string
City
state required, string
State name. If country is “US”, must be a valid 2 letters state, otherwise it is free text.
country required, string
Country code, 2 letters.
created_on timestamp ISO8601, read-only
Record creation time in ISO 8601 format.
updated_on timestamp ISO8601, read-only
Record last update time in ISO 8601 format.

List Location

curl -X GET https://api.jobscore.com/v1/locations?page%5Bsize%5D=2 \
  -H 'Authorization: Token token=YOUR_PERSONAL_ACCESS_TOKEN'

Returns JSON structured like this:

{
  "data": [
    {
      "id": "5sqa26jPNhzHEj0nwxYgbw",
      "type": "locations",
      "attributes": {
        "nickname": "HQ",
        "public_nickname": null,
        "street1": "1 Market St",
        "street2": null,
        "postal_code": "94105",
        "city": "San Francisco",
        "state": "CA",
        "country": "US",
        "created_on": "2015-12-01T12:00:16.000Z",
        "updated_on": "2015-12-01T12:00:16.000Z"
      }
    },
    {
      "id": "AFaSKODboWNsej-AhcCeEg",
      "type": "locations",
      "attributes": {
        "nickname": null,
        "public_nickname": null,
        "street1": "1 5th Ave",
        "street2": null,
        "postal_code": "10003",
        "city": "New York",
        "state": "NY",
        "country": "US",
        "created_on": "2015-09-12T16:15:04.000Z",
        "updated_on": "2015-09-12T16:15:04.000Z"
      }
    }
  ],
  "links": {
    "self": "https://api.jobscore.com/v1/locations?page%5Bnumber%5D=1&page%5Bsize%5D=2",
    "first": "https://api.jobscore.com/v1/locations?page%5Bnumber%5D=1&page%5Bsize%5D=2",
    "prev": null,
    "next": "https://api.jobscore.com/v1/locations?page%5Bnumber%5D=2&page%5Bsize%5D=2",
    "last": "https://api.jobscore.com/v1/locations?page%5Bnumber%5D=2&page%5Bsize%5D=2"
  },
  "meta": {
    "pagination": {
      "resources": 3,
      "pages": 2
    }
  }
}

Get list of locations.

HTTP Request

GET /locations

Parameters

page[number] integer
Page number. Starts at 1. Default is 1.
page[size] integer
Number of records per page. Maximum is 100. Default is 100.
sort string
Sort order. Allowed attribute is created_on. Prepend with a - (minus) sign to reverse the order. Default is -created_on.
filter[created_on_after] timestamp ISO8601
Filter that returns only records created after given date. Date must be in ISO8601 format. Default is empty. Example: 2015-12-31T23:59:59Z
filter[created_on_before] timestamp ISO8601
Filter that returns only records created before given date. Date must be in ISO8601 format. Default is empty. Example: 2015-12-31T23:59:59Z

Meta Attributes

This action returns a meta attribute that cointains information related to pagination. These attributes are not specified by the JSON API, but we return them in order to make it easier for our customers using the API.

meta.pagination.resources integer
Total number of resources your filters found (or all you have, if you didn’t set any filters). This includes results across all pages.
meta.pagination.pages integer
Total number of pages.

Get Location

curl -X GET https://api.jobscore.com/v1/locations/5sqa26jPNhzHEj0nwxYgbw \
  -H 'Authorization: Token token=YOUR_PERSONAL_ACCESS_TOKEN'

Returns JSON structured like this:

{
  "data": {
    "id": "5sqa26jPNhzHEj0nwxYgbw",
    "type": "locations",
    "attributes": {
      "nickname": "HQ",
      "public_nickname": null,
      "street1": "1 Market St",
      "street2": null,
      "postal_code": "94105",
      "city": "San Francisco",
      "state": "CA",
      "country": "US",
      "created_on": "2015-12-01T12:00:16.000Z",
      "updated_on": "2015-12-01T12:00:16.000Z"
    }
  }
}

Get existing location.

HTTP Request

GET /locations/:id

Parameters

id required, uid
Location’s unique identifier.

Users

Typically every team member that participates in the hiring process is invited to use JobScore and added as a user. There are four different access levels for users: Owners, Admins, Users and Guests.

The User Object

first_name required, string
First name.
last_name required, string
Last name.
email required, string
Email address.

List Users

curl -X GET https://api.jobscore.com/v1/users
  -H 'Authorization: Token token=YOUR_PERSONAL_ACCESS_TOKEN'

Returns JSON structured like this:

{
  "data": [
    {
      "id": "PKjvKIeeg0-nad2YhvTFyw",
      "type": "users",
      "attributes": {
        "email": "albert@example.org",
        "first_name": "Albert",
        "last_name": "Hertz"
      }
    },
    {
      "id": "eHMa2dzvcrbaBMEkZa455g",
      "type": "users",
      "attributes": {
        "email": "robert@example.org",
        "first_name": "Robert",
        "last_name": "Raymond"
      }
    }
  ],
  "links": {
    "self": "https://api.jobscore.com/v1/users?page%5Bnumber%5D=1&page%5Bsize%5D=2",
    "first": "https://api.jobscore.com/v1/users?page%5Bnumber%5D=1&page%5Bsize%5D=2",
    "prev": null,
    "next": "https://api.jobscore.com/v1/users?page%5Bnumber%5D=2&page%5Bsize%5D=2",
    "last": "https://api.jobscore.com/v1/users?page%5Bnumber%5D=2&page%5Bsize%5D=2"
  },
  "meta": {
    "pagination": {
      "resources": 3,
      "pages": 2
    }
  }
}

List all users in your company.

HTTP Request

GET /users

Parameters

page[number] integer
Page number. Starts at 1. Default is 1.
page[size] integer
Number of records per page. Maximum is 100. Default is 100.
sort string
Sort order. Allowed attribute is created_on. Prepend with a - (minus) sign to reverse the order. Default is -created_on.
filter[created_on_after] timestamp ISO8601
Filter that returns only records created after given date. Date must be in ISO8601 format. Default is empty. Example: 2015-12-31T23:59:59Z
filter[created_on_before] timestamp ISO8601
Filter that returns only records created before given date. Date must be in ISO8601 format. Default is empty. Example: 2015-12-31T23:59:59Z

Get User

curl -X GET https://api.jobscore.com/v1/users/PKjvKIeeg0-nad2YhvTFyw
  -H 'Authorization: Token token=YOUR_PERSONAL_ACCESS_TOKEN'

Returns JSON structured like this:

{
  "data": {
    "id": "PKjvKIeeg0-nad2YhvTFyw",
    "type": "users",
    "attributes": {
      "email": "albert@example.org",
      "first_name": "Albert",
      "last_name": "Hertz"
    }
  }
}

Get existing user.

HTTP Request

GET /users/:id

Parameters

id required, uid
User’s unique identifier.

Get Logged in User

curl -X GET https://api.jobscore.com/v1/users/me
  -H 'Authorization: Token token=YOUR_PERSONAL_ACCESS_TOKEN'

Returns JSON structured like this:

{
  "data": {
    "id": "PKjvKIeeg0-nad2YhvTFyw",
    "type": "users",
    "attributes": {
      "email": "albert@example.org",
      "first_name": "Albert",
      "last_name": "Hertz"
    }
  }
}

Get logged in user.

HTTP Request

GET /users/me

Sources

Every Candidate has a source. The source is how you originally found / came into contact with a candidate. Each candidate has only one source. The source represents who “gets credit” for finding a candidate. A source may include up to three parts:

  1. Source which explains how the candidate was added to you JobScore account. For example,someone may have applied because they found one of your jobs on a job board, a sourcer may have done research and found them using google, or an employee may have added a friend’s resume directly into the system.
  2. Source detail provides more detail about the primary source. For instance, a candidate who found your job on a job board would have the primary source “Job Board” and the secondary source “Indeed” where a resume found on google would have the primary source “Database” and secondary source “Google.”
  3. Referral data is information about the individual who referred someone. Referrals can be added to JobScore using different primary / secondary source combinations (directly entered by a user, replied to an email campaign, found through a social network share), but referral data captures who referred the candidate (first name, last name, email) so that person gets credit.

Each primary source has it’s own set of specific metadata that can be entered and customized. Learn more about sources in JobScore in this support article.

The Event Object

Attributes

name required, string, read-only
Name.

List Events

curl -X GET https://api.jobscore.com/v1/sources/events?page%5Bsize%5D=2 \
  -H 'Authorization: Token token=YOUR_PERSONAL_ACCESS_TOKEN'

Returns JSON structured like this:

{
  "data": [
    {
      "id": "95543839ed2358acfffad4",
      "type": "sources/events",
      "attributes": {
        "name": "EXPO Fair"
      }
    },
    {
      "id": "fd68e0952d6942c8d80cf7",
      "type": "sources/events",
      "attributes": {
        "name": "Münich Event 2020"
      }
    }
  ],
  "links": {
    "self": "https://api.jobscore.com/v1/sources/events?page%5Bnumber%5D=1&page%5Bsize%5D=2",
    "next": "https://api.jobscore.com/v1/sources/events?page%5Bnumber%5D=2&page%5Bsize%5D=2",
    "last": "https://api.jobscore.com/v1/sources/events?page%5Bnumber%5D=2&page%5Bsize%5D=2"
  },
  "meta": {
    "pagination": {
      "resources": 3,
      "pages": 2
    }
  }
}

Get list of Events to be used as sources.

HTTP Request

GET /sources/events

Parameters

page[number] integer
Page number. Starts at 1. Default is 1.
page[size] integer
Number of records per page. Maximum is 100. Default is 100.

Meta Attributes

This action returns a meta attribute that cointains information related to pagination. These attributes are not specified by the JSON API, but we return them in order to make it easier for our customers using the API.

meta.pagination.resources integer
Total number of resources your filters found (or all you have, if you didn’t set any filters). This includes results across all pages.
meta.pagination.pages integer
Total number of pages.

Get Event

curl -X GET https://api.jobscore.com/v1/sources/events/7927f138711ad7d18769bc \
  -H 'Authorization: Token token=YOUR_PERSONAL_ACCESS_TOKEN'

Returns JSON structured like this:

{
  "data": {
    "id": "fd68e0952d6942c8d80cf7",
    "type": "sources/events",
    "attributes": {
      "name": "Münich Event 2020"
    }
  }
}

Get existing Event.

HTTP Request

GET /sources/events/:id

Parameters

id required, uid
Event’s unique identifier.

The Database Object

Attributes

name required, string, read-only
Name.

List Databases

curl -X GET https://api.jobscore.com/v1/sources/databases?page%5Bsize%5D=2 \
  -H 'Authorization: Token token=YOUR_PERSONAL_ACCESS_TOKEN'

Returns JSON structured like this:

{
  "data": [
    {
      "id": "4759bf14d7a511508e86c3",
      "type": "sources/databases",
      "attributes": {
        "name": "Builder"
      }
    },
    {
      "id": "7927f138711ad7d18769bc",
      "type": "sources/databases",
      "attributes": {
        "name": "Dice"
      }
    }
  ],
  "links": {
    "self": "https://api.jobscore.com/v1/sources/databases?page%5Bnumber%5D=1&page%5Bsize%5D=2",
    "first": "https://api.jobscore.com/v1/sources/databases?page%5Bnumber%5D=1&page%5Bsize%5D=2",
    "prev": null,
    "next": "https://api.jobscore.com/v1/sources/databases?page%5Bnumber%5D=2&page%5Bsize%5D=2",
    "last": "https://api.jobscore.com/v1/sources/databases?page%5Bnumber%5D=2&page%5Bsize%5D=2"
  },
  "meta": {
    "pagination": {
      "resources": 3,
      "pages": 2
    }
  }
}

Get list of databases to be used as sources.

HTTP Request

GET /sources/databases

Parameters

page[number] integer
Page number. Starts at 1. Default is 1.
page[size] integer
Number of records per page. Maximum is 100. Default is 100.

Meta Attributes

This action returns a meta attribute that cointains information related to pagination. These attributes are not specified by the JSON API, but we return them in order to make it easier for our customers using the API.

meta.pagination.resources integer
Total number of resources your filters found (or all you have, if you didn’t set any filters). This includes results across all pages.
meta.pagination.pages integer
Total number of pages.

Get Database

curl -X GET https://api.jobscore.com/v1/sources/databases/7927f138711ad7d18769bc \
  -H 'Authorization: Token token=YOUR_PERSONAL_ACCESS_TOKEN'

Returns JSON structured like this:

{
  "data": {
    "id": "7927f138711ad7d18769bc",
    "type": "sources/databases",
    "attributes": {
      "name": "Dice"
    }
  }
}

Get existing database.

HTTP Request

GET /sources/databases/:id

Parameters

id required, uid
Database’s unique identifier.

The Job Board Object

Attributes

name required, string, read-only
Name.

List Job Boards

curl -X GET https://api.jobscore.com/v1/sources/job_boards?page%5Bsize%5D=2 \
  -H 'Authorization: Token token=YOUR_PERSONAL_ACCESS_TOKEN'

Returns JSON structured like this:

{
  "data": [
    {
      "id": "5442e2b64fa09764b9f593",
      "type": "sources/job_boards",
      "attributes": {
        "name": "GitHub"
      }
    },
    {
      "id": "bfa9ef81ce0f02ce23c4b5",
      "type": "sources/job_boards",
      "attributes": {
        "name": "My Company Internal Job Board"
      }
    }
  ],
  "links": {
    "self": "https://api.jobscore.com/v1/sources/job_boards?page%5Bnumber%5D=1&page%5Bsize%5D=2",
    "first": "https://api.jobscore.com/v1/sources/job_boards?page%5Bnumber%5D=1&page%5Bsize%5D=2",
    "prev": null,
    "next": "https://api.jobscore.com/v1/sources/job_boards?page%5Bnumber%5D=2&page%5Bsize%5D=2",
    "last": "https://api.jobscore.com/v1/sources/job_boards?page%5Bnumber%5D=2&page%5Bsize%5D=2"
  },
  "meta": {
    "pagination": {
      "resources": 3,
      "pages": 2
    }
  }
}

Get list of Job Boards to be used as sources.

HTTP Request

GET /sources/job_boards

Parameters

page[number] integer
Page number. Starts at 1. Default is 1.
page[size] integer
Number of records per page. Maximum is 100. Default is 100.

Meta Attributes

This action returns a meta attribute that cointains information related to pagination. These attributes are not specified by the JSON API, but we return them in order to make it easier for our customers using the API.

meta.pagination.resources integer
Total number of resources your filters found (or all you have, if you didn’t set any filters). This includes results across all pages.
meta.pagination.pages integer
Total number of pages.

Get Job Board

curl -X GET https://api.jobscore.com/v1/sources/job_boards/7927f138711ad7d18769bc \
  -H 'Authorization: Token token=YOUR_PERSONAL_ACCESS_TOKEN'

Returns JSON structured like this:

{
  "data": {
    "id": "5442e2b64fa09764b9f593",
    "type": "sources/job_boards",
    "attributes": {
      "name": "GitHub"
    }
  }
}

Get existing Job Board.

HTTP Request

GET /sources/job_boards/:id

Parameters

id required, uid
Job Board’s unique identifier.

The Search Firms Object

Attributes

name required, string, read-only
Name.

List Search Firms

curl -X GET https://api.jobscore.com/v1/sources/search_firms?page%5Bsize%5D=2 \
  -H 'Authorization: Token token=YOUR_PERSONAL_ACCESS_TOKEN'

Returns JSON structured like this:

{
  "data": [
    {
      "id": "DgKjrsWC5T4gy4N_tTrAYg",
      "type": "search_firms",
      "attributes": {
        "name": "Manpower"
      }
    },
    {
      "id": "mh86P5w23lpIY6gvW4M3-Q",
      "type": "search_firms",
      "attributes": {
        "name": "Big-O Talent"
      }
    }
  ],
  "links": {
    "self": "https://api.jobscore.com/v1/sources/search_firms?page%5Bnumber%5D=1&page%5Bsize%5D=2",
    "first": "https://api.jobscore.com/v1/sources/search_firms?page%5Bnumber%5D=1&page%5Bsize%5D=2",
    "prev": null,
    "next": "https://api.jobscore.com/v1/sources/search_firms?page%5Bnumber%5D=2&page%5Bsize%5D=2",
    "last": "https://api.jobscore.com/v1/sources/search_firms?page%5Bnumber%5D=2&page%5Bsize%5D=2"
  },
  "meta": {
    "pagination": {
      "resources": 3,
      "pages": 2
    }
  }
}

Get list of Search Firms to be used as sources.

HTTP Request

GET /sources/search_firms

Parameters

page[number] integer
Page number. Starts at 1. Default is 1.
page[size] integer
Number of records per page. Maximum is 100. Default is 100.

Meta Attributes

This action returns a meta attribute that cointains information related to pagination. These attributes are not specified by the JSON API, but we return them in order to make it easier for our customers using the API.

meta.pagination.resources integer
Total number of resources your filters found (or all you have, if you didn’t set any filters). This includes results across all pages.
meta.pagination.pages integer
Total number of pages.

Get Search Firm

curl -X GET https://api.jobscore.com/v1/sources/search_firms/DgKjrsWC5T4gy4N_tTrAYg \
  -H 'Authorization: Token token=YOUR_PERSONAL_ACCESS_TOKEN'

Returns JSON structured like this:

{
  "data": {
    "id": "DgKjrsWC5T4gy4N_tTrAYg",
    "type": "search_firms",
    "attributes": {
      "name": "Manpower"
    }
  }
}

Get existing Search Firm.

HTTP Request

GET /sources/search_firms/:id

Parameters

id required, uid
Search Firms’s unique identifier.

The Search Firm Recruiter Object

Attributes

first_name required, string, read-only
First name.
last_name required, string, read-only
Last name.

List Search Firm Recruiters

curl -X GET https://api.jobscore.com/v1/sources/search_firms/DgKjrsWC5T4gy4N_tTrAYg/recruiters?page%5Bsize%5D=2 \
  -H 'Authorization: Token token=YOUR_PERSONAL_ACCESS_TOKEN'

Returns JSON structured like this:

{
  "data": [
    {
      "id": "saFwhDDxIR2uO7d1Nz57Kg",
      "type": "search_firm_recruiters",
      "attributes": {
        "first_name": "Edmund",
        "last_name": "Landau"
      },
      "relationships": {
        "search_firm": {
          "data": {
            "id": "mh86P5w23lpIY6gvW4M3-Q",
            "type": "search_firms"
          }
        }
      }
    },
    {
      "id": "5wlqwO7rnt6JHt21iuyXtA",
      "type": "search_firm_recruiters",
      "attributes": {
        "first_name": "Paul",
        "last_name": "Heinrich Bachmann"
      },
      "relationships": {
        "search_firm": {
          "data": {
            "id": "mh86P5w23lpIY6gvW4M3-Q",
            "type": "search_firms"
          }
        }
      }
    }
  ],
  "links": {
    "self": "https://api.jobscore.com/v1/sources/search_firms/mh86P5w23lpIY6gvW4M3-Q/recruiters?page%5Bnumber%5D=1&page%5Bsize%5D=2",
    "first": "https://api.jobscore.com/v1/sources/search_firms/mh86P5w23lpIY6gvW4M3-Q/recruiters?page%5Bnumber%5D=1&page%5Bsize%5D=2",
    "prev": null,
    "next": "https://api.jobscore.com/v1/sources/search_firms/mh86P5w23lpIY6gvW4M3-Q/recruiters?page%5Bnumber%5D=2&page%5Bsize%5D=2",
    "last": "https://api.jobscore.com/v1/sources/search_firms/mh86P5w23lpIY6gvW4M3-Q/recruiters?page%5Bnumber%5D=2&page%5Bsize%5D=2"
  },
  "meta": {
    "pagination": {
      "resources": 3,
      "pages": 2
    }
  }
}

Get list of Search Firm Recruiter to be used as sources.

HTTP Request

GET /sources/search_firms/:search_firm_id/recruiters

Parameters

page[number] integer
Page number. Starts at 1. Default is 1.
page[size] integer
Number of records per page. Maximum is 100. Default is 100.

Meta Attributes

This action returns a meta attribute that cointains information related to pagination. These attributes are not specified by the JSON API, but we return them in order to make it easier for our customers using the API.

meta.pagination.resources integer
Total number of resources your filters found (or all you have, if you didn’t set any filters). This includes results across all pages.
meta.pagination.pages integer
Total number of pages.

Get Search Firm Recruiter

curl -X GET https://api.jobscore.com/v1/sources/search_firms/DgKjrsWC5T4gy4N_tTrAYg/recruiters/saFwhDDxIR2uO7d1Nz57Kg \
  -H 'Authorization: Token token=YOUR_PERSONAL_ACCESS_TOKEN'

Returns JSON structured like this:

{
  "data": {
    "id": "saFwhDDxIR2uO7d1Nz57Kg",
    "type": "search_firm_recruiters",
    "attributes": {
      "first_name": "Edmund",
      "last_name": "Landau"
    },
    "relationships": {
      "search_firm": {
        "data": {
          "id": "mh86P5w23lpIY6gvW4M3-Q",
          "type": "search_firms"
        }
      }
    }
  }
}

Get existing Search Firm.

HTTP Request

GET /sources/search_firms/:search_firm_id/recruiters/:id

Parameters

id required, uid
Search Firm Recruiter’s unique identifier.

The Social Networks Object

Attributes

name required, string, read-only
Name.

List Social Networks

curl -X GET https://api.jobscore.com/v1/sources/social_networks?page%5Bsize%5D=2 \
  -H 'Authorization: Token token=YOUR_PERSONAL_ACCESS_TOKEN'

Returns JSON structured like this:

{
  "data": [
    {
      "id": "82da67b211249624f24f3c",
      "type": "sources/social_networks",
      "attributes": {
        "name": "Facebook"
      }
    },
    {
      "id": "6b6390a4416131f82b6ffb",
      "type": "sources/social_networks",
      "attributes": {
        "name": "LinkedIn"
      }
    }
  ],
  "links": {
    "self": "https://api.jobscore.com/v1/sources/social_networks?page%5Bnumber%5D=1&page%5Bsize%5D=2",
    "first": "https://api.jobscore.com/v1/sources/social_networks?page%5Bnumber%5D=1&page%5Bsize%5D=2",
    "prev": null,
    "next": "https://api.jobscore.com/v1/sources/social_networks?page%5Bnumber%5D=2&page%5Bsize%5D=2",
    "last": "https://api.jobscore.com/v1/sources/social_networks?page%5Bnumber%5D=2&page%5Bsize%5D=2"
  },
  "meta": {
    "pagination": {
      "resources": 3,
      "pages": 2
    }
  }
}

Get list of Social Networks to be used as sources.

HTTP Request

GET /sources/social_networks

Parameters

page[number] integer
Page number. Starts at 1. Default is 1.
page[size] integer
Number of records per page. Maximum is 100. Default is 100.

Meta Attributes

This action returns a meta attribute that cointains information related to pagination. These attributes are not specified by the JSON API, but we return them in order to make it easier for our customers using the API.

meta.pagination.resources integer
Total number of resources your filters found (or all you have, if you didn’t set any filters). This includes results across all pages.
meta.pagination.pages integer
Total number of pages.

Get Social Networks

curl -X GET https://api.jobscore.com/v1/sources/social_networks/7927f138711ad7d18769bc \
  -H 'Authorization: Token token=YOUR_PERSONAL_ACCESS_TOKEN'

Returns JSON structured like this:

{
  "data": {
    "id": "5392c950bdde4be7e5f5b8",
    "type": "sources/social_networks",
    "attributes": {
      "name": "Twitter"
    }
  }
}

Get existing Social Networks.

HTTP Request

GET /sources/social_networks/:id

Parameters

id required, uid
Social Networks’s unique identifier.

Webhooks

Webhooks allow you to listen for specific events in JobScore. Once the event happens, we’ll make a POST HTTP request to a URL you’ve given to us.

Currently, you can create webhooks for the following events in JobScore:

You can create webhooks by visiting Integrations > API Keys & Webhooks.

Validating the Secret

After creating a webhook endpoint, JobScore will return you a randomly generated secret associated with this webhook. It looks like this:

BqlnkciDAsSax-Hk5Gxx-h3QGQuukA

As an additional and optional security step, you can use this secret to validate if the request really came from JobScore, and reject it otherwise. To do that you need to calculate the HMAC digest and check if it’s equal to the one informed on the X-Signature HTTP header of that request.

signature = OpenSSL::HMAC.hexdigest('sha256', secret, raw_request_body)

Ruby example.

Retry policy

If we can’t deliver the webhook for any reason, either by the server not responding or by getting a status code different than 2XX, we’ll retry the request according to the following policy:

Also, if we receive a status code of 410 we’ll automatically disable the webhook.

The Webhook Object

{
  "data": {
    "id": "cPsC744sqr6kHldNDWqL8o",
    "type": "events",
    "attributes": {
      "event_type": "<EVENT_TYPE>",
      "details": {

      }
    }
  }
}

The specific attributes for each event are different, but some base ones are sent on all events.

Candidate Workflow Stage Changed

{
  "data": {
    "id": "aQQ5dOSUur6Aj63kKeJOM4",
    "type": "events",
    "attributes": {
      "event_type": "workflow_stage_changed",
      "account_id": "aQFbLoSUur6Aj63kKeJOM4",
      "created_on": "2019-07-30 16:14:54 UTC",
      "details": {
        "message": "Stage changed from New to Screening",
        "pre_candidate_status_id": 57,
        "post_candidate_status_id": 59,
        "post_candidate_sub_status_id": "aQFG_ySUur6Aj63kKeJOM4"
      },
      "candidate": {
        "id": "aQPOTCSUur6Aj63kKeJOM4",
        "first_name": "Deana",
        "last_name": "Anderson",
        "email": "kermit.stehr@west.biz",
        "created_on": "2019-07-30 16:14:54 UTC",
        "updated_on": "2019-07-30 16:14:54 UTC",
        "home_phone": "600-880-0907",
        "home_street1": "Apt. 499",
        "home_street2": "Suite 204",
        "home_city": "Pollyton",
        "home_state": "VA",
        "home_postal_code": "87482-1021",
        "home_country": "US",
        "source": "other",
        "source_detail": "Fatback frankfurter capicola beef Kevin.",
        "profile_links": [

        ],
        "tags": [

        ],
        "schools": [

        ],
        "employers": [

        ],
        "source_referral_email": null,
        "source_referral_first_name": null,
        "source_referral_last_name": null,
        "primary_resume": null,
        "candidate_emails": [

        ]
      },
      "job": {
        "id": "aQNbEOSUur6Aj63kKeJOM4",
        "title": "Regional Accountability Agent",
        "description": "Mustache keffiyeh gluten-free etsy cred biodiesel hoodie locavore tofu. Readymade Wayfarers cardigan moon Wes Anderson Shoreditch lo-fi. Wes anderson single-origin coffee Cosby Sweater McSweeney's aesthetic iPhone mlkshk banh mi.",
        "status": "open",
        "requisition_number": 1,
        "publish": true,
        "job_types": [
          "full_time"
        ],
        "career_level": "senior_executive",
        "salary_minimum": null,
        "salary_maximum": null,
        "hourly_minimum": null,
        "hourly_maximum": null,
        "custom_fields": [

        ],
        "created_on": "2019-07-30 16:14:54 UTC",
        "updated_on": "2019-07-30 16:14:54 UTC",
        "location": {
          "id": "aQK5-CSUur6Aj63kKeJOM4",
          "nickname": null,
          "public_nickname": null,
          "street1": "Wehner Corners",
          "street2": null,
          "postal_code": "32408",
          "city": "Homershire",
          "state": "DE",
          "country": "US",
          "created_on": "2019-07-30 16:14:54 UTC",
          "updated_on": "2019-07-30 16:14:54 UTC"
        },
        "department": {
          "id": "aQM2XOSUur6Aj63kKeJOM4",
          "name": "pancetta",
          "created_on": "2019-07-30 16:14:54 UTC",
          "updated_on": "2019-07-30 16:14:54 UTC"
        },
        "job_active_sub_statuses": [
          {
            "id": "aQN_Q8SUur6Aj63kKeJOM4",
            "position": 201,
            "account_active_sub_status_id": null,
            "created_on": "2019-07-30 16:14:54 UTC",
            "updated_on": "2019-07-30 16:14:54 UTC"
          },
          {
            "id": "aQN-NCSUur6Aj63kKeJOM4",
            "position": 200,
            "account_active_sub_status_id": null,
            "created_on": "2019-07-30 16:14:54 UTC",
            "updated_on": "2019-07-30 16:14:54 UTC"
          },
          {
            "id": "aQN9D2SUur6Aj63kKeJOM4",
            "position": 7,
            "account_active_sub_status_id": "aQHXUmSUur6Aj63kKeJOM4",
            "created_on": "2019-07-30 16:14:54 UTC",
            "updated_on": "2019-07-30 16:14:54 UTC"
          },
          {
            "id": "aQN1OMSUur6Aj63kKeJOM4",
            "position": 6,
            "account_active_sub_status_id": "aQHFYISUur6Aj63kKeJOM4",
            "created_on": "2019-07-30 16:14:54 UTC",
            "updated_on": "2019-07-30 16:14:54 UTC"
          },
          {
            "id": "aQNUzaSUur6Aj63kKeJOM4",
            "position": 5,
            "account_active_sub_status_id": "aQGuyWSUur6Aj63kKeJOM4",
            "created_on": "2019-07-30 16:14:54 UTC",
            "updated_on": "2019-07-30 16:14:54 UTC"
          },
          {
            "id": "aQNNx8SUur6Aj63kKeJOM4",
            "position": 4,
            "account_active_sub_status_id": "aQF3pMSUur6Aj63kKeJOM4",
            "created_on": "2019-07-30 16:14:54 UTC",
            "updated_on": "2019-07-30 16:14:54 UTC"
          },
          {
            "id": "aQNFL-SUur6Aj63kKeJOM4",
            "position": 3,
            "account_active_sub_status_id": "aQFG_ySUur6Aj63kKeJOM4",
            "created_on": "2019-07-30 16:14:54 UTC",
            "updated_on": "2019-07-30 16:14:54 UTC"
          },
          {
            "id": "aQNyGeSUur6Aj63kKeJOM4",
            "position": 2,
            "account_active_sub_status_id": "aQFqr2SUur6Aj63kKeJOM4",
            "created_on": "2019-07-30 16:14:54 UTC",
            "updated_on": "2019-07-30 16:14:54 UTC"
          },
          {
            "id": "aQNpyuSUur6Aj63kKeJOM4",
            "position": 0,
            "account_active_sub_status_id": null,
            "created_on": "2019-07-30 16:14:54 UTC",
            "updated_on": "2019-07-30 16:14:54 UTC"
          }
        ]
      },
      "previous_workflow_stage": {
        "id": "brandnew",
        "name": "brandnew"
      },
      "current_workflow_stage": {
        "id": "active:aQFG_ySUur6Aj63kKeJOM4",
        "name": "Screening"
      },
      "hiring_team_role": {
        "id": 264,
        "name": "Hiring Manager"
      }
    }
  }
}

Task Added

{
  "data": {
    "id": "bq_iOSSUur6AA-3kKeJOM4",
    "type": "events",
    "attributes": {
      "event_type": "task_added",
      "account_id": "bq1Mn0SUur6AA-3kKeJOM4",
      "created_on": "2019-07-30 16:15:58 UTC",
      "details": {
        "task_subject": "aut voluptas distinctio",
        "task_group_id": "bq-X8GSUur6AA-3kKeJOM4",
        "task_slot_id": "bq-4k8SUur6AA-3kKeJOM4",
        "task_id": "bq-9YESUur6AA-3kKeJOM4",
        "task_duration": 604800,
        "task_calendar_sync": false
      },
      "task": {
        "id": "bq-9YESUur6AA-3kKeJOM4",
        "subject": "aut voluptas distinctio",
        "task_type": "nesciunt",
        "description": "Rufus Howell for Human Web Developer\n\nPhone: 204-505-6333\nEmail: vicenta.thompson@beatty.co.uk\nProfile: employer/candidate/view/bq-KG-SUur6AA-3kKeJOM4?sub=view_overview\n\nSchedule:\nAll times are in the Pacific Time (US & Canada) timezone.\n09:15am - 09:15am Bobby Schneider\n\nAdd Feedback: employer/messages/add_feedback?candidate_card_id=bq-KG-SUur6AA-3kKeJOM4&job_id=bq8HaqSUur6AA-3kKeJOM4&task_group_time_slot_id=bq-4k8SUur6AA-3kKeJOM4\n",
        "locations": [

        ],
        "start_time": "2019-08-06 16:15:58 UTC",
        "end_time": "2020-09-29 16:15:58 UTC",
        "optional": false,
        "required": true,
        "completed_on": null,
        "timezone": "Pacific Time (US & Canada)"
      },
      "assignee": {
        "id": "bq4tMISUur6AA-3kKeJOM4",
        "email": "jonah.anderson@schinner.name",
        "first_name": "Bobby",
        "last_name": "Schneider"
      },
      "candidate": {
        "id": "bq-KG-SUur6AA-3kKeJOM4",
        "first_name": "Rufus",
        "last_name": "Howell",
        "email": "vicenta.thompson@beatty.co.uk",
        "created_on": "2019-07-30 16:15:58 UTC",
        "updated_on": "2019-07-30 16:15:58 UTC",
        "home_phone": "204-505-6333",
        "home_street1": "Apt. 035",
        "home_street2": "Suite 202",
        "home_city": "Charoletteport",
        "home_state": "AR",
        "home_postal_code": "91815-6344",
        "home_country": "US",
        "source": "other",
        "source_detail": "Landjaeger sirloin swine venison tail turkey prosciutto corned beef.",
        "profile_links": [

        ],
        "tags": [

        ],
        "schools": [

        ],
        "employers": [

        ],
        "source_referral_email": null,
        "source_referral_first_name": null,
        "source_referral_last_name": null,
        "primary_resume": null,
        "candidate_emails": [

        ]
      },
      "job": {
        "id": "bq8HaqSUur6AA-3kKeJOM4",
        "title": "Human Web Developer",
        "description": "Austin iPhone salvia keytar McSweeney's beard echo park retro readymade. Aesthetic single-origin coffee raw denim vinyl seitan. Food truck blog PBR cred Carles yr gluten-free quinoa mlkshk. Locavore wolf Wes Anderson farm-to-table keytar raw denim. Williamsburg dreamcatcher viral readymade synth.",
        "status": "open",
        "requisition_number": 1,
        "publish": true,
        "job_types": [
          "full_time"
        ],
        "career_level": "senior_executive",
        "salary_minimum": null,
        "salary_maximum": null,
        "hourly_minimum": null,
        "hourly_maximum": null,
        "custom_fields": [

        ],
        "created_on": "2019-07-30 16:15:58 UTC",
        "updated_on": "2019-07-30 16:15:58 UTC",
        "location": {
          "id": "bq6BhGSUur6AA-3kKeJOM4",
          "nickname": null,
          "public_nickname": null,
          "street1": "Heller Oval",
          "street2": null,
          "postal_code": "44475",
          "city": "Kurtistown",
          "state": "MD",
          "country": "US",
          "created_on": "2019-07-30 16:15:58 UTC",
          "updated_on": "2019-07-30 16:15:58 UTC"
        },
        "department": {
          "id": "bq8xPGSUur6AA-3kKeJOM4",
          "name": "turducken",
          "created_on": "2019-07-30 16:15:58 UTC",
          "updated_on": "2019-07-30 16:15:58 UTC"
        },
        "job_active_sub_statuses": [
          {
            "id": "bq9pQGSUur6AA-3kKeJOM4",
            "position": 201,
            "account_active_sub_status_id": null,
            "created_on": "2019-07-30 16:15:58 UTC",
            "updated_on": "2019-07-30 16:15:58 UTC"
          },
          {
            "id": "bq9oZ0SUur6AA-3kKeJOM4",
            "position": 200,
            "account_active_sub_status_id": null,
            "created_on": "2019-07-30 16:15:58 UTC",
            "updated_on": "2019-07-30 16:15:58 UTC"
          },
          {
            "id": "bq9nX4SUur6AA-3kKeJOM4",
            "position": 7,
            "account_active_sub_status_id": "bq3L1YSUur6AA-3kKeJOM4",
            "created_on": "2019-07-30 16:15:58 UTC",
            "updated_on": "2019-07-30 16:15:58 UTC"
          },
          {
            "id": "bq9iE0SUur6AA-3kKeJOM4",
            "position": 6,
            "account_active_sub_status_id": "bq3tfESUur6AA-3kKeJOM4",
            "created_on": "2019-07-30 16:15:58 UTC",
            "updated_on": "2019-07-30 16:15:58 UTC"
          },
          {
            "id": "bq9dE-SUur6AA-3kKeJOM4",
            "position": 5,
            "account_active_sub_status_id": "bq2-A-SUur6AA-3kKeJOM4",
            "created_on": "2019-07-30 16:15:58 UTC",
            "updated_on": "2019-07-30 16:15:58 UTC"
          },
          {
            "id": "bq8-bsSUur6AA-3kKeJOM4",
            "position": 4,
            "account_active_sub_status_id": "bq2SxcSUur6AA-3kKeJOM4",
            "created_on": "2019-07-30 16:15:58 UTC",
            "updated_on": "2019-07-30 16:15:58 UTC"
          },
          {
            "id": "bq84X0SUur6AA-3kKeJOM4",
            "position": 3,
            "account_active_sub_status_id": "bq2x66SUur6AA-3kKeJOM4",
            "created_on": "2019-07-30 16:15:58 UTC",
            "updated_on": "2019-07-30 16:15:58 UTC"
          },
          {
            "id": "bq8ZPeSUur6AA-3kKeJOM4",
            "position": 2,
            "account_active_sub_status_id": "bq15RWSUur6AA-3kKeJOM4",
            "created_on": "2019-07-30 16:15:58 UTC",
            "updated_on": "2019-07-30 16:15:58 UTC"
          },
          {
            "id": "bq8SxCSUur6AA-3kKeJOM4",
            "position": 0,
            "account_active_sub_status_id": null,
            "created_on": "2019-07-30 16:15:58 UTC",
            "updated_on": "2019-07-30 16:15:58 UTC"
          }
        ]
      },
      "hiring_team_role": {
        "id": 264,
        "name": "Hiring Manager"
      }
    }
  }
}

The following additional attributes are given for task_added:

Candidate Applied

{
  "data": {
    "id": "bqHqm6SUur6AA-3kKeJOM4",
    "type": "events",
    "attributes": {
      "event_type": "candidate_applied",
      "account_id": "bqwyEmSUur6AA-3kKeJOM4",
      "created_on": "2019-07-30 16:15:57 UTC",
      "details": {
        "job_application_id": "bqG3g0SUur6AA-3kKeJOM4",
        "message": "Alvina Boehm applied via source_resume_other"
      },
      "candidate": {
        "id": "bqGLuySUur6AA-3kKeJOM4",
        "first_name": "Alvina",
        "last_name": "Boehm",
        "email": "ilona@mills.co.uk",
        "created_on": "2019-07-30 16:15:57 UTC",
        "updated_on": "2019-07-30 16:15:57 UTC",
        "home_phone": "328-636-1489",
        "home_street1": "Suite 271",
        "home_street2": "Apt. 547",
        "home_city": "Hauckbury",
        "home_state": "SD",
        "home_postal_code": "16650-8885",
        "home_country": "US",
        "source": "other",
        "source_detail": "Landjaeger leberkas pastrami shank ham hock turkey sirloin frankfurter salami.",
        "profile_links": [

        ],
        "tags": [

        ],
        "schools": [

        ],
        "employers": [

        ],
        "source_referral_email": null,
        "source_referral_first_name": null,
        "source_referral_last_name": null,
        "primary_resume": null,
        "candidate_emails": [

        ]
      },
      "job": {
        "id": "bqEBTGSUur6AA-3kKeJOM4",
        "title": "Direct Mobility Facilitator",
        "description": "Seitan etsy stumptown vegan cardigan mlkshk. Cliche thundercats Four Loko fixie messenger bag. Stumptown leggings Wes Anderson artisan Cosby Sweater synth helvetica Wayfarers. Blog viral ethical Brooklyn Rerry Richardson.",
        "status": "open",
        "requisition_number": 1,
        "publish": true,
        "job_types": [
          "full_time"
        ],
        "career_level": "senior_executive",
        "salary_minimum": null,
        "salary_maximum": null,
        "hourly_minimum": null,
        "hourly_maximum": null,
        "custom_fields": [

        ],
        "created_on": "2019-07-30 16:15:57 UTC",
        "updated_on": "2019-07-30 16:15:57 UTC",
        "location": {
          "id": "bqBX8QSUur6AA-3kKeJOM4",
          "nickname": null,
          "public_nickname": null,
          "street1": "Volkman Forges",
          "street2": null,
          "postal_code": "65841",
          "city": "North Jovan",
          "state": "HI",
          "country": "US",
          "created_on": "2019-07-30 16:15:57 UTC",
          "updated_on": "2019-07-30 16:15:57 UTC"
        },
        "department": {
          "id": "bqEpTISUur6AA-3kKeJOM4",
          "name": "t-bone",
          "created_on": "2019-07-30 16:15:57 UTC",
          "updated_on": "2019-07-30 16:15:57 UTC"
        },
        "job_active_sub_statuses": [
          {
            "id": "bqFrYsSUur6AA-3kKeJOM4",
            "position": 201,
            "account_active_sub_status_id": null,
            "created_on": "2019-07-30 16:15:57 UTC",
            "updated_on": "2019-07-30 16:15:57 UTC"
          },
          {
            "id": "bqFq6QSUur6AA-3kKeJOM4",
            "position": 200,
            "account_active_sub_status_id": null,
            "created_on": "2019-07-30 16:15:57 UTC",
            "updated_on": "2019-07-30 16:15:57 UTC"
          },
          {
            "id": "bqFp4qSUur6AA-3kKeJOM4",
            "position": 7,
            "account_active_sub_status_id": "bqyvUCSUur6AA-3kKeJOM4",
            "created_on": "2019-07-30 16:15:57 UTC",
            "updated_on": "2019-07-30 16:15:57 UTC"
          },
          {
            "id": "bqFkbKSUur6AA-3kKeJOM4",
            "position": 6,
            "account_active_sub_status_id": "bqydWsSUur6AA-3kKeJOM4",
            "created_on": "2019-07-30 16:15:57 UTC",
            "updated_on": "2019-07-30 16:15:57 UTC"
          },
          {
            "id": "bqFdV2SUur6AA-3kKeJOM4",
            "position": 5,
            "account_active_sub_status_id": "bqxVb4SUur6AA-3kKeJOM4",
            "created_on": "2019-07-30 16:15:57 UTC",
            "updated_on": "2019-07-30 16:15:57 UTC"
          },
          {
            "id": "bqE9M4SUur6AA-3kKeJOM4",
            "position": 4,
            "account_active_sub_status_id": "bqxvtYSUur6AA-3kKeJOM4",
            "created_on": "2019-07-30 16:15:57 UTC",
            "updated_on": "2019-07-30 16:15:57 UTC"
          },
          {
            "id": "bqE3ZYSUur6AA-3kKeJOM4",
            "position": 3,
            "account_active_sub_status_id": "bqw5wqSUur6AA-3kKeJOM4",
            "created_on": "2019-07-30 16:15:57 UTC",
            "updated_on": "2019-07-30 16:15:57 UTC"
          },
          {
            "id": "bqEX4USUur6AA-3kKeJOM4",
            "position": 2,
            "account_active_sub_status_id": "bqwNd8SUur6AA-3kKeJOM4",
            "created_on": "2019-07-30 16:15:57 UTC",
            "updated_on": "2019-07-30 16:15:57 UTC"
          },
          {
            "id": "bqEO4aSUur6AA-3kKeJOM4",
            "position": 0,
            "account_active_sub_status_id": null,
            "created_on": "2019-07-30 16:15:57 UTC",
            "updated_on": "2019-07-30 16:15:57 UTC"
          }
        ]
      },
      "hiring_team_role": {
        "id": 264,
        "name": "Hiring Manager"
      }
    }
  }
}

The following additional attributes are given for candidate_applied:

Job Added

{
  "data": {
    "id": "aNFAFUSUur6Aiq3kKeJOM4",
    "type": "events",
    "attributes": {
      "event_type": "job_added",
      "account_id": "aNrYZWSUur6Aiq3kKeJOM4",
      "created_on": "2019-07-30 16:14:49 UTC",
      "details": {
        "job_status_id": 81
      },
      "job": {
        "id": "aNC-vmSUur6Aiq3kKeJOM4",
        "title": "Future Mobility Developer",
        "description": "Wes anderson twee readymade beard cardigan Pitchfork Marfa trust fund. You probably haven't heard of them jean shorts Carles whatever cliche skateboard. Locavore helvetica beard gentrify wolf freegan. Before they sold out skateboard art vice locavore. Letterpress Four Loko tofu sartorial photo booth +1 vegan etsy.",
        "status": "open",
        "requisition_number": 1,
        "publish": true,
        "job_types": [
          "full_time"
        ],
        "career_level": "senior_executive",
        "salary_minimum": null,
        "salary_maximum": null,
        "hourly_minimum": null,
        "hourly_maximum": null,
        "custom_fields": [

        ],
        "created_on": "2019-07-30 16:14:49 UTC",
        "updated_on": "2019-07-30 16:14:49 UTC",
        "location": {
          "id": "aNAfQCSUur6Aiq3kKeJOM4",
          "nickname": null,
          "public_nickname": null,
          "street1": "Bergstrom Dale",
          "street2": null,
          "postal_code": "30842-1717",
          "city": "Faustinachester",
          "state": "MI",
          "country": "US",
          "created_on": "2019-07-30 16:14:48 UTC",
          "updated_on": "2019-07-30 16:14:48 UTC"
        },
        "department": {
          "id": "aNCWbUSUur6Aiq3kKeJOM4",
          "name": "tail",
          "created_on": "2019-07-30 16:14:49 UTC",
          "updated_on": "2019-07-30 16:14:49 UTC"
        },
        "job_active_sub_statuses": [
          {
            "id": "aNEbgaSUur6Aiq3kKeJOM4",
            "position": 201,
            "account_active_sub_status_id": null,
            "created_on": "2019-07-30 16:14:49 UTC",
            "updated_on": "2019-07-30 16:14:49 UTC"
          },
          {
            "id": "aNEai6SUur6Aiq3kKeJOM4",
            "position": 200,
            "account_active_sub_status_id": null,
            "created_on": "2019-07-30 16:14:49 UTC",
            "updated_on": "2019-07-30 16:14:49 UTC"
          },
          {
            "id": "aND-96SUur6Aiq3kKeJOM4",
            "position": 7,
            "account_active_sub_status_id": "aNtMhMSUur6Aiq3kKeJOM4",
            "created_on": "2019-07-30 16:14:49 UTC",
            "updated_on": "2019-07-30 16:14:49 UTC"
          },
          {
            "id": "aND2QQSUur6Aiq3kKeJOM4",
            "position": 6,
            "account_active_sub_status_id": "aNtuC0SUur6Aiq3kKeJOM4",
            "created_on": "2019-07-30 16:14:49 UTC",
            "updated_on": "2019-07-30 16:14:49 UTC"
          },
          {
            "id": "aNDU2GSUur6Aiq3kKeJOM4",
            "position": 5,
            "account_active_sub_status_id": "aNtd2OSUur6Aiq3kKeJOM4",
            "created_on": "2019-07-30 16:14:49 UTC",
            "updated_on": "2019-07-30 16:14:49 UTC"
          },
          {
            "id": "aNDOhgSUur6Aiq3kKeJOM4",
            "position": 4,
            "account_active_sub_status_id": "aNsYx4SUur6Aiq3kKeJOM4",
            "created_on": "2019-07-30 16:14:49 UTC",
            "updated_on": "2019-07-30 16:14:49 UTC"
          },
          {
            "id": "aNDG_aSUur6Aiq3kKeJOM4",
            "position": 3,
            "account_active_sub_status_id": "aNsFGySUur6Aiq3kKeJOM4",
            "created_on": "2019-07-30 16:14:49 UTC",
            "updated_on": "2019-07-30 16:14:49 UTC"
          },
          {
            "id": "aNDz2MSUur6Aiq3kKeJOM4",
            "position": 2,
            "account_active_sub_status_id": "aNsdrwSUur6Aiq3kKeJOM4",
            "created_on": "2019-07-30 16:14:49 UTC",
            "updated_on": "2019-07-30 16:14:49 UTC"
          },
          {
            "id": "aNDpvOSUur6Aiq3kKeJOM4",
            "position": 0,
            "account_active_sub_status_id": null,
            "created_on": "2019-07-30 16:14:49 UTC",
            "updated_on": "2019-07-30 16:14:49 UTC"
          }
        ]
      },
      "job_status": {
        "id": "open",
        "name": "Open"
      },
      "hiring_team_role": {
        "id": 264,
        "name": "Hiring Manager"
      }
    }
  }
}

Job Status Changed

{
  "data": {
    "id": "aS1ZpmSUur6Ak63kKeJOM4",
    "type": "events",
    "attributes": {
      "event_type": "job_status_changed",
      "account_id": "aSPL3eSUur6Ak63kKeJOM4",
      "created_on": "2019-07-30 16:14:58 UTC",
      "details": {
        "message": "The job's status was changed from Open to On Hold",
        "pre_status_id": 81,
        "post_status_id": 83
      },
      "job": {
        "id": "aSZtjqSUur6Ak63kKeJOM4",
        "title": "Forward Intranet Coordinator",
        "description": "Austin DIY brunch single-origin coffee artisan Shoreditch readymade master cleanse food truck. Jean shorts ethical Austin lo-fi yr cliche. Wayfarers before they sold out raw denim freegan Four Loko single-origin coffee. Sustainable before they sold out scenester keytar gentrify.",
        "status": "on_hold",
        "requisition_number": 1,
        "publish": true,
        "job_types": [
          "full_time"
        ],
        "career_level": "senior_executive",
        "salary_minimum": null,
        "salary_maximum": null,
        "hourly_minimum": null,
        "hourly_maximum": null,
        "custom_fields": [

        ],
        "created_on": "2019-07-30 16:14:58 UTC",
        "updated_on": "2019-07-30 16:14:58 UTC",
        "location": {
          "id": "aSWCYESUur6Ak63kKeJOM4",
          "nickname": null,
          "public_nickname": null,
          "street1": "Parker Ford",
          "street2": null,
          "postal_code": "62416",
          "city": "Dionview",
          "state": "MT",
          "country": "US",
          "created_on": "2019-07-30 16:14:57 UTC",
          "updated_on": "2019-07-30 16:14:57 UTC"
        },
        "department": {
          "id": "aSZfVCSUur6Ak63kKeJOM4",
          "name": "pork belly",
          "created_on": "2019-07-30 16:14:58 UTC",
          "updated_on": "2019-07-30 16:14:58 UTC"
        },
        "job_active_sub_statuses": [
          {
            "id": "aSZG1QSUur6Ak63kKeJOM4",
            "position": 0,
            "account_active_sub_status_id": null,
            "created_on": "2019-07-30 16:14:58 UTC",
            "updated_on": "2019-07-30 16:14:58 UTC"
          },
          {
            "id": "aSZQkISUur6Ak63kKeJOM4",
            "position": 2,
            "account_active_sub_status_id": "aSP52MSUur6Ak63kKeJOM4",
            "created_on": "2019-07-30 16:14:58 UTC",
            "updated_on": "2019-07-30 16:14:58 UTC"
          },
          {
            "id": "aSZYYgSUur6Ak63kKeJOM4",
            "position": 3,
            "account_active_sub_status_id": "aSQyKISUur6Ak63kKeJOM4",
            "created_on": "2019-07-30 16:14:58 UTC",
            "updated_on": "2019-07-30 16:14:58 UTC"
          },
          {
            "id": "aSZ7roSUur6Ak63kKeJOM4",
            "position": 4,
            "account_active_sub_status_id": "aSQ0_MSUur6Ak63kKeJOM4",
            "created_on": "2019-07-30 16:14:58 UTC",
            "updated_on": "2019-07-30 16:14:58 UTC"
          },
          {
            "id": "aS0cdMSUur6Ak63kKeJOM4",
            "position": 5,
            "account_active_sub_status_id": "aSRyuISUur6Ak63kKeJOM4",
            "created_on": "2019-07-30 16:14:58 UTC",
            "updated_on": "2019-07-30 16:14:58 UTC"
          },
          {
            "id": "aS0it6SUur6Ak63kKeJOM4",
            "position": 6,
            "account_active_sub_status_id": "aSRW94SUur6Ak63kKeJOM4",
            "created_on": "2019-07-30 16:14:58 UTC",
            "updated_on": "2019-07-30 16:14:58 UTC"
          },
          {
            "id": "aS0oMgSUur6Ak63kKeJOM4",
            "position": 7,
            "account_active_sub_status_id": "aSSjcmSUur6Ak63kKeJOM4",
            "created_on": "2019-07-30 16:14:58 UTC",
            "updated_on": "2019-07-30 16:14:58 UTC"
          },
          {
            "id": "aS0pMESUur6Ak63kKeJOM4",
            "position": 200,
            "account_active_sub_status_id": null,
            "created_on": "2019-07-30 16:14:58 UTC",
            "updated_on": "2019-07-30 16:14:58 UTC"
          },
          {
            "id": "aS0qykSUur6Ak63kKeJOM4",
            "position": 201,
            "account_active_sub_status_id": null,
            "created_on": "2019-07-30 16:14:58 UTC",
            "updated_on": "2019-07-30 16:14:58 UTC"
          }
        ]
      },
      "previous_job_status": {
        "id": "open",
        "name": "Open"
      },
      "current_job_status": {
        "id": "on_hold",
        "name": "On Hold"
      },
      "hiring_team_role": {
        "id": 264,
        "name": "Hiring Manager"
      }
    }
  }
}