Jobcase for Partners: Platform API (v1)

Download OpenAPI specification:Download

Introduction

Jobcase for Partners uses API keys to allow access. Contact us to request one!

To avoid rate limiting, try to stay within 200 requests per minute. Contact us if you are hitting a rate limit and need an increase.

Company

Operations to manage company accounts

Create Company

Creates a new company.

If the provided sales rep or company contact already exists within the Jobcase system, the created or edited company account will be assigned to the existing sales rep or company contact; otherwise, a new sales rep or company contact will be created in the Jobcase system and assigned to this company account.

Authorizations:
api_key
Request Body schema: application/json

Create a company

partnerId
required
number non-empty

Jobcase Partner Identifier

companyName
required
string non-empty

Name of company

partnerCompanyId
required
string non-empty

Your own system's unique identifier for this Company (must be unique)

companyUrl
required
string <uri> non-empty

Company's web site address

companyStreet
required
string non-empty

Address

companyCity
required
string non-empty

City name

companyState
required
string = 2 characters

Abbreviated state

companyZipCode
required
string [ 5 .. 7 ] characters

Zip or Postal Code

object (CompanyContact)

Primary contact (employer) associated or assigned to this company account

object (CompanySalesRep)

Sales representative (sales rep) associated or assigned to this company account

Responses

Request samples

Content type
application/json
{
  • "partnerId": 1,
  • "companyName": "Test Company",
  • "partnerCompanyId": "abc123",
  • "companyStreet": "98 Battery St",
  • "companyCity": "San Francisco",
  • "companyState": "CA",
  • "companyZipCode": "94111",
  • "companyContact": {
    },
  • "salesRep": {
    }
}

Response samples

Content type
application/json
{
  • "id": 1,
  • "partnerId": 1,
  • "companyName": "Test Company",
  • "partnerCompanyId": "abc123",
  • "companyStreet": "98 Battery St",
  • "companyCity": "San Francisco",
  • "companyState": "CA",
  • "companyZipCode": "94111",
  • "companyContact": {
    },
  • "salesRep": {
    }
}

List Companies

Lists all companies, paginated (100 per page by default)

Authorizations:
api_key
query Parameters
offset
integer

The number of items to skip before starting to collect the result set

limit
integer

The numbers of items to return

Responses

Request samples

const request = require('request');

const options = {
  method: 'GET',
  url: 'https://platform-api.partners.jobcase.com/api/platform/v1/company/',
  qs: {offset: 'SOME_INTEGER_VALUE', limit: 'SOME_INTEGER_VALUE'},
  headers: {'X-Platform-Api-Key': 'REPLACE_KEY_VALUE'}
};

request(options, function (error, response, body) {
  if (error) throw new Error(error);

  console.log(body);
});

Response samples

Content type
application/json
{
  • "count": 1,
  • "results": [
    ]
}

Get Company

Retrieves a company by companyId

Authorizations:
api_key
path Parameters
companyId
required
number

Company Identifier

Responses

Request samples

const request = require('request');

const options = {
  method: 'GET',
  url: 'https://platform-api.partners.jobcase.com/api/platform/v1/company/%7BcompanyId%7D/',
  headers: {'X-Platform-Api-Key': 'REPLACE_KEY_VALUE'}
};

request(options, function (error, response, body) {
  if (error) throw new Error(error);

  console.log(body);
});

Response samples

Content type
application/json
{
  • "id": 1,
  • "partnerId": 1,
  • "companyName": "Test Company",
  • "partnerCompanyId": "abc123",
  • "companyStreet": "98 Battery St",
  • "companyCity": "San Francisco",
  • "companyState": "CA",
  • "companyZipCode": "94111",
  • "companyContact": {
    },
  • "salesRep": {
    }
}

Edit Company

Updates a company by company identifier.

If the provided sales rep or company contact already exists within the Jobcase system, the created or edited company account will be assigned to the existing sales rep or company contact; otherwise, a new sales rep or company contact will be created in the Jobcase system and assigned to this company account.

Authorizations:
api_key
path Parameters
companyId
required
number

Company Identifier

Request Body schema: application/json

Update a company

partnerId
required
number non-empty

Jobcase Partner Identifier

companyName
required
string non-empty

Name of company

partnerCompanyId
required
string non-empty

Your own system's unique identifier for this Company (must be unique)

companyUrl
required
string <uri> non-empty

Company's web site address

companyStreet
required
string non-empty

Address

companyCity
required
string non-empty

City name

companyState
required
string = 2 characters

Abbreviated state

companyZipCode
required
string [ 5 .. 7 ] characters

Zip or Postal Code

object (CompanyContact)

Primary contact (employer) associated or assigned to this company account

object (CompanySalesRep)

Sales representative (sales rep) associated or assigned to this company account

Responses

Request samples

Content type
application/json
{
  • "partnerId": 1,
  • "companyName": "Test Company",
  • "partnerCompanyId": "abc123",
  • "companyStreet": "98 Battery St",
  • "companyCity": "San Francisco",
  • "companyState": "CA",
  • "companyZipCode": "94111",
  • "companyContact": {
    },
  • "salesRep": {
    }
}

Response samples

Content type
application/json
{
  • "id": 1,
  • "partnerId": 1,
  • "companyName": "Test Company",
  • "partnerCompanyId": "abc123",
  • "companyStreet": "98 Battery St",
  • "companyCity": "San Francisco",
  • "companyState": "CA",
  • "companyZipCode": "94111",
  • "companyContact": {
    },
  • "salesRep": {
    }
}

Job

Operations to manage company jobs

Create Job

Creates a new job.

Authorizations:
api_key
Request Body schema: application/json

Create a job

companyId
required
number non-empty

Jobcase Company Identifier

adNumber
required
string non-empty

Your own system's unique identifier for this job

jobTitle
required
string non-empty

The title / headline for the job

jobDescription
required
string non-empty

The job description. 150 characters minimum is recommended for best distribution performance.

jobStreet
string non-empty
jobCity
required
string non-empty
jobState
required
string = 2 characters

Abbreviated state

jobZipCode
required
string [ 5 .. 7 ] characters
worktimeId
number
Default: 1

Id of the type of position and time of the job. Mappings:

  1	Full-time
  4	Part-time
  5	Internship
  6	Contract
  7	Temporary
jobCategoryId
number
Default: 0

Id of the job category. Mappings:

  0	Other
  101	Accounting
  102	Administration / Clerical
  125	Advertising / Marketing / Public Relations
  103	Agent / Broker
  104	Analysis
  156	Biomedical Engineering
  105	Business Development
  107	Call Center / Customer Service
  151	Childcare
  131	Construction / Physical Labor / Skilled Trades
  106	Consulting
  108	Delivery / Courier
  109	Dentistry
  110	Design
  111	Education
  153	Emergency Med Tech / Paramedics
  113	Engineering
  112	Entertainment
  114	Farming / Fishing / Forestry
  115	Finance
  116	Food Service
  117	Health Care Provider
  149	Heavy Equipment Operator
  118	Hospitality
  152	Housekeeping / Janitorial
  119	Human Resources
  120	Information Services / Technology (IT)
  121	Law Enforcement / Security
  122	Legal
  123	Maintenance
  150	Management
  124	Manufacturing / Production / Operations
  144	Mechanic/Technician
  126	Mental Health
  160	Mining
  127	Nursing
  128	Occupational Therapy
  129	Personal Service
  130	Pharmacy
  132	Physical Therapy
  133	Physician
  158	Product Management
  134	Project Management
  135	Publishing
  157	Quality Control
  154	Real Estate / Property Management
  136	Research
  159	Research & Development
  137	Sales
  138	Science
  155	Ship Building / Ship Repair
  139	Social Service
  140	Software Development
  141	Speech Language Pathology
  142	Sports and Recreation / Fitness
  143	Supply Chain / Logistics
  145	Translation
  146	Transportation
  147	Veterinary
  148	Writing / Editing
experienceId
number
Default: 5

Id of the years of experience required for the job. Mappings:

  5	Not Specified
  6	0-1 years of experience
  7	1-3 years of experience
  8	3-5 years of experience
  9	5+ years of experience
  4	No experience
applyUrl
string <uri> non-empty

The URL that we will redirect the user to when they apply to your listing (for applyActionType "URL Redirect")

applyEmails
Array of strings <email> non-empty

A list of emails to send application notifications to for this job (for applyActionType "Email Address").

startDate
string <date> non-empty

When the job will start. ISO 8601 UTC format. Defaults to immediate.

endDate
string <date> non-empty

When the job posting will expire. ISO 8601 UTC format. Defaults to 30 days from now.

isConfidential
boolean
Default: false

Is this a confidential or blind ad?

jobAttributes
object

Custom key/value dictionary for storing extra job attributes. Only existing job attributes are editable.

applyActionType
string
Default: "Nothing"

Action required to apply to the job. Possible values:

  Email Address
  Nothing
  URL Redirect

Email Address - we will send application notifications to your applyEmails
Nothing - the instructions for the applicant will be in the jobDescription
URL Redirect - we will redirect the applicant to your applyUrl

resumeRequired
boolean
Default: false

If a resume is required in order to apply to the job (for applyActionType "Email Address").

products
Array of arrays

A list of Jobcase product codes to fulfill for this job.

campaignId
number

When adding a job to a campaign, this parameter specifies the previously created campaign’s identifier.

Responses

Request samples

Content type
application/json
{
  • "companyId": 1,
  • "adNumber": "My_Job_12300-1",
  • "jobTitle": "Rodeo Clown",
  • "jobDescription": "A rodeo clown has many on-site duties. This description should be 150 characters, but will be permitted.",
  • "jobStreet": "98 Battery St",
  • "jobCity": "San Francisco",
  • "jobState": "CA",
  • "jobZipCode": 94111,
  • "worktimeId": 1,
  • "jobCategoryId": 1,
  • "experienceId": 1,
  • "applyEmails": [
    ],
  • "startDate": "2030-01-05T19:09:35.334843+00:00",
  • "endDate": "2030-02-05T19:09:35.334843+00:00",
  • "isConfidential": false,
  • "jobAttributes": {
    },
  • "applyActionType": "Email Address",
  • "resumeRequired": false,
  • "products": [
    ],
  • "campaignId": 1
}

Response samples

Content type
application/json
{
  • "id": 1,
  • "partnerId": 1,
  • "companyId": 1,
  • "adNumber": "My_Job_12300-1",
  • "jobTitle": "Rodeo Clown",
  • "jobDescription": "A rodeo clown has many on-site duties. This description should be 150 characters, but will be permitted.",
  • "jobStreet": "98 Battery St",
  • "jobCity": "San Francisco",
  • "jobState": "CA",
  • "jobZipCode": 94111,
  • "worktimeId": 1,
  • "jobCategoryId": 1,
  • "experienceId": 1,
  • "applyEmails": [
    ],
  • "startDate": "2030-01-05T19:09:35.334843+00:00",
  • "endDate": "2030-02-05T19:09:35.334843+00:00",
  • "isConfidential": false,
  • "jobAttributes": {
    },
  • "jobStatus": "Active",
  • "applyActionType": "Email Address",
  • "resumeRequired": false,
  • "products": [
    ]
}

List Jobs

Lists all jobs, paginated (100 per page by default)

Authorizations:
api_key
query Parameters
from
string <date>
Example: from=2030-01-05T19:09:35.334843+00:00

Filter by job posting date range (beginning on). ISO 8601 UTC format.

  • requires to if supplied
to
string <date>
Example: to=2030-01-15T19:09:35.334843+00:00

Filter by job posting date range (ending on). ISO 8601 UTC format.

  • requires from if supplied
status
string
Default: "active"

Filter by job status:

  • active - Active and scheduled jobs
  • expired - Expired jobs
  • all - All jobs
offset
integer

The number of items to skip before starting to collect the result set

limit
integer

The numbers of items to return

Responses

Request samples

const request = require('request');

const options = {
  method: 'GET',
  url: 'https://platform-api.partners.jobcase.com/api/platform/v1/job/',
  qs: {
    from: '2030-01-05T19:09:35.334843+00:00',
    to: '2030-01-15T19:09:35.334843+00:00',
    status: 'SOME_STRING_VALUE',
    offset: 'SOME_INTEGER_VALUE',
    limit: 'SOME_INTEGER_VALUE'
  },
  headers: {'X-Platform-Api-Key': 'REPLACE_KEY_VALUE'}
};

request(options, function (error, response, body) {
  if (error) throw new Error(error);

  console.log(body);
});

Response samples

Content type
application/json
{
  • "count": 1,
  • "results": [
    ]
}

Get Job

Retrieves a job by jobId

Authorizations:
api_key
path Parameters
jobId
required
number

Job Identifier

Responses

Request samples

const request = require('request');

const options = {
  method: 'GET',
  url: 'https://platform-api.partners.jobcase.com/api/platform/v1/job/%7BjobId%7D/',
  headers: {'X-Platform-Api-Key': 'REPLACE_KEY_VALUE'}
};

request(options, function (error, response, body) {
  if (error) throw new Error(error);

  console.log(body);
});

Response samples

Content type
application/json
{
  • "id": 1,
  • "partnerId": 1,
  • "companyId": 1,
  • "adNumber": "My_Job_12300-1",
  • "jobTitle": "Rodeo Clown",
  • "jobDescription": "A rodeo clown has many on-site duties. This description should be 150 characters, but will be permitted.",
  • "jobStreet": "98 Battery St",
  • "jobCity": "San Francisco",
  • "jobState": "CA",
  • "jobZipCode": 94111,
  • "worktimeId": 1,
  • "jobCategoryId": 1,
  • "experienceId": 1,
  • "applyEmails": [
    ],
  • "startDate": "2030-01-05T19:09:35.334843+00:00",
  • "endDate": "2030-02-05T19:09:35.334843+00:00",
  • "isConfidential": false,
  • "jobAttributes": {
    },
  • "jobStatus": "Active",
  • "applyActionType": "Email Address",
  • "resumeRequired": false,
  • "products": [
    ]
}

Edit Job

Updates a job by job identifier.

Authorizations:
api_key
path Parameters
jobId
required
number

Job Identifier

Request Body schema: application/json

Update a job

companyId
required
number non-empty

Jobcase Company Identifier

adNumber
required
string non-empty

Your own system's unique identifier for this job

jobTitle
required
string non-empty

The title / headline for the job

jobDescription
required
string non-empty

The job description. 150 characters minimum is recommended for best distribution performance.

jobStreet
string non-empty
jobCity
required
string non-empty
jobState
required
string = 2 characters

Abbreviated state

jobZipCode
required
string [ 5 .. 7 ] characters
worktimeId
number
Default: 1

Id of the type of position and time of the job. Mappings:

  1	Full-time
  4	Part-time
  5	Internship
  6	Contract
  7	Temporary
jobCategoryId
number
Default: 0

Id of the job category. Mappings:

  0	Other
  101	Accounting
  102	Administration / Clerical
  125	Advertising / Marketing / Public Relations
  103	Agent / Broker
  104	Analysis
  156	Biomedical Engineering
  105	Business Development
  107	Call Center / Customer Service
  151	Childcare
  131	Construction / Physical Labor / Skilled Trades
  106	Consulting
  108	Delivery / Courier
  109	Dentistry
  110	Design
  111	Education
  153	Emergency Med Tech / Paramedics
  113	Engineering
  112	Entertainment
  114	Farming / Fishing / Forestry
  115	Finance
  116	Food Service
  117	Health Care Provider
  149	Heavy Equipment Operator
  118	Hospitality
  152	Housekeeping / Janitorial
  119	Human Resources
  120	Information Services / Technology (IT)
  121	Law Enforcement / Security
  122	Legal
  123	Maintenance
  150	Management
  124	Manufacturing / Production / Operations
  144	Mechanic/Technician
  126	Mental Health
  160	Mining
  127	Nursing
  128	Occupational Therapy
  129	Personal Service
  130	Pharmacy
  132	Physical Therapy
  133	Physician
  158	Product Management
  134	Project Management
  135	Publishing
  157	Quality Control
  154	Real Estate / Property Management
  136	Research
  159	Research & Development
  137	Sales
  138	Science
  155	Ship Building / Ship Repair
  139	Social Service
  140	Software Development
  141	Speech Language Pathology
  142	Sports and Recreation / Fitness
  143	Supply Chain / Logistics
  145	Translation
  146	Transportation
  147	Veterinary
  148	Writing / Editing
experienceId
number
Default: 5

Id of the years of experience required for the job. Mappings:

  5	Not Specified
  6	0-1 years of experience
  7	1-3 years of experience
  8	3-5 years of experience
  9	5+ years of experience
  4	No experience
applyUrl
string <uri> non-empty

The URL that we will redirect the user to when they apply to your listing (for applyActionType "URL Redirect")

applyEmails
Array of strings <email> non-empty

A list of emails to send application notifications to for this job (for applyActionType "Email Address").

startDate
string <date> non-empty

When the job will start. ISO 8601 UTC format. Defaults to immediate.

endDate
string <date> non-empty

When the job posting will expire. ISO 8601 UTC format. Defaults to 30 days from now.

isConfidential
boolean
Default: false

Is this a confidential or blind ad?

jobAttributes
object

Custom key/value dictionary for storing extra job attributes. Only existing job attributes are editable.

applyActionType
string
Default: "Nothing"

Action required to apply to the job. Possible values:

  Email Address
  Nothing
  URL Redirect

Email Address - we will send application notifications to your applyEmails
Nothing - the instructions for the applicant will be in the jobDescription
URL Redirect - we will redirect the applicant to your applyUrl

resumeRequired
boolean
Default: false

If a resume is required in order to apply to the job (for applyActionType "Email Address").

Responses

Request samples

Content type
application/json
{
  • "companyId": 1,
  • "adNumber": "My_Job_12300-1",
  • "jobTitle": "Rodeo Clown",
  • "jobDescription": "A rodeo clown has many on-site duties. This description should be 150 characters, but will be permitted.",
  • "jobStreet": "98 Battery St",
  • "jobCity": "San Francisco",
  • "jobState": "CA",
  • "jobZipCode": 94111,
  • "worktimeId": 1,
  • "jobCategoryId": 1,
  • "experienceId": 1,
  • "applyEmails": [
    ],
  • "startDate": "2030-01-05T19:09:35.334843+00:00",
  • "endDate": "2030-02-05T19:09:35.334843+00:00",
  • "isConfidential": false,
  • "jobAttributes": {
    },
  • "applyActionType": "Email Address",
  • "resumeRequired": false
}

Response samples

Content type
application/json
{
  • "id": 1,
  • "partnerId": 1,
  • "companyId": 1,
  • "adNumber": "My_Job_12300-1",
  • "jobTitle": "Rodeo Clown",
  • "jobDescription": "A rodeo clown has many on-site duties. This description should be 150 characters, but will be permitted.",
  • "jobStreet": "98 Battery St",
  • "jobCity": "San Francisco",
  • "jobState": "CA",
  • "jobZipCode": 94111,
  • "worktimeId": 1,
  • "jobCategoryId": 1,
  • "experienceId": 1,
  • "applyEmails": [
    ],
  • "startDate": "2030-01-05T19:09:35.334843+00:00",
  • "endDate": "2030-02-05T19:09:35.334843+00:00",
  • "isConfidential": false,
  • "jobAttributes": {
    },
  • "jobStatus": "Active",
  • "applyActionType": "Email Address",
  • "resumeRequired": false,
  • "products": [
    ]
}

Edit products

Adds or removes products for a job

Authorizations:
api_key
path Parameters
jobId
required
number

Job Identifier

Request Body schema: application/json
products
required
Array of arrays

A list of Jobcase product codes to fulfill for this job.

campaignId
number

When adding a job to or removing a job from a campaign, this parameter specifies the previously created campaign’s identifier.

Responses

Request samples

Content type
application/json
{
  • "products": [
    ],
  • "campaignId": 1
}

Response samples

Content type
application/json
{
  • "id": 1,
  • "products": [
    ]
}

Expire job

Expires a job so that it is no longer active

Authorizations:
api_key
path Parameters
jobId
required
number

Job Identifier

Responses

Request samples

const request = require('request');

const options = {
  method: 'POST',
  url: 'https://platform-api.partners.jobcase.com/api/platform/v1/job/%7BjobId%7D/expire/',
  headers: {'X-Platform-Api-Key': 'REPLACE_KEY_VALUE'}
};

request(options, function (error, response, body) {
  if (error) throw new Error(error);

  console.log(body);
});

Response samples

Content type
application/json
{
  • "success": true
}

Unexpire job

Re-activates an expired job.

Authorizations:
api_key
path Parameters
jobId
required
number

Job Identifier

Responses

Request samples

const request = require('request');

const options = {
  method: 'POST',
  url: 'https://platform-api.partners.jobcase.com/api/platform/v1/job/%7BjobId%7D/unexpire/',
  headers: {'X-Platform-Api-Key': 'REPLACE_KEY_VALUE'}
};

request(options, function (error, response, body) {
  if (error) throw new Error(error);

  console.log(body);
});

Response samples

Content type
application/json
{
  • "success": true
}

Campaign

Operations to manage job campaigns

Create Campaign

Creates a new campaign.

Authorizations:
api_key
Request Body schema: application/json

Create a campaign

companyId
required
number non-empty

Jobcase Company Identifier

name
required
string non-empty

The campaign name

aggressiveness
number non-empty multiple of 10 [ 10 .. 60 ]
Default: 20

How aggressive the campaign should be

endDate
datetime

When to end the campaign. ISO 8601 UTC format. Overrides aggressiveness if set

isPaused
boolean non-empty
Default: false

Whether to pause the campaign

budget
required
number <float> decimal places <= 2 >= 15

Amount of budget to add to the campaign

jobs
Array of arrays <= 500 items

A list of Jobcase job ids to activate for this campaign.

Responses

Request samples

Content type
application/json
{
  • "companyId": 1,
  • "name": "My Campaign",
  • "aggressiveness": 20,
  • "endDate": "2030-02-05T19:09:35.334843+00:00",
  • "isPaused": false,
  • "budget": 15,
  • "jobs": [
    ]
}

Response samples

Content type
application/json
{
  • "id": 1,
  • "partnerId": 1,
  • "companyId": 1,
  • "name": "My Campaign",
  • "budgetRemaining": 14.25,
  • "budgetSpent": 0.75,
  • "aggressiveness": 20,
  • "endDate": "2030-02-05T19:09:35.334843+00:00",
  • "status": "Active",
  • "budget": 15,
  • "jobs": [
    ]
}

List Campaigns

Lists campaigns, paginated (100 per page by default)

Authorizations:
api_key
query Parameters
status
string
Default: "active"

Filter by campaign status:

  • active - Active campaigns
  • paused - Paused campaigns
  • all - All campaigns
offset
integer

The number of items to skip before starting to collect the result set

limit
integer

The numbers of items to return

Responses

Request samples

const request = require('request');

const options = {
  method: 'GET',
  url: 'https://platform-api.partners.jobcase.com/api/platform/v1/campaign/',
  qs: {
    status: 'SOME_STRING_VALUE',
    offset: 'SOME_INTEGER_VALUE',
    limit: 'SOME_INTEGER_VALUE'
  },
  headers: {'X-Platform-Api-Key': 'REPLACE_KEY_VALUE'}
};

request(options, function (error, response, body) {
  if (error) throw new Error(error);

  console.log(body);
});

Response samples

Content type
application/json
{
  • "count": 1,
  • "results": [
    ]
}

Get Campaign

Retrieves a job by campaignId

Authorizations:
api_key
path Parameters
campaignId
required
number

Campaign Identifier

Responses

Request samples

const request = require('request');

const options = {
  method: 'GET',
  url: 'https://platform-api.partners.jobcase.com/api/platform/v1/campaign/%7BcampaignId%7D/',
  headers: {'X-Platform-Api-Key': 'REPLACE_KEY_VALUE'}
};

request(options, function (error, response, body) {
  if (error) throw new Error(error);

  console.log(body);
});

Response samples

Content type
application/json
{
  • "id": 1,
  • "partnerId": 1,
  • "companyId": 1,
  • "name": "My Campaign",
  • "budgetRemaining": 14.25,
  • "budgetSpent": 0.75,
  • "aggressiveness": 20,
  • "endDate": "2030-02-05T19:09:35.334843+00:00",
  • "status": "Active",
  • "budget": 15,
  • "jobs": [
    ]
}

Edit Campaign

Updates a campaign by campaign identifier.

Authorizations:
api_key
path Parameters
campaignId
required
number

Campaign Identifier

Request Body schema: application/json

Update a campaign

companyId
required
number non-empty

Jobcase Company Identifier

name
required
string non-empty

The campaign name

aggressiveness
number non-empty multiple of 10 [ 10 .. 60 ]
Default: 20

How aggressive the campaign should be

endDate
datetime

When to end the campaign. ISO 8601 UTC format. Overrides aggressiveness if set

isPaused
boolean non-empty
Default: false

Whether to pause the campaign

addBudget
number <float> decimal places <= 2 >= 1

Amount of budget to add to the campaign

jobs
Array of arrays <= 500 items

A list of Jobcase job ids to do a full replace on for this campaign. Pass an empty array to remove all jobs for this campaign.

Responses

Request samples

Content type
application/json
{
  • "companyId": 1,
  • "name": "My Campaign",
  • "aggressiveness": 20,
  • "endDate": "2030-02-05T19:09:35.334843+00:00",
  • "isPaused": false,
  • "addBudget": 1,
  • "jobs": [
    ]
}

Response samples

Content type
application/json
{
  • "id": 1,
  • "partnerId": 1,
  • "companyId": 1,
  • "name": "My Campaign",
  • "budgetRemaining": 14.25,
  • "budgetSpent": 0.75,
  • "aggressiveness": 20,
  • "endDate": "2030-02-05T19:09:35.334843+00:00",
  • "status": "Active",
  • "budget": 15,
  • "jobs": [
    ]
}

Get Cost Data

Lists applicant and click cost data for a campaign

Authorizations:
api_key
query Parameters
jobId
integer

The Jobcase job identifier

campaignId
integer

The Jobcase campaign identifier

offset
integer

The number of items to skip before starting to collect the result set

limit
integer

The numbers of items to return

Responses

Request samples

const request = require('request');

const options = {
  method: 'GET',
  url: 'https://platform-api.partners.jobcase.com/api/platform/v1/campaign/cost_data/',
  qs: {
    jobId: 'SOME_INTEGER_VALUE',
    campaignId: 'SOME_INTEGER_VALUE',
    offset: 'SOME_INTEGER_VALUE',
    limit: 'SOME_INTEGER_VALUE'
  },
  headers: {'X-Platform-Api-Key': 'REPLACE_KEY_VALUE'}
};

request(options, function (error, response, body) {
  if (error) throw new Error(error);

  console.log(body);
});

Response samples

Content type
application/json
{
  • "count": 1,
  • "results": [
    ]
}

Get Estimate

Get an estimate on the number of candidates for a given job posting. Limited to 50 requests per day; contact us to increase your limit.

When getting an estimate, you may supply jobCity and jobState fields, or jobZipCode.

Authorizations:
api_key
Request Body schema: application/json

Get campaign performance estimates for your job

budget
required
number <float> decimal places <= 2 >= 15

Amount of budget to add to the campaign

jobTitle
required
string non-empty

The title / headline for the job

jobDescription
required
string non-empty

The job description. 150 characters minimum is recommended for best distribution performance.

jobCity
required
string
jobState
required
string = 2 characters

Abbreviated state

jobZipCode
required
string <= 7 characters
companyName
string

Name of company

aggressiveness
number multiple of 10 [ 10 .. 60 ]
Default: 20

How aggressive the campaign should be

Responses

Request samples

Content type
application/json
{
  • "budget": 15,
  • "jobTitle": "Rodeo Clown",
  • "jobDescription": "A rodeo clown has many on-site duties. This description should be 150 characters, but will be permitted.",
  • "jobCity": "San Francisco",
  • "jobState": "CA",
  • "jobZipCode": 94111,
  • "companyName": "Test Company",
  • "aggressiveness": 20
}

Response samples

Content type
application/json
{
  • "minCandidates": 5,
  • "maxCandidates": 80
}

Product

Operations to list products

List Products

Lists all products

Authorizations:
api_key
query Parameters
partnerId
required
integer

Jobcase Partner Identifier

Responses

Request samples

const request = require('request');

const options = {
  method: 'GET',
  url: 'https://platform-api.partners.jobcase.com/api/platform/v1/product/',
  qs: {partnerId: 'SOME_INTEGER_VALUE'},
  headers: {'X-Platform-Api-Key': 'REPLACE_KEY_VALUE'}
};

request(options, function (error, response, body) {
  if (error) throw new Error(error);

  console.log(body);
});

Response samples

Content type
application/json
[
  • {
    }
]

Candidates

Application events

Send job application event

POST event data to Jobcase when a job seeker applies for a Jobcase job in your system

path Parameters
jobSourceId
required
string non-empty
Example: x3js81mdz1

Jobcase Job identifier for a specific job posting contained in the XML job feed from Jobcase.

Request Body schema:

Send a job application received event (Fields as JSON)

originalSource
string

Identifies the original source from where the candidate applied to the job posting. If used, please provide your Identifier.

firstName
required
string non-empty

Applicant's first name

lastName
required
string non-empty

Applicant's last name

email
required
string <email> non-empty

Applicant's email address

phoneNumber
required
string <phoneNumber> non-empty

Applicant's phone number

resume
string <binary> non-empty

Applicant's resume file (multipart form data)

Maximum file size: 5MB. Allowed content types:

application/pdf, text/plain, application/msword, application/zip, application/vnd.openxmlformats-officedocument.wordprocessingml.document, application/vnd.oasis.opendocument.text, application/rtf, application/vnd.ms-works, application/x-mswrite, application/x-iwork-pages-sffpages, image/png, image/jpeg

required
string or string

The IP Address of the user that submitted the application

userAgent
string

The User Agent (via HTTP headers) of the user that submitted the application. If available, we will use this to help determine the quality of the application (bot vs human)

jobcaseProfileUrl
string <uri>

URL of the Jobcase Member Profile

Responses

Request samples

Content type
No sample

Response samples

Content type
application/json
{
  • "id": 1,
  • "originalSource": "MyJobcaseJob_12300-1",
  • "firstName": "Sales",
  • "lastName": "Rep",
  • "email": "sales.rep@jobcase.com",
  • "phoneNumber": "(555) 555-5555",
  • "userIp": "142.251.46.238",
  • "userAgent": "Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/119.0.6045.163 Mobile Safari/537.36",
  • "jobcaseProfileUrl": "https://www.jobcase.com/p/someone"
}

CCPA requests

Operations to process CCPA requests

RESTRICTED: Access to these routes require `ccpa` authorization scope being added to your API Key. Contact us to request access.

Get CCPA request

Lists a JSON object of information we have for the user. Takes an average of 45 seconds to respond.

Authorizations:
api_key
query Parameters
email
string <email>

The email address for the end user

Responses

Request samples

const request = require('request');

const options = {
  method: 'GET',
  url: 'https://platform-api.partners.jobcase.com/api/platform/v1/ccpa/',
  qs: {email: 'SOME_STRING_VALUE'},
  headers: {'X-Platform-Api-Key': 'REPLACE_KEY_VALUE'}
};

request(options, function (error, response, body) {
  if (error) throw new Error(error);

  console.log(body);
});

Response samples

Content type
application/json
{
  • "model": "apply.anonapply",
  • "pk": 1,
  • "fields": {
    }
}

Create CCPA request

Submits a request to purge a user's information from Jobcase databases

Authorizations:
api_key
Request Body schema: application/json

Remove information about a user

email
required
string <email> non-empty

User's email address

Responses

Request samples

Content type
application/json
{
  • "email": "user@domain.com"
}

Response samples

Content type
application/json
{
  • "id": 1,
  • "email": "user@domain.com"
}

Resume matching

Operations to manage resume matching

RESTRICTED: Access to these routes require `resume_match` authorization scope being added to your API Key. Contact us to request access.

Get resume match

Retrieves a match by key

path Parameters
key
required
string

Match Identifier

Responses

Request samples

const request = require('request');

const options = {
  method: 'GET',
  url: 'https://platform-api.partners.jobcase.com/api/platform/v1/webhooks/resume/match/%7Bkey%7D/'
};

request(options, function (error, response, body) {
  if (error) throw new Error(error);

  console.log(body);
});

Response samples

Content type
application/json
{
  • "key": "abcde",
  • "resume_text": "I worked at That Company",
  • "job_text": "Software Engineer needed",
  • "jobtitle": "Software Engineer",
  • "score": 0.56,
  • "match_bucket_name": "great_match",
  • "match_object": {
    }
}

Create resume match

POST text data to Jobcase to perform a match score

Request Body schema: application/json

Send resume and job text for matching (Fields as JSON)

Any of
resume_data
required
object

Structured resume data for the applicant.

resume_text
string

Text of the applications resume

job_text
required
string

Text of the job to match the applicant to

jobtitle
string non-empty

Job title of the job. Not required, but very helpful to include for the match.

delay
boolean
Default: false

Whether to delay the result of the match. Default is false, and the result will be returned in the response. If true, key will be used to fetch the result later

Responses

Request samples

Content type
application/json
{
  • "resume_data": {
    },
  • "resume_text": "I worked at That Company",
  • "job_text": "Software Engineer needed",
  • "jobtitle": "Software Engineer",
  • "delay": false
}

Response samples

Content type
application/json
{
  • "key": "DhEpdX",
  • "resume_data": {
    },
  • "resume_text": "I worked at That Company",
  • "job_text": "Software Engineer needed",
  • "jobtitle": "Software Engineer",
  • "delay": false,
  • "score": 0.3,
  • "match_bucket_name": "great_match",
  • "match_object": {
    }
}

Create experience match

POST text data to Jobcase to perform an experience match score

Request Body schema: application/json

Send resume and job text for matching (Fields as JSON)

resume_data
required
object

Structured resume data for the applicant. Note: listed is the full Jobcase resume schema, but we are only using the workExperiences to do the matching.

job_text
required
string non-empty

Text of the job to match the applicant to

jobtitle
required
string non-empty

Job title of the job. Not required, but very helpful to include for the match.

Responses

Request samples

Content type
application/json
{
  • "resume_data": {
    },
  • "job_text": "Software Engineer needed",
  • "jobtitle": "Software Engineer"
}

Response samples

Content type
application/json
{
  • "score": 0.2,
  • "is_experience_match": false,
  • "match_object": {
    }
}