NAV
shell

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": "FJQ0o_t4uSxYf4CdWa8e8Q",
            "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",
    "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.

Create Candidate

curl -X POST https://api.jobscore.com/v1/candidates \
  -H 'Authorization: Token token=YOUR_PERSONAL_ACCESS_TOKEN' \
  -H 'Content-Type: application/vnd.api+json' -d \
'{
  "data": {
    "type": "candidates",
    "attributes": {
      "first_name": "Maria",
      "last_name": "Skłodowska-Curie",
      "email": "maria@example.com",
      "source": "user",
      "source_referral_first_name": "Maria",
      "source_referral_last_name": "G. Mayer",
      "source_referral_email": "mariamayer@example.com"
    },
    "relationships": {
      "source_user": {
        "data": {
          "type": "user",
          "id": "JTWJp-OVVmntHy3mG_XBGA"
        }
      }
    }
  }
}'

Returns JSON structured like this:

{
  "data": {
    "id": "-hoPeSV_AliwHvtv2P4tvw",
    "type": "candidates",
    "attributes": {
      "first_name": "Maria",
      "last_name": "Skłodowska-Curie",
      "email": "maria@example.com",
      "created_on": "2015-12-01T12:00:16.000Z",
      "updated_on": "2015-12-01T12:00:16.000Z",
      "home_phone": null,
      "home_street1": null,
      "home_street2": null,
      "home_city": null,
      "home_state": null,
      "home_postal_code": null,
      "home_country": null,
      "source": "user",
      "source_detail": null,
      "profile_links": [

      ],
      "tags": [

      ],
      "schools": [

      ],
      "employers": [

      ],
      "source_referral_email": "mariamayer@example.com",
      "source_referral_first_name": "Maria",
      "source_referral_last_name": "G. Mayer"
    },
    "relationships": {
      "source_user": {
        "data": {
          "id": "8hIPtT17axog7soPFQvTmA",
          "type": "users"
        }
      },
      "primary_resume": {
        "data": null
      },
      "candidate_emails": {
        "data": [

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

Create new candidate.

HTTP Request

POST /candidates

Request Body

The candidate’s data you’re about to create must be sent via Request Body as a structured Candidate Object, according to the JSON API spec for Creating Resources.

You must always include a “type” in the request. You can’t set the “id”, this will be automatically assigned by us upon creation.

See the example to the left to understand how it should be structured.

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": "iA68FBerhtMzGC4Y7wkYtA",
          "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

Update Candidate

curl -X PATCH https://api.jobscore.com/v1/candidates/IvV2eM3TnFb2X5J7nlW35g \
  -H 'Authorization: Token token=YOUR_PERSONAL_ACCESS_TOKEN' \
  -H 'Content-Type: application/vnd.api+json' -d \
'{
  "data": {
    "type": "candidates",
    "id": "IvV2eM3TnFb2X5J7nlW35g",
    "attributes": {
      "source": "other",
      "source_detail": "TED event",
      "email": "pete2020@example.org"
    }
  }
}'

Returns JSON structured like this:

{
  "data": {
    "id": "IvV2eM3TnFb2X5J7nlW35g",
    "type": "candidates",
    "attributes": {
      "first_name": "Peter",
      "last_name": "Smith",
      "email": "pete2020@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": "other",
      "source_detail": "TED event",
      "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": {
      "primary_resume": {
        "data": {
          "id": "5aIc9hJH9ru8LgvhuitM_g",
          "type": "documents"
        }
      },
      "candidate_emails": {
        "data": [

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

Update existing candidate.

As for the HTTP method, always use PATCH instead of PUT.

HTTP Request

PATCH /candidates/:id

Parameters

id required, uid
Candidate’s unique identifier.

Request Body

The candidate’s data you’re about to update must be sent via Request Body as a structured Candidate Object, according to the JSON API spec for Updating Resources.

You must always include a “type” and “id” in the request.

You can only send attributes that you want to update. For instance, if you don’t want to update the candidate’s first name and last name, there’s no need to send them. Notice that in case you want to update an internal attribute from a structured attribute (such as the schools attribute) you must send it entirely.

See the example to the left to understand how it should be structured.

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.
file_size required, integer, read-only
The file size in bytes of the file.
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",
    "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.

Create Document

curl -X POST https://api.jobscore.com/v1/candidates/l4hjLAjTtrLDJje6kmpU9w/documents \
  -H 'Authorization: Token token=YOUR_PERSONAL_ACCESS_TOKEN' \
  -F "resume=@../my_resumes/resume-1.pdf;filename=resume.pdf;type=application/pdf"
  -H 'Content-Type: multipart/form-data'

Returns JSON structured like this:

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

Creates a new document. It expects a binary file, in which the document will be created.

If you want to create a resume send the file using “resume” as the file key (as in the example to the right).

If you want to create a cover letter send the file using “cover_letter” as the file key.

HTTP Request

POST /candidates/:candidate_id/documents

Parameters

candidate_id required, uid
Candidate’s unique identifier.

Request Body

The document binary file you want to upload. You can set a different filename and MIME type when uploading the file according to the client you are using to upload the file.

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",
    "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.

Create Note

curl -X POST https://api.jobscore.com/v1/candidates/l4hjLAjTtrLDJje6kmpU9w/notes \
  -H 'Authorization: Token token=YOUR_PERSONAL_ACCESS_TOKEN' \
  -H 'Content-Type: application/vnd.api+json' -d \
'{
  "data": {
    "type": "notes",
    "attributes": {
      "content": "<p>In my opinion, we should hire this candidate.</p><p>Kind regards,<br>  Mark</p>"
    }
  }
}'

Returns JSON structured like this:

{
  "data": {
    "id": "RdjXo7bQ-F-LrG9scYCDPg",
    "type": "notes",
    "attributes": {
      "content": "<p>In my opinion, we should hire this candidate.</p><p>Kind regards,<br>  Mark</p>",
      "private": false,
      "created_on": "2015-12-01T12:00:16.000Z",
      "updated_on": "2015-12-01T12:00:16.000Z"
    }
  }
}

Create new note for a candidate.

HTTP Request

POST /candidates/:candidate_id/notes

Parameters

candidate_id required, uid
Candidate’s unique identifier.

Request Body

The note’s data you are about to create must be sent via Request Body as a structured Candidate Object, according to the JSON API spec for Creating Resources.

You must always include a “type” in the request. You can’t set the “id”, this will be automatically assigned upon creation.

See the example to the left to understand how it should be structured.

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.

Update Note

curl -X PATCH https://api.jobscore.com/v1/candidates/l4hjLAjTtrLDJje6kmpU9w/notes/8olEVH44vvdUPXdzdojZLA \
  -H 'Authorization: Token token=YOUR_PERSONAL_ACCESS_TOKEN' \
  -H 'Content-Type: application/vnd.api+json' -d \
'{
  "data": {
    "type": "notes",
    "id": "8olEVH44vvdUPXdzdojZLA",
    "attributes": {
      "content": "<p>Good candidate for this job opportunity. We should hire him.</p>"
    }
  }
}'

Returns JSON structured like this:

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

Update existing note.

As for the HTTP method, always use PATCH instead of PUT.

HTTP Request

PATCH /candidates/:candidate_id/notes/:id

Parameters

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

Request Body

The note’s data you are about to update must be sent via Request Body as a structured Candidate Object, according to the JSON API spec for Updating Resources.

You must always include a “type” and “id” in the request.

You can only send attributes that you want to update. For instance, if you don’t want to update the note’s private flag, there’s no need to send it.

See the example to the left to understand how it should be structured.

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-18T12:00:16.000Z",
        "offer_extended_on": "2015-12-05T12:00:16.000Z",
        "offer_accepted_on": "2015-12-10T12:00:16.000Z",
        "start_date_on": "2015-12-25T12:00:16.000Z"
      },
      "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-14T16:15:04.000Z",
        "offer_extended_on": "2015-12-05T12:00:16.000Z",
        "offer_accepted_on": "2015-12-10T12:00:16.000Z",
        "start_date_on": "2015-12-25T12:00:16.000Z"
      },
      "relationships": {
        "candidate": {
          "data": {
            "id": "zSbCGzFu1FGIRzfeXGaZaw",
            "type": "candidates"
          }
        },
        "job": {
          "data": {
            "id": "vIsygSK2JKab_dlhrbUCwg",
            "type": "jobs"
          }
        },
        "workflow_stage": {
          "data": {
            "id": "active:ciEZ1oVNkVS_Mc8eDaHIiw",
            "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",
    "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.

Create Job Assignment

curl -X POST https://api.jobscore.com/v1/candidates/zSbCGzFu1FGIRzfeXGaZaw/assignments \
  -H 'Authorization: Token token=YOUR_PERSONAL_ACCESS_TOKEN' \
  -H 'Content-Type: application/vnd.api+json' -d \
'{
  "data": {
    "type": "assignments",
    "relationships": {
      "job": {
        "data": {
          "type": "job",
          "id": "YxspxVcSimtyMU79LtOq6Q"
        }
      }
    }
  }
}'

Returns JSON structured like this:

{
  "data": {
    "id": "ETlq1i0bxKq9-xCXK8bVDw",
    "type": "assignments",
    "attributes": {
      "origin": "user",
      "created_on": "2015-12-01T12:00:16.000Z",
      "updated_on": "2015-12-10T12:00:16.000Z",
      "offer_extended_on": "2015-12-05T12:00:16.000Z",
      "offer_accepted_on": "2015-12-10T12:00:16.000Z",
      "start_date_on": "2015-12-25T12:00:16.000Z"
    },
    "relationships": {
      "candidate": {
        "data": {
          "id": "zSbCGzFu1FGIRzfeXGaZaw",
          "type": "candidates"
        }
      },
      "job": {
        "data": {
          "id": "YxspxVcSimtyMU79LtOq6Q",
          "type": "jobs"
        }
      },
      "workflow_stage": {
        "data": {
          "id": "brandnew",
          "type": "workflow_stages"
        }
      }
    },
    "links": {
      "self": {
        "href": "/v1/candidates/zSbCGzFu1FGIRzfeXGaZaw/assignments/ETlq1i0bxKq9-xCXK8bVDw"
      }
    }
  }
}

Assigns a candidate to a job, creating a new job assignment.

New assignments are always created with workflow stage as “brandnew”.

If you want to create a Talent Network assignment, just create a new candidate and it will sit in the Talent Network (no need to create an additional Assignment resource).

HTTP Request

POST /candidates/:candidate_id/assignments

Parameters

candidate_id required, uid
Candidate’s unique identifier.

Request Body

The job assignment’s data you’re about to create must be sent via Request Body as a structured Job Assignment Object, according to the JSON API spec for Creating Resources.

You must always include a “type” in the request. You can’t set the “id”, this will be automatically assigned by us upon creation.

See the example in the left to understand how it should be structured.

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-11T12:00:16.000Z",
      "offer_extended_on": "2015-12-05T12:00:16.000Z",
      "offer_accepted_on": "2015-12-10T12:00:16.000Z",
      "start_date_on": "2015-12-25T12:00:16.000Z"
    },
    "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.

Update Job Assignment

curl -X PATCH https://api.jobscore.com/v1/candidates/l4hjLAjTtrLDJje6kmpU9w/assignments/8olEVH44vvdUPXdzdojZLA \
  -H 'Authorization: Token token=YOUR_PERSONAL_ACCESS_TOKEN' \
  -H 'Content-Type: application/vnd.api+json' -d \
'{
  "data": {
    "type": "assignments",
    "id": "D1QM7aZIvCd_Ee2MFcNbKQ",
    "relationships": {
      "workflow_stage": {
        "data": {
          "id": "active:dQP9pecYGr5PakGozqcCQo",
          "type": "workflow_stages"
        }
      }
    }
  }
}'

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": "2015-12-01T12:00:16.000Z",
      "offer_accepted_on": "2015-12-01T12:00:16.000Z",
      "start_date_on": "2015-12-01T12:00:16.000Z"
    },
    "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": "active:dQP9pecYGr5PakGozqcCQo",
          "type": "workflow_stages"
        }
      }
    },
    "links": {
      "self": {
        "href": "/v1/candidates/zSbCGzFu1FGIRzfeXGaZaw/assignments/D1QM7aZIvCd_Ee2MFcNbKQ"
      }
    }
  }
}

Update existing job assignment.

You cannot change job assignments to either “declined”, “withdrawn” or “hired”. That means that the only workflow stages that can be changed via API request are “brandnew” and ids beginning with “active:”.

As for the HTTP method, always use PATCH instead of PUT.

HTTP Request

PATCH /candidates/:candidate_id/assignments/:id

Parameters

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

Request Body

The job assignment’s data you are about to update must be sent via Request Body as a structured Candidate Object, according to the JSON API spec for Updating Resources.

You must always include a “type” and “id” in the request.

You can only send attributes that you want to update. For instance, if you don’t want to update the job assignment’s private flag, there’s no need to send it.

See the example to the left to understand how it should be structured.

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:HcfG3Vq9KtKclTtEcVQ2FQ",
      "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",
    "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": 9,
      "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:5aM8oe4uk_8Zo0YqQcWqUg",
    "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
job_active_sub_statuses required, list
List of workflow stages. For Free, Post and Lite accounts, it allows an empty list. For Professional and Enterprise customers, this field is required. This field is composed of a list of the following fields:
  • position: Is a integer that represents the stage position. Values for this field should start from 0.
  • account_active_sub_status_id: Is a string that represents the ID of the referred workflow stage. Must be obtained from calling the list of available stages for the account.
For Professional and Enterprise customers, the inclusion of the following stages are obligated:
  • Screening
  • Interviewing
  • Check References
  • Offer
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.
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",
        "publish": "true",
        "requisition_number": 3,
        "job_types": [
          "full_time"
        ],
        "career_level": "senior_executive",
        "salary_minimum": null,
        "salary_maximum": null,
        "hourly_minimum": null,
        "hourly_maximum": null,
        "created_on": "2015-12-01T12:00:16.000Z",
        "updated_on": "2015-12-01T12:00:16.000Z"
      },
      "relationships": {
        "location": {
          "data": {
            "id": "avSWGaMcmr5yqzGozqcCQo",
            "type": "locations"
          }
        },
        "department": {
          "data": {
            "id": "avSWGaMcmr5yqGGozqcCQo",
            "type": "departments"
          }
        }
        "job_active_sub_statuses" : {
          "data": [
            { "id": "avSWGaMcmr5AfmOjMBgFgh",
              "type": "job_active_sub_statuses"
            },
            { "id": "avSWGaMcmr5AflOjMBgFgh",
              "type": "job_active_sub_statuses"
            }
          ]
        }
      },
      "links": {
        "location": {
          "href": "/v1/locations/avSWGaMcmr5yqzGozqcCQo"
        },
        "department": {
          "href": "/v1/departments/avSWGaMcmr5yqGGozqcCQo"
        },
        "public_description_url": {
          "href": "https://dev.jobscore.com/careers/vel555/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",
        "publish": "true",
        "requisition_number": 2,
        "job_types": [
          "full_time"
        ],
        "career_level": "senior_executive",
        "salary_minimum": null,
        "salary_maximum": null,
        "hourly_minimum": null,
        "hourly_maximum": null,
        "created_on": "2015-09-12T16:15:04.000Z",
        "updated_on": "2015-09-12T16:15:04.000Z"
      },
      "relationships": {
        "location": {
          "data": {
            "id": "bTaRqawwKr5yqrGozqcCQo",
            "type": "locations"
          }
        },
        "department": {
          "data": {
            "id": "bTaRqawwKr5yqyGozqcCQo",
            "type": "departments"
          }
        }
      },
      "links": {
        "location": {
          "href": "/v1/locations/bTaRqawwKr5yqrGozqcCQo"
        },
        "department": {
          "href": "/v1/departments/bTaRqawwKr5yqyGozqcCQo"
        },
        "public_description_url": {
          "href": "https://dev.jobscore.com/careers/vel555/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",
    "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.

Create Job

curl -X POST https://api.jobscore.com/v1/jobs \
  -H 'Authorization: Token token=YOUR_PERSONAL_ACCESS_TOKEN' \
  -H 'Content-Type: application/vnd.api+json' -d \
'{
  "data": {
    "type": "jobs",
    "attributes": {
      "title": "Documentation Writer",
      "description": "Write lots of documentation for our API endpoints",
      "status": "open",
      "publish": "true",
      "job_types": [
        "full_time"
      ],
      "career_level": "entry_level",
      "salary_minimum": 3000,
      "salary_maximum": 4000
    },
    "relationships": {
      "location": {
        "data": {
          "id": "cWLvK0dyWr5QJJGozqcCQo",
          "type": "location"
        }
      },
      "department": {
        "data": {
          "id": "cWLDZ2dyWr5QJJGozqcCQo",
          "type": "department"
        }
      }
    }
  }
}'

Returns JSON structured like this:

{
  "data": {
    "id": "avSWGaMcmr5yrRGozqcCQo",
    "type": "jobs",
    "attributes": {
      "title": "Documentation Writer",
      "description": "Write lots of documentation for our API endpoints",
      "status": "open",
      "publish": "true",
      "requisition_number": 1,
      "job_types": [
        "full_time"
      ],
      "career_level": "entry_level",
      "salary_minimum": 3000,
      "salary_maximum": 4000,
      "hourly_minimum": null,
      "hourly_maximum": null,
      "created_on": "2015-12-01T12:00:16.000Z",
      "updated_on": "2015-12-01T12:00:16.000Z"
    },
    "relationships": {
      "location": {
        "data": {
          "id": "dOuVvady8r5OrQGozqcCQo",
          "type": "locations"
        }
      },
      "department": {
        "data": {
          "id": "dOu1-kdy8r5OrQGozqcCQo",
          "type": "departments"
        }
      }
    },
    "links": {
      "location": {
        "href": "/v1/locations/dOuVvady8r5OrQGozqcCQo"
      },
      "department": {
        "href": "/v1/departments/dOu1-kdy8r5OrQGozqcCQo"
      },
      "public_description_url": {
        "href": "https://dev.jobscore.com/careers/inventore43678/jobs/documentation-writer-avSWGaMcmr5yrRGozqcCQo"
      },
      "public_application_url": {
        "href": "https://dev.jobscore.com/apply_flow/applications/go?job_id=avSWGaMcmr5yrRGozqcCQo"
      }
    }
  }
}

Create new job.

HTTP Request

POST /jobs

Request Body

The job’s data you are about to create must be sent via Request Body as a structured Job Object, according to the JSON API spec for Creating Resources.

You must always include a “type” in the request. You can’t set the “id”, this will be automatically assigned upon creation.

See the example to the left to understand how it should be structured.

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",
      "publish": "true",
      "requisition_number": 1,
      "job_types": [
        "full_time"
      ],
      "career_level": "senior_executive",
      "salary_minimum": null,
      "salary_maximum": null,
      "hourly_minimum": null,
      "hourly_maximum": null,
      "created_on": "2015-12-01T12:00:16.000Z",
      "updated_on": "2015-12-01T12:00:16.000Z"
    },
    "relationships": {
      "location": {
        "data": {
          "id": "avSWGaMcmr5yrmGozqcCQo",
          "type": "locations"
        }
      },
      "department": {
        "data": {
          "id": "avSWGaMcmr5yrtGozqcCQo",
          "type": "departments"
        }
      }
    },
    "links": {
      "location": {
        "href": "/v1/locations/avSWGaMcmr5yrmGozqcCQo"
      },
      "department": {
        "href": "/v1/departments/avSWGaMcmr5yrtGozqcCQo"
      },
      "public_description_url": {
        "href": "https://dev.jobscore.com/careers/est97557/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.

Update Job

curl https://api.jobscore.com/v1/jobs/ob3EQtrPkREE62lZiPQ6Wg \
  -H 'Authorization: Token token=YOUR_PERSONAL_ACCESS_TOKEN' \
  -H 'Content-Type: application/vnd.api+json' \
  -X POST -d \
'{
  "data": {
    "type": "jobs",
    "id": "ob3EQtrPkREE62lZiPQ6Wg",
    "attributes": {
      "description": "A better description."
    }
  }
}'

Returns JSON structured like this:

{
  "data": {
    "id": "ob3EQtrPkREE62lZiPQ6Wg",
    "type": "jobs",
    "attributes": {
      "title": "Physics Specialist",
      "description": "A better description.",
      "status": "open",
      "requisition_number": 1,
      "job_types": [
        "full_time"
      ],
      "career_level": "senior_executive",
      "salary_minimum": null,
      "salary_maximum": null,
      "hourly_minimum": null,
      "hourly_maximum": null,
      "created_on": "2015-12-01T12:00:16.000Z",
      "updated_on": "2015-12-01T12:00:16.000Z"
    },
    "relationships": {
      "location": {
        "data": {
          "id": "avSWGaMcmr5yvrGozqcCQo",
          "type": "locations"
        }
      },
      "department": {
        "data": {
          "id": "avSWGaMcmr5yvyGozqcCQo",
          "type": "departments"
        }
      }
    },
    "links": {
      "location": {
        "href": "/v1/locations/avSWGaMcmr5yvrGozqcCQo"
      },
      "department": {
        "href": "/v1/departments/avSWGaMcmr5yvyGozqcCQo"
      },
      "public_description_url": {
        "href": "https://dev.jobscore.com/careers/quae7987/jobs/physics-specialist-ob3EQtrPkREE62lZiPQ6Wg"
      },
      "public_application_url": {
        "href": "https://dev.jobscore.com/apply_flow/applications/go?job_id=ob3EQtrPkREE62lZiPQ6Wg"
      }
    }
  }
}

Update existing job.

HTTP Request

PATCH /jobs/:id

Parameters

id required, uid
Job’s unique identifier.

Request Body

The job’s data you’re about to update must be sent via Request Body as a structured Job Object, according to the JSON API spec for Updating Resources.

You must always include a “type” and “id” in the request.

You can only send attributes that you want to update. For instance, if you don’t want to update the job’s title, there’s no need to send it. Notice that if you want to update an internal attribute from a structured attribute (such as the education_histories) you must sent it entirely.

See the example to the left to understand how it should be structured.

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",
    "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",
    "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. You can learn more about access levels in the JobScore HelpCenter: How Are Owners, Admins, and Users different in JobScore?

The User Object

first_name required, string
First name.
last_name required, string
Last name.
email required, string
Email address.
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 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",
    "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",
    "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",
    "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",
    "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",
    "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",
    "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.