Use Cases

Lightcast Canadian Postings APIs help you access, analyze, and explore job posting data across Canada. They allow you to retrieve aggregate totals, track posting trends over time, rank demand across provinces, access individual posting records, and understand how postings are distributed across defined segments, enabling consistent, reliable insights into Canadian employer demand.

Explore the use cases below to understand how the Canadian Postings API can be applied in real-world scenarios.

Retrieve Total Postings

Measuring job demand across Canada requires a reliable way to summarize posting activity at a high level. Without a consistent method to aggregate posting data by specific skill sets, it is difficult to assess overall hiring volume, compare demand across skill combinations, or establish a baseline for deeper labor market analysis across the markets.

This API enables you to retrieve aggregate job posting metrics across Canada, filtered by active status and specific skill inclusions and exclusions. It returns a summary of unique and duplicate posting counts, giving you a concise, high-level view of overall job demand for a defined skill set before conducting more targeted analysis across the country's labor markets.

See the Canadian Postings Totals API reference for full request parameters and response details.

When to Use

  • You want to measure total job posting volume for a specific combination of skills across Canadian labor markets
  • You need a baseline summary of hiring activity filtered by skill inclusions and exclusions before deeper analysis
  • You are benchmarking overall demand for technical skill sets across Canada

Endpoint

https://api.lightcast.io/ca-jpa/totals

Sample Request

curl --request POST \
     --url https://api.lightcast.io/ca-jpa/totals \
     --header 'accept: application/json' \
     --header 'authorization: Bearer XXXX' \
     --header 'content-type: application/json' \
     --data '
{
  "filter": {
    "when": "active",
    "skills_name": {
      "include": [
        "SQL (Programming Language)",
        "C++ (Programming Language)"
      ],
      "exclude": [
        "Java (Programming Lanuage)",
        "C Sharp (Programming Language)"
      ]
    }
  },
  "metrics": [
    "duplicate_postings",
    "unique_postings"
  ]
}
'

Sample Response

{
  "data": {
    "totals": {
      "duplicate_postings": 66483,
      "median_posting_duration": null,
      "unique_postings": 16267
    }
  }
}

Posting Trends Over Time

Measuring job demand at a single point in time does not reveal how hiring activity is shifting across Canadian labor markets. Without a time-based view of posting activity, it is difficult to identify emerging trends, day-over-day fluctuations, or periods of significant change in employer demand for specific roles.

This API enables you to track job posting activity over time by returning daily unique and duplicate posting counts across a defined date range, filtered by job title or other criteria. It breaks down posting volume day by day alongside cumulative totals, giving you a granular view of how job demand has evolved across labor markets.

See the Canadian Postings Timeseries API reference for full request parameters and response details.

When to Use

  • You want to track how job posting volume changes day over day for a specific role across Canadian labor markets
  • You are monitoring shifts in employer demand for specific job titles to inform workforce planning or talent strategy
  • You want to compare unique versus duplicate posting activity over time to better understand true hiring demand across Canada

Endpoint

https://api.lightcast.io/ca-jpa/timeseries

Sample Request

curl --request POST \
     --url https://api.lightcast.io/ca-jpa/timeseries \
     --header 'accept: application/json' \
     --header 'authorization: Bearer XXXXX' \
     --header 'content-type: application/json' \
     --data '
{
  "filter": {
    "when": {
      "start": "2020-10-15",
      "end": "2020-10-20"
    },
    "title_name": [
      "Java Developers"
    ]
  },
  "metrics": [
    "duplicate_postings",
    "unique_postings"
  ]
}
'

Sample Response

{
  "data": {
    "timeseries": {
      "day": [
        "2020-10-15",
        "2020-10-16",
        "2020-10-17",
        "2020-10-18",
        "2020-10-19",
        "2020-10-20"
      ],
      "duplicate_postings": [
        1841,
        1871,
        1900,
        1911,
        1900,
        1905
      ],
      "unique_postings": [
        389,
        395,
        398,
        393,
        387,
        388
      ]
    },
    "totals": {
      "duplicate_postings": 1968,
      "unique_postings": 426
    }
  }
}

Rank Postings by Dimensions

Identifying where job demand is concentrated across Canadian provinces requires the ability to slice posting activity by geographic dimension. Without a ranked view of posting activity by dimensions, it is difficult to surface meaningful patterns or compare hiring activity across different regions for specific education requirements.

This API enables you to rank job posting activity across Canadian provinces by returning a structured list of top results based on unique posting volume. Each result includes the province name and posting count, giving you a clear and comparable view of where hiring demand is strongest across Canada for a defined set of criteria.

See the Canadian Postings Rankings API reference for full request parameters and response details.

When to Use

  • You need to compare hiring demand across provinces filtered by education requirements or other criteria
  • You are analyzing regional labor market patterns across Canada for workforce planning or talent strategy
  • You want to rank provincial posting activity to surface geographic concentration or gaps in the employer demand

Endpoint

https://api.lightcast.io/ca-jpa/rankings/{rankingFacet}

Sample Request

curl --request POST \
     --url https://api.lightcast.io/ca-jpa/rankings/cd \
     --header 'accept: application/json' \
     --header 'authorization: Bearer XXXXXX' \
     --header 'content-type: application/json' \
     --data '
{
  "filter": {
    "when": {
      "start": "2019-01",
      "end": "2020-12"
    },
    "edulevels_name": [
      "High school or GED"
    ]
  },
  "rank": {
    "by": "unique_postings",
    "limit": 5
  }
}
'

Sample Response

{
  "data": {
    "ranking": {
      "buckets": [
        {
          "name": "Ontario",
          "unique_postings": 210899
        },
        {
          "name": "British Columbia",
          "unique_postings": 117077
        },
        {
          "name": "Alberta",
          "unique_postings": 82877
        },
        {
          "name": "Quebec",
          "unique_postings": 75114
        },
        {
          "name": "Manitoba",
          "unique_postings": 22343
        }
      ],
      "facet": "province_name",
      "limit": 5,
      "rank_by": "unique_postings"
    },
    "totals": {
      "unique_postings": 582010
    }
  }
}

Retrieve Individual Postings

Analyzing labor market demand often requires access to the underlying posting records, not just aggregated summaries. Without a way to retrieve and filter individual job postings by location, keyword, or date range, it is difficult to review posting content, validate classification data, or build workflows that depend on the details of specific roles across Canadian labor markets.

This API enables you to retrieve individual job posting records filtered by date range, city, and keyword criteria. It returns paginated results with selected fields such as job title, company name, city, posting and expiration dates, full job body, and relevance score, giving you direct access to the underlying posting data across the labor markets.

See the Canadian Postings API reference for full request parameters and response details.

When to Use

  • You want to retrieve and review individual job posting records across Canadian labor markets
  • You need to access raw posting content filtered by location or keyword criteria to validate classification or enrichment data
  • You are building a workflow or application that depends on the details of specific job postings

Endpoint

https://api.lightcast.io/ca-jpa/postings

Sample Request

curl --request POST \
     --url https://api.lightcast.io/ca-jpa/postings \
     --header 'accept: application/json' \
     --header 'authorization: Bearer XXXXX' \
     --header 'content-type: application/json' \
     --data '
{
  "filter": {
    "when": {
      "start": "2019-01",
      "end": "2020-04",
      "type": "active"
    },
    "city_name": [
      "Vancouver"
    ],
    "keywords": {
      "query": "work/life balance",
      "type": "and"
    }
  },
  "fields": [
    "id",
    "posted",
    "expired",
    "body",
    "city_name",
    "company_name",
    "title_raw",
    "url",
    "active_urls",
    "score"
  ],
  "order": [
    "score"
  ],
  "limit": 2
}
'

Sample Response

{
  "data": {
    "limit": 2,
    "page": 1,
    "pages_available": 5,
    "postings": [
      {
        "body": "<!--id: 49b521d75d2c48678827df5385f5e87f-->Sales Associate Integral Retail Recruitment Inc. Vancouver, BC Job summary + <h5>Salary :</h5> To be discussed + <span class=\"jpa-keyword-highlight\">Work</span> schedule : Full time + Job status : Permanent + <span class=\"jpa-keyword-highlight\">Work</span> shift : Day , Evening , Weekend Description <h5>SALES - VANCOUVER</h5> Full-Time Sales Consultant - Fashion What you'll need to <span class=\"jpa-keyword-highlight\">work</span> for this phenomenal brand? + 2-5 years of sales/customer service experience in high-end service environments + Fashionable, Passion for styling clients + Experience building clientele base + Passion to interreact and have fun with people in a professional, client-focused environment This role will challenge you to provide the best customer service and assist management in running the store successfully. <span class=\"jpa-keyword-highlight\">Work</span> for this phenomenal retailer, and expand your career. If you have a passion for fashion, styling people, sales and delivering a wonderful client experience this might be your ideal job! What's in it for you? + Outstanding Base Salary of $14-17/HR + Commission + Hefty Product Discounts + A <span class=\"jpa-keyword-highlight\">work</span> environment that encourages <span class=\"jpa-keyword-highlight\">work</span>/<span class=\"jpa-keyword-highlight\">life</span> <span class=\"jpa-keyword-highlight\">balance</span> and career growth Requirements Level of education High school Diploma Completed <span class=\"jpa-keyword-highlight\">Work</span> experience (years) 3-5 years Written languages <h5>En :</h5> Intermediate Spoken languages <h5>En :</h5> Intermediate Benefits + Commitment to <span class=\"jpa-keyword-highlight\">work</span>-<span class=\"jpa-keyword-highlight\">life</span> <span class=\"jpa-keyword-highlight\">balance</span> + Commitment to <span class=\"jpa-keyword-highlight\">work</span>-<span class=\"jpa-keyword-highlight\">life</span> <span class=\"jpa-keyword-highlight\">balance</span> + Competitive salary + Competitive salary + On-going training + On-going training Upload your resume",
        "city_name": "Vancouver",
        "company_name": "Integral Development Corp.",
        "expired": "2019-03-05",
        "id": "49b521d75d2c48678827df5385f5e87f",
        "posted": "2019-02-05",
        "score": 8.185217,
        "title_raw": "Sales Associate",
        "url": []
      },
      {
        "body": "<!--id: cb3a99b91c344e46ae36885d51e478d4-->Accounts Receivable Administrator Swim Recruiting Location Vancouver, BC Details Full Time 15 hours ago Great opportunity for an accounting professional who already has AR experience and who is eager to gain new accounting knowledge with a large and reputable organization. Excellent Vancouver company with a great corporate culture and solid <span class=\"jpa-keyword-highlight\">work</span>/<span class=\"jpa-keyword-highlight\">life</span> <span class=\"jpa-keyword-highlight\">balance</span>. Role is open to CPA students. Who- the <h5>Company:</h5> Our client is a reputable and very well-managed technology company with close to 1000 employees. It's a company that promotes an innovative, passionate, and values-based <span class=\"jpa-keyword-highlight\">work</span> culture, as well as good <span class=\"jpa-keyword-highlight\">work</span>-<span class=\"jpa-keyword-highlight\">life</span> <span class=\"jpa-keyword-highlight\">balance</span>. What- the <h5>Opportunity:</h5> Our client is seeking a new Accounts Receivable Administrator who will process AR transactions, analyze reconciliations, support financial reporting, calculate and submit invoices, maintain the AR sub ledger, and also support month-end/quarter-end/year-end within the accounting team. The A/R Administrator will also cross-train in A/P and other functions so they can act as a back-up and so they can to their accounting knowledge. Who- the <h5>Candidate:</h5> We are looking for up & coming accounting professionals who are self-motivated and able to <span class=\"jpa-keyword-highlight\">work</span> successfully in a collaborative team environment. At least 2 years recent and relevant experience related to Accounts Receivable. Long-term pursuit of CPA designation is an asset but not required (company will support CPA studies). Responsibilities will vary, and we are looking for people who are adaptable and versatile. A process-improvement mindset and the willingness to problem solve are key in this role! Candidates will be great communicators who are also self-motivated and organized. <h5>Where:</h5> Vancouver, BC. <h5>How Much:</h5> Base salary commensurate with experience, plus benefits, a performance-based bonus, and good <span class=\"jpa-keyword-highlight\">work</span>/<span class=\"jpa-keyword-highlight\">life</span> <span class=\"jpa-keyword-highlight\">balance</span>. Please discuss further with Swim.",
        "city_name": "Vancouver",
        "company_name": "Our Co Inc",
        "expired": "2020-04-10",
        "id": "cb3a99b91c344e46ae36885d51e478d4",
        "posted": "2020-01-31",
        "score": 8.038073,
        "title_raw": "Accounts Receivable Administrator",
        "url": []
      }
    ],
    "unique_postings": 6795,
    "viewable_postings": 6795
  }
}

Analyze Posting Distributions

Understanding how job postings are spread across a Canadian talent population requires more than aggregate counts. Without a structured view of how postings are distributed across defined ranges, it is difficult to assess where employer demand is concentrated, identify gaps, or compare posting density across segments of the labor market.

This API enables you to analyze how Canadian job postings are distributed across defined ranges by returning data broken down into percentile buckets. Each bucket represents a percentile range and includes unique and duplicate posting counts, giving you a clear picture of where posting volume is concentrated across a defined population of the job postings.

See the Canadian Postings Distributions API reference for full request parameters and response details.

When to Use

  • You want to understand how job postings are distributed across defined segments within Canadian labor markets
  • You need to identify which ranges have the highest or lowest posting density across Canada
  • You are analyzing employer demand patterns across segments for workforce planning or talent strategy in Canada
  • You want to compare posting concentration across percentile ranges to surface gaps or trends in Canadian hiring activity

Endpoint

https://api.lightcast.io/ca-jpa/distributions/{distributionFacet}

Sample Request

curl --request POST \
     --url https://api.lightcast.io/ca-jpa/distributions/max_years_experience \
     --header 'accept: application/json' \
     --header 'authorization: Bearer XXXXXX' \
     --header 'content-type: application/json' \
     --data '
{
  "filter": {
    "when": "active"
  },
  "distribution": {
    "type": "percentile",
    "options": {
      "keys": [
        25,
        50,
        75
      ]
    },
    "metrics": [
      "unique_postings",
      "duplicate_postings"
    ]
  }
}
'

Sample Response

{
  "data": {
    "distribution": {
      "buckets": [
        {
          "duplicate_postings": 116969,
          "key": 25,
          "unique_postings": 69451,
          "value": 36401
        },
        {
          "duplicate_postings": 237406,
          "key": 50,
          "unique_postings": 134014,
          "value": 45001
        },
        {
          "duplicate_postings": 377764,
          "key": 75,
          "unique_postings": 200280,
          "value": 59671
        }
      ],
      "domain": {
        "max": 500000,
        "min": 15682
      },
      "facet": "salary",
      "interval": null,
      "type": "percentile"
    },
    "totals": {
      "duplicate_postings": 1228637,
      "unique_postings": 663621
    }
  }
}

Additional Resources