Push API and Webhooks

YAML


Push API

API for our integration partners, who want to push candidates and subscribers into Jobylon.

Model

In Jobylon every candidate can be represented by one or more applications, where every application relates to a job.

Workflow

The 3:rd party app registers with Jobylon and gets one or more sets of credentials plus one or more feeds, that contains the promotions or jobs for one or more companies. The app uses the credentials and a job_id (found in the feed) to push new applications to Jobylon.

The type of feed (promotion or job) depends on the type of data required by the app and how our clients' contract work with the 3:rd party. If the 3:rd party do not require any extra information (such as purchase information) a simple job feed will be provided, otherwise a promotion feed will be provided. The promotion feed wraps a job and contains extra information.

Application

To run the examples:

Text


Basic example:

Shell

Shell


Example using a local JSON file:

Shell


Example with files attached (multipart/form-data):

Shell


Create

POST /applications/

Query String Parameters

None

Request Payload

Name

Type

Mandatory?

Description

job_id

integer

yes

Applicant first name

first_name

string

yes

Applicant first name

last_name

string

yes

Applicant last name

email

string



Applicant email

phone

string



Applicant phone

ln_url

URL



Applicant LinkedIn URL (will be validated)

message

string



Message from the applicant

source_type

string

yes

Source type (applied/applied-silent/recommended/sourced). If set to applied, a thank-you email will be sent to the applicant.

source_json

object

yes

Additional source data (partner dependent, but using the data from the example will be nicely styled in Jobylon.

cv

file



Application file (supported using multipart/form-data)

cv_url

URL



URL to the file to be downloaded and assigned to the field

cover_letter

file



Application file (supported using multipart/form-data)

cover_letter_url

URL



URL to the file to be downloaded and assigned to the field

other_1

file



Application file (supported using multipart/form-data)

other_1_url

URL



URL to the file to be downloaded and assigned to the field

other_2

file



Application file (supported using multipart/form-data)

other_2_url

URL



URL to the file to be downloaded and assigned to the field

other_3

file



Application file (supported using multipart/form-data)

other_3_url

URL



URL to the file to be downloaded and assigned to the field

other_4

file



Application file (supported using multipart/form-data)

other_4_url

URL



URL to the file to be downloaded and assigned to the field

other_5

file



Application file (supported using multipart/form-data)

other_5_url

URL



URL to the file to be downloaded and assigned to the field

ab_test

string



A unique identifier used for A/B testing

original_referrer

string



Value used to keep track on the application origin (used in analytics)

Response

Name

Type

Description

id

integer

Application ID

Exceptions

Status

Description

400

Bad request, job_id that app doesn't have access to.

403

Permission denied

405

Method not supported

ApplicationUser

Basic example:

Shell

Shell


List

GET /applications/<application_pk>/users/<sign_hash>

Query String Parameters

Name

Type

Mandatory?

Description

roles

string

no

Roles that can be use to filter users

Response

Name

Type

Description

count

integer

Total number of results

next

string (URL)

Link to the next page

previous

string (URL)

Link to the previous page

results

array

Collection of users that have access to the application

Exceptions

Status

Description

403

Permission denied

405

Method not supported

JobUser

Basic example:

Shell

Shell


List

GET /jobs/<job_pk>/users/<sign_hash>

Query String Parameters

Name

Type

Mandatory?

Description

roles

string

no

Roles that can be use to filter the users

Response

Name

Type

Description

count

integer

Total number of results

next

string (URL)

Link to the next page

previous

string (URL)

Link to the previous page

results

array

Collection of users that have access to the job

Exceptions

Status

Description

403

Permission denied

405

Method not supported

CompanyUser

Basic example:

Shell

Shell


List

GET /companies/<company_pk>/users/<sign_hash>

Query String Parameters

Name

Type

Mandatory?

Description

roles

string

no

Roles that can be use to filter the users

Response

Name

Type

Description

count

integer

Total number of results

next

string (URL)

Link to the next page

previous

string (URL)

Link to the previous page

results

array

Collection of company's users

Exceptions

Status

Description

403

Permission denied

405

Method not supported

Webhooks

Callback API for our intergration partners who want to receive and act upon different Jobylon events.

Model

In Jobylon every webhook has a client url and an event type that it is subscribed to.

Workflow

After the third-party party app registers with Jobylon; they can request webhook intergration by providing a url and the type of events it should subscribe to. The webhook will use these details to send notifications when an event occurs.

When the event is sent to the url the webhook expects a successful response (HTTP 2XX). In the case it does not receive a valid response, it will retry again immediately and then after 30 seconds, 300 seconds (5 minutes), 3000 seconds (50 minutes), 30000 seconds (~8.3 hours) and 300000 seconds (~3 days and 12 hours).

Headers

You can request us to provide you with custom headers if you so choose.

Authentication

You can request us to provide basic authentication by providing a username and password of your choosing.

Limit IP

You can limit the IPs that the callback comes from by letting us know.

Event Types

ApplicationEvent

Example:

Text

Text


Actions

Name

Description

created

Application created

rejection_sent

Rejection communicated/sent to applicant

status_changed

Application status updated

Request Payload

Name

Type

Description

event_type

string

"application"

action

string

Action triggering the event (see above)

application

object

The application object

JobEvent

Actions

Name

Description

created

Job created

updated

Job was updated

status_changed

Job status was specifically updated

Request Payload

Name

Type

Description

event_type

string

"job"

action

string

Action triggering the event (see above)

job

object

The job object

Application

Name

Type

Description

id

integer

Application ID

first_name

string

First name

last_name

string

Last name

email

string

Email

phone_number

string

Phone number

url

string (URL)

Deep link to the application in Jobylon

recommended_by

object

The recommended_by object

rejection_sent

boolean

Info regarding if the rejection has been communicated to the applicant or not

status

object

The status object

source_type

string

The source where the application was received

job

object

The job object

owner

object

The user that owns the application

ab_test

string

A unique identifier used for A/B testing

users_url

string (URL)

Time-limited link to an list of users that have access to the application and their roles

Source Type

Value

Description

'applied'

Applied (thank-you email sent by Jobylon)

'applied-silent'

Applied through partner (thank-you email possibly sent by partner)

'imported'

Imported

'recommended'

Recommended

'sourced'

Sourced

'uploaded'

Uploaded

Status

Name

Type

Description

id

integer

Status ID

name

string

Status name

group

integer

The status group value

Status Group

Value

Description

0

New

1

In progress

19

Rejected

20

Hired

21

On hold

Job

Name

Type

Description

id

integer

Job ID

title

string

Title of the job

from_date

string (date-time UTC)

Datetime job first created

to_date

string (date-time UTC)

Deadline for the job

contact_name

string

Contact name

contact_email

string

Contact email

language

string

The language of the job

location_set

array

The location(s) of the job

categories

array

The categories that this job belongs to

departments

array

The departments that this job belongs to

layers_X

array

The layers that this job belongs to. For each layer an layers_x field is present. See example. (X is the dimension to which the layer options belong)

status

string

The job status value

company

object

The company object

owner

object

The user that owns the job

employment_type

object

The employment type object

experience

object

The experience object

function

object

The function object

users_url

string (URL)

Time-limited link to an list of users that have access to the job and their roles

Job Status

Value

Description

'draft'

Draft

'published'

Published

'closed'

Closed

'archived'

Archived

Category

Name

Type

Description

id

integer

Category ID

text

string

Category description

Company

Name

Type

Description

id

integer

Company ID

name

string

Name

users_url

string (URL)

Time-limited link to an list of users that have access to the job and their roles

Department

Name

Type

Description

id

integer

Department ID

name

string

Department name

Experience

Name

Type

Description

id

integer

Experience ID

text

string

Experience description

Employment Type

Name

Type

Description

id

integer

EmploymentType ID

text

string

EmploymentType description

Function

Name

Type

Description

id

integer

Function ID

text

string

Function description

Language

Value

Description

'da'

Dansk

'de'

Deutsch

'en'

English

'fi'

Suomi

'fr'

Français

'nb'

Norsk

'nl'

Nederlands

'sv'

Svenska

Layer

Name

Type

Description

id

integer

Layer ID

identifier

string

Slug based on "text"

text

string

Layer name

Location

Name

Type

Description

location

string

name of the location

location_json

object

object based on the data from Google's map API

Recommended By

Name

Type

Description

name

string

Name

email

string

Email

User

Name

Type

Description

id

integer

User ID

name

string

Name

email

string

Email

UserRole

Name

Type

Description

id

integer

User ID

first_name

string

First name

last_name

string

Last name

role

string

User role

email_primary

string

Email

emails

array

Email

A/B Testing

A/B testing for customers who want to try different application flows

Roles

UserRole object can return one of this roles depending on what object/event (job/application) was called.

Name

Description

owner

Owner of the company

admin

Administrator of the company

manager

Manager of the company

member

Member of the company

collaborator

Collaborator on the job

viewer

Viewer of the job

job_owner

Owner of the job

job_interviewer

Interviewer on the job

application_interviewer

Interviewer of the application

Through Jobylon

You can pass the name of the A/B test as a query parameter on the Jobylon URL. The query parameter should be called jbl_ab_test. We will store it in the browser session storage for 30 minutes or until the session expires, whichever is shorter. In other words, it will be stored for a maximum of 30 minutes. If a new A/B testing query parameter is found on the URL, the existing one will be overridden and the timeout will be reset to 30 minutes. As long as the user ends up on the application form within 30 minutes, the A/B testing query parameter value will be stored with the application. A ab_test parameter is added to the application data sent to your webhook.

Through the Push API

Just add the ab_test parameter when pushing to Jobylon and the data will be stored in Jobylon.

Please ensure that the ab_test parameter is less than 20 characters

Usecase example