Introduction
The Career Coach Canada Jobs API is a RESTful service providing aggregated data from millions of job postings across online sources. It delivers insights into recent job availability, hiring companies, and in-demand skills across Canada. All endpoints follow a JSON:API-like format, with a top-level data object containing objects or arrays with type, id, and attributes.
The Career Coach CA Jobs API is closely related to the Canada Careers API, which focuses on longer-term occupational data (LMI, projections, demographics). While careers represent long-term occupations (e.g., Web Developer, National Occupational Classification (NOC) 21234), jobs represent specific positions at a time and place (e.g., Web Developer role at Lightcast in Toronto). Using the Jobs API together with the Careers API provides a full picture: long-term occupational context alongside current job demand.
Support: Please contact your Lightcast / Career Coach account manager for technical or customer support regarding API use.
Data Overview
The API features three main datasets:
- Timeseries of Job Postings – Number of unique job postings per month, total unique postings, and total companies posting, filtered by region, career (NOC code), and time period.
- Companies Posting Jobs – List of companies posting jobs for a specified region, career, and time period.
- Skills Data – List of hard and soft skills associated with a given career, with the number of unique postings requiring each skill, filtered by region, career, and time period.
All queries require specifying a NOC code, geographic region(s), and a date range.
Resource Structure
The main collections in this API have routes prefixed by /jobs. Additionally, there is a separate skill search endpoint: /skill-search.
The API provides access to the following collections:
- Timeseries
- Companies
- Skills
- Skill Search
The structure for each collection is:
/jobs/ca/{geographyLevel}/{geographyID}/{careerCode}/{collection}
Available geography levels:
provincecmacdcsd
Example:
/jobs/ca/province/35/21234/timeseries
Breakdown:
/ca/province/35– Province of Ontario/21234– NOC code for web developers/timeseries– Monthly job postings collection (default past 6 months if unspecified)
API Endpoint
There are multiple endpoints within this category. Refer to individual API docs under the Career Coach CA Jobs section.
Request Headers
(*) Indicates the action to be required
All requests must include the following headers:
| Header Key | Value | Description |
|---|---|---|
| *Authorization | Bearer <ACCESS_TOKEN> | This is the token obtained from the Authentication API. Include it in this header to authorize the request. (This must be included in all authenticated requests) |
| Content-Type | application/json | Required for endpoints that accept a request body. Specifies that the body is in JSON format. |
Authentication
All endpoints in this category require an OAuth 2.0 Bearer Token for authentication. Tokens are granted through Lightcast’s Authentication API and are valid for 1 hour.
To access the Career Coach CA Jobs API, the token must include the following scope:
jobs(for expanded access)
Sample Request
curl --request POST \
--url https://auth.emsicloud.com/connect/token \
--header 'Content-Type: application/x-www-form-urlencoded' \
--data client_id=CLIENT_ID \
--data client_secret=CLIENT_SECRET \
--data grant_type=client_credentials \
--data scope=jobsRequest Parameters
| Parameter | Type | Description |
|---|---|---|
| client_id | string | The client ID provided by Lightcast. |
| client_secret | string | The client secret associated with your client ID. |
| grant_type | string | Must be set to client_credentials. |
| scope | string | Use lightcast_open_free or emsi_open based on your access. |
Example Request
Sample Request
Example: Get top 10 skills for Web Developers (NOC 21234) in Ontario (province, 35) for one year (April 2022 – January 2023):
curl --request GET \
--url 'https://cc.emsiservices.com/jobs/ca/province/35/21234/skills?limit=10&start=2022-04&end=2023-01' \
--header 'Authorization: Bearer <ACCESS_TOKEN>'Sample Response
{
"data": {
"attributes": {
"date-range": {
"start": "2022-04",
"end": "2023-01",
"months": 9,
"context": "9 months"
},
"skills": [
{ "name": "JavaScript (Programming Language)", "unique-postings": 1591 },
{ "name": "Front End (Software Engineering)", "unique-postings": 1182 },
{ "name": "Cascading Style Sheets (CSS)", "unique-postings": 1162 },
{ "name": "Computer Science", "unique-postings": 1082 },
{ "name": "React.js (Javascript Library)", "unique-postings": 1033 },
{ "name": "Agile Methodology", "unique-postings": 978 },
{ "name": "Application Programming Interface (API)", "unique-postings": 978 },
{ "name": "HyperText Markup Language (HTML)", "unique-postings": 918 },
{ "name": "Java (Programming Language)", "unique-postings": 788 },
{ "name": "Software Engineering", "unique-postings": 718 }
],
"total-unique-postings": 3252,
"noc-id": "21234"
},
"id": "21234",
"type": "skills"
}
}Sample Response
{
"access_token": "<ACCESS_TOKEN>",
"expires_in": 3600,
"token_type": "Bearer"
}Note that the Tokens expire after 3600 seconds. To maintain uninterrupted access, refresh the token before it expires. To know more about this, refer to the Authentication guide.
Response Parameters
| Parameter | Type | Description |
|---|---|---|
| access_token | string | The token used to authorize the API requests. |
| expires_in | integer | Number of seconds before the token expires. |
| token_type | string | Indicates the type of token. (Always Bearer) |
Status Code Summary
| Code | Meaning | Description |
|---|---|---|
| 200 | OK | Request was successful. |
| 400 | Bad Request | The request was unacceptable, often due to missing a required parameter. |
| 401 | Unauthorized | Authentication error. |
| 404 | Not Found | Resource not found. |
Versioning
The Career Coach CA Jobs API is currently at version 1.0. New data updates, fields, and minor hotfixes may be added at any time and are not considered breaking changes.
Data is typically refreshed once per quarter, as new economic information becomes available. Clients will be notified when new data or features are released.
In the rare event that a version is deprecated, clients will receive at least 90 days’ notice to update their queries to the new format.
