WE Data Tools

Jobs API

https://api.wedatatools.com/v2/get-jobs

Basic Usage

Request

The get-jobs API accepts an application/x-www-form-urlencoded POST request. Authentication is provided by passing your provided API key as the “key” parameter. Additional parameters are specified in the Parameters section below.

Response

The get-jobs API responds with a JSON representation of the requested data. The content of the response may vary according to the request, but a basic request will populate the “hits” key with an array of documents returned. The content of the documents can be specified according to the “includes” and “excludes” parameters specified in the Parameters section below.

Parameters

ParameterTypeDescriptionPermitted Values
keyStringYour provided API Access Key
searchStringPlaintext search. Results with a title, or additional metadata, matching the search string will be returned.
per_pageNumericResults per page. A value of -1 returns all matching results.0-10000, -1 Default: 20
pageNumericPage number.Default: 1
track_total_hitsBooleanTotal hits for a given query shows up in the meta object under total, but for performance reasons this typically caps at 10000. To remove the cap, pass true to track_total_hits.true, false Default: false
orderbyStringOrder in which to return results.date_desc, date_asc, wage_desc, wage_asc, relevance Default: relevance
start_dateDateTimeThe earliest post date from which to include postings in the result set.String formatted YYYY-MM-DD.
end_dateDateTimeThe latest post date from which to include postings in the result set.String formatted YYYY-MM-DD.
range_typeStringGoverns the type of date range to use when considering start_date and end_date.active: (default) includes postings that were actively recruiting during the specified date range.
new: includes postings that were newly posted during the specified date range.
[field]String/ArraySearch the value of a document field. See “Term Query” section.
[field]__likeString/ArrayWildcard search the value of a document field. See “Term Query” section.
[field]__notString/ArrayValue to not match for a given field. See “Term Query” section.
must_existString/ArrayField(s) that must have a value on the target document to be included in the result set.See “permitted fields”.
must_not_existString/ArrayField(s) that must not have a value on the target document to be included in the result set.See “permitted fields”.
aggregateString/ArrayProvides the “term frequency” count of a given field in the dataset. See “Aggregations” section.See “permitted fields”.
wage_insightsBooleanWhether to provide a wage insights breakdown in the response. See “Aggregations” section.true, false
aggregate_countNumericThe top N terms to return in any aggregation function. See “Aggregations” section.Default: 100
includesString/ArrayFields to include on the return document.See “permitted fields”.
excludesString/ArrayFields to exclude on the return document – overrides “includes” in the event of overlap.See “permitted fields”.

Permitted Fields

The following fields are available on the job documents to search/aggregate/include:

Basic Data

FieldDescription
job_titleThe title of the job post.
employerThe title of the employer associated with this job post.
contentPlaintext content associated with this job post.
excerptAs content, but limited to first 200 words.
post_dateThe date the postings was first listed.
expiry_dateThe date the posting was expired, if applicable.
typeThe type, whether FT (full-time) or PT (part-time) of the posting.
durationThe duration, whether permanent, temporary, or contract of the posting.

NOC and NAICS

FieldDescription
nocs_2021The five-digit 2021 Unit-Level NOC code(s) associated with this job post. See Hierarchy and Structure [of 2021 National Occupation Codes]
nocs_hierarchical_2021As nocs_2021, but includes all applicable 1-digit, 2-digit, 3-digit, 4-digit, and 5-digit representations.
occupational_category_2021As nocs_2021, but using the 1-digit representation.
major_group_2021As nocs_2021, but using the 2-digit representation.
submajor_group_2021As nocs_2021, but using the 3-digit representation.
minor_group_2021As nocs_2021, but using the 4-digit representation.
teer_category_2021The Training, Education, Experience, and Responsibilities category for the job post, derived from its NOC categorization. See TEER categories and examples of jobs
nocsThe four-digit 2016 Unit-Level NOC code(s) associated with this job post. See Hierarchy and Structure [of 2016 National Occupation Codes]
nocs_hierarchicalAs nocs, but includes all applicable 1-digit, 2-digit, 3-digit, and 4-digit representations.
occupational_categoryAs nocs, but using the 1-digit representation.
skill_levelAs nocs, but using the 2-digit representation.
minor_groupAs nocs, but using the 3-digit representation.
naicsThe six-digit 2017 Canadian Industry Level NAICS code(s) associated with the employer for this job post. See North American Industry Classification System (NAICS) Canada 2017 Version 3.0.
naics_hierarchicalAs naics, but includes all applicable 2-digit, 3-digit, 4-digit, 5-digit, and 6-digit representations.
sectorAs naics, but using the 2-digit representation.
skill_typeThe applicable Skill Type of the job post, depending on its NOC association. See NOC Skill Type.

Location Data

FieldDescription
locationThe geolocation (lat + long) associated with the posting’s employer.
derived_locationThe geolocation (lat + long) associated with the posting’s employer, OR the derived location based on the job posting’s region if the previous does not exist.
regionThe city/town the job post was listed for.
regionsThe city/town the job post was listed for, plus all related municipalities, regions, etc.
stateprovThe state/province the job post was listed for.

Wage/Salary Data

FieldDescription
wage_valueThe extracted wage value for this posting.
wage_value_normalizedAs wage_value, but only included if the harmonized wage falls between 10k and 400k CAD.
wage_unitThe unit, be it “hourly”, “weekly”, “yearly”, etc. corresponding with wage_value.
wage_unit_normalizedAs wage_unit, but only included if the harmonized wage falls between 10k and 400k CAD.
harmonized_wageThe wage_value harmonized (converted) into a consistent yearly value.
harmonized_wage_normalizedAs harmonized_wage, but only included if the harmonized wage falls between 10k and 400k CAD.

Additional Taxonomies

FieldDescription
skill_namesKST skills associated with the job post.
skillsAs skill_names, but a hashed representation.
job_tag_namesAdditional taxonomic information such as benefits, education level, etc.
job_tagsAs job_tag_names, but a hashed representation.
language_namesLanguage data associated with the job post.
languagesAs language_names, but a hashed representation.
benefitsOrganized buckets describing the benefits level of the job post, based on applicable job_tags information.

Term Query

Any permitted field can be individually searched. The most basic way of achieving this is to pass a permitted field as a request parameter, and the value for this parameter is the string value (or array of string values) you wish to search. An example of this would be "nocs": ["1221", "1222"]. There are other related parameters such as [field]__like or [field]__not that perform different types of field queries. For example, "nocs__not": ["1221", "1222"] will return ensure that postings in the result set do not match either NOC 1221 or NOC 1222.

Aggregations

Aggregation queries help summarize data as metrics, percentiles, statistics, etc. There are a number of available aggregations available:

Terms

“Terms” aggregation is a bucket aggregation that will summarize the top N terms (N configurable by passing the aggregate_count parameter) for a given field in the dataset. A terms aggregation can be done on a permitted field by passing the permitted field in the aggregate parameter.

Wage Insights

A “Wage Insights” aggregation is a percentile aggregation that will summarize the 0th, 25th, 50th, 75th, and 100th percentile wage values in a given result set. This can be done for the entire dataset by passing true as the value for the wage_insights parameter. Wage insights can also be summarized by field by passing a permitted field value for wage_insights_by. For example, "wage_insights_by": "nocs" will provide individual wage insights for each of the top N NOC values in the result set.

Cardinality

A “cardinality” aggregation counts the total unique values in the result set for a given permitted field. For example, "cardinality": "employer" will provide a count of all unique employers in the result set.

Aggregation By Month/Week

Term aggregations can be sorted by week or month using the aggregate_by_month and aggregate_by_week parameters. This is structured the same way as the aggregate parameter. For example, passing "aggregate_by_month": "naics" will summarize the top N NAICS codes for each month in the result set.

Examples

For additional examples provided in additional programming languages, view the Postman Collection.

Get Page Of Job Postings

Request

curl --location 'https://api.wedatatools.com/v2/get-jobs/' \
--data-urlencode 'key=[Your API Key]' \
--data-urlencode 'page=1' \
--data-urlencode 'per_page=5' \
--data-urlencode 'includes%5B%5D=job_title' \
--data-urlencode 'includes%5B%5D=employer' \
--data-urlencode 'includes%5B%5D=excerpt' \
--data-urlencode 'includes%5B%5D=url' \
--data-urlencode 'includes%5B%5D=post_date' \
--data-urlencode 'includes%5B%5D=region' \
--data-urlencode 'includes%5B%5D=stateprov' \
--data-urlencode 'orderby=date_desc'

Response

{
    "meta": {
        "page": 1,
        "max_pages": 167,
        "returned": 5,
        "total": 3321
    },
    "hits": [
        {
            "_index": "jobs2023may25",
            "_id": "staging-2e058d570c3ca4078d8f271890b95405",
            "_score": null,
            "_ignored": [
                "content.keyword"
            ],
            "_source": {
                "post_date": "2023-08-23",
                "job_title": "Long Haul Truck Driver",
                "excerpt": "Overview Languages English Education Secondary (high) school graduation certificate Experience Experience an asset Responsibilities Tasks Operate and drive straight or articulated trucks to transport…",
                "url": "https://www.jobbank.gc.ca/jobsearch/jobposting/38966510",
                "employer": "J7 Group Ltd",
                "region": "Winnipeg",
                "stateprov": "MB"
            },
            "sort": [
                1692752976000
            ]
        },
        {
            "_index": "jobs2023may25",
            "_id": "staging-e40363b478a050f331552753ff658a0d",
            "_score": null,
            "_ignored": [
                "content.keyword"
            ],
            "_source": {
                "post_date": "2023-08-23",
                "job_title": "Kitchen Helper",
                "excerpt": "Overview Languages English Education No degree, certificate or diploma Experience 1 to less than 7 months Responsibilities Tasks Carrying and replace linen Clean and…",
                "url": "https://www.jobbank.gc.ca/jobsearch/jobposting/38966514",
                "employer": "Pregame Sports Bar & Lounge",
                "region": "Winnipeg",
                "stateprov": "MB"
            },
            "sort": [
                1692752965000
            ]
        },
        {
            "_index": "jobs2023may25",
            "_id": "staging-a0ea2360ad54916a27489d9414955cf9",
            "_score": null,
            "_ignored": [
                "content.keyword"
            ],
            "_source": {
                "post_date": "2023-08-23",
                "job_title": "Administrative Assistant",
                "excerpt": "Overview Languages English Education Secondary (high) school graduation certificate Experience Experience an asset Responsibilities Tasks Record and prepare minutes of meetings, seminars and conferences…",
                "url": "https://www.jobbank.gc.ca/jobsearch/jobposting/38966526",
                "employer": "J7 Group Ltd",
                "region": "Winnipeg",
                "stateprov": "MB"
            },
            "sort": [
                1692752955000
            ]
        },
        {
            "_index": "jobs2023may25",
            "_id": "staging-e2c1672ef005bac03b99a42a23b73b93",
            "_score": null,
            "_ignored": [
                "content.keyword"
            ],
            "_source": {
                "post_date": "2023-08-23",
                "job_title": "Cook",
                "excerpt": "Overview Languages English Education No degree, certificate or diploma Experience Will train Cook categories Cook (general) Responsibilities Tasks Prepare and cook complete meals or…",
                "url": "https://www.jobbank.gc.ca/jobsearch/jobposting/38966528",
                "employer": "Fionn's Grant Park",
                "region": "Winnipeg",
                "stateprov": "MB"
            },
            "sort": [
                1692752945000
            ]
        },
        {
            "_index": "jobs2023may25",
            "_id": "staging-418d8c46af56aba387b4835d30e818b2",
            "_score": null,
            "_ignored": [
                "content.keyword"
            ],
            "_source": {
                "post_date": "2023-08-23",
                "job_title": "Cook",
                "excerpt": "Overview Languages English Education No degree, certificate or diploma Experience Will train Cook categories Cook (general) Responsibilities Tasks Prepare and cook complete meals or…",
                "url": "https://www.jobbank.gc.ca/jobsearch/jobposting/38966532",
                "employer": "Fionn MacCool's Crossroads",
                "region": "Winnipeg",
                "stateprov": "MB"
            },
            "sort": [
                1692752934000
            ]
        }
    ]
}