/rankings
Group and rank postings by available facets.
GET /rankings
GET /rankingsGet a list of current available ranking facets.
Code Examples
curl --request GET \
--url https://api.lightcast.io/global-postings/rankings \
--header 'Authorization: Bearer <ACCESS_TOKEN>'Response Examples
{
"data": [
"active_sources_info",
"anz_sco_1",
"anz_sco_1_name",
"anz_sco_2",
"anz_sco_2_name",
"anz_sco_3",
"anz_sco_3_name",
"anz_sco_4",
"anz_sco_4_name",
"anz_sco_5",
"anz_sco_5_name",
"anz_sic_1",
"anz_sic_1_name",
"anz_sic_2",
"anz_sic_2_name",
"anz_sic_3",
"anz_sic_3_name",
"anz_sic_4",
"anz_sic_4_name",
"certifications",
"certifications_name",
"city",
"city_name",
"common_skills",
"common_skills_name",
"company",
"company_name",
"contract_type",
"contract_type_name",
"edulevels",
"edulevels_name",
"employment_type",
"employment_type_name",
"isced",
"isced_name",
"isco_1",
"isco_1_name",
"isco_2",
"isco_2_name",
"isco_3",
"isco_3_name",
"isco_4",
"isco_4_name",
"laa_admin_area_1",
"laa_admin_area_1_name",
"laa_admin_area_2",
"laa_admin_area_2_name",
"laa_country",
"laa_country_name",
"laa_metro",
"laa_metro_name",
"lot_career_area",
"lot_career_area_name",
"lot_occupation",
"lot_occupation_group",
"lot_occupation_group_name",
"lot_occupation_name",
"lot_specialized_occupation",
"lot_specialized_occupation_name",
"max_edulevels",
"max_edulevels_name",
"max_years_experience",
"min_edulevels",
"min_edulevels_name",
"min_years_experience",
"nace_1",
"nace_1_name",
"nace_2",
"nace_2_name",
"naics2",
"naics2_name",
"naics3",
"naics3_name",
"naics4",
"naics4_name",
"naics5",
"naics5_name",
"naics6",
"naics6_name",
"remote_type",
"remote_type_name",
"skill_categories",
"skill_categories_name",
"skill_subcategories",
"skill_subcategories_name",
"skills",
"skills_name",
"software_skills",
"software_skills_name",
"specialized_skills",
"specialized_skills_name",
"title",
"title_name"
]
}POST /rankings/{rankingFacet}
POST /rankings/{rankingFacet}Group and rank postings by {rankingFacet}.
URL Parameters
| Name | Type | Description |
|---|---|---|
rankingFacet | enum | Example: Must be one of: |
Query Parameter
| Name | Type | Description |
|---|---|---|
new_taxonomy_versions | enum | Use new taxonomy versions. Default: Must be one of: |
lot_version | enum | Specify LOT taxonomy version to use. Default: Must be one of: |
area_version | enum | Specify area taxonomy version to use. Default: Must be one of: |
area_laa_version | enum | Specify LAA area taxonomy version to use. Default: Must be one of: |
dataset | enum | Specify dataset to query. Default: Must be one of: |
Request Body
{
"filter": {
"when": {
"start": "2019-03",
"end": "2019-06",
"type": "expired"
}
},
"rank": {
"by": "unique_postings",
"limit": 10,
"extra_metrics": [
"median_posting_duration"
]
}
}Code Examples
curl --request POST \
--url https://api.lightcast.io/global-postings/rankings/company \
--header 'Authorization: Bearer <ACCESS_TOKEN>' \
--header 'Content-Type: application/json' \
--data '{ "filter": { "when": { "start": "2019-03", "end": "2019-06", "type": "expired" } }, "rank": { "by": "unique_postings", "limit": 10, "extra_metrics": [ "median_posting_duration" ] } }'Response Examples
{
"data": {
"ranking": {
"buckets": [
{
"median_posting_duration": 3,
"name": "875822de2984cf06301a",
"unique_postings": 1
}
],
"facet": "company",
"limit": 10,
"rank_by": "unique_postings"
},
"totals": {
"median_posting_duration": 3,
"unique_postings": 1
}
}
}// Your request wasn't valid (bad parameter names or values).
{
"errors": [
{
"status": 400,
"title": "Malformed Request",
"detail": "Expected array"
}
]
}// Your request wasn't unauthorized.
{
"errors": [
{
"status": 401,
"title": "Unauthorized Request",
"detail": "You are not authorized to access this resource."
}
]
}// The facet you requested wasn't found.
{
"errors": [
{
"status": 404,
"title": "URL not found",
"detail": "Unrecognized facet 'foo'"
}
]
}// Your request wasn't valid (bad keyword expression).
{
"errors": [
{
"status": 422,
"title": "Invalid request content",
"detail": "Invalid keyword search expression syntax:\n\t\"general merchandise\" OR \"apparel\" OR \"grocery\" OR\n\t ^"
}
]
}POST /rankings/{rankingFacet}/timeseries
Group and rank postings by {ranking_facet} with a monthly or daily timeseries for each ranked group. Use YYYY-MM date format in the timeseries time-frame filter, timeseries.when, to get monthly summary of each ranked group, or use YYYY-MM-DD date format for daily summary.
URL Parameters
| Name | Type | Description |
|---|---|---|
rankingFacet | enum | Example: Must be one of: |
Query Parameters
| Name | Type | Description |
|---|---|---|
new_taxonomy_versions | enum | Use new taxonomy versions. Default: Must be one of: |
lot_version | enum | Specify LOT taxonomy version to use. Must be one of: |
area_version | enum | Specify area taxonomy version to use. Must be one of: |
area_laa_version | enum | Specify LAA area taxonomy version to use. Must be one of: |
dataset | enum | Specify dataset to query. Default: Must be one of: |
Response Body
{
"filter": {
"when": {
"start": "2019-03",
"end": "2019-06",
"type": "active"
}
},
"rank": {
"by": "unique_postings",
"limit": 5
},
"timeseries": {
"metrics": [
"unique_postings"
]
}
}Code Examples
curl --request POST \
--url https://api.lightcast.io/global-postings/rankings/company/timeseries \
--header 'Authorization: Bearer <ACCESS_TOKEN>' \
--header 'Content-Type: application/json' \
--data '{ "filter": { "when": { "start": "2019-03", "end": "2019-06", "type": "active" } }, "rank": { "by": "unique_postings", "limit": 5 }, "timeseries": { "metrics": [ "unique_postings" ] } }'Response Examples
{
"data": {
"ranking": {
"buckets": [
{
"name": "1ceab64396ffde137f81",
"timeseries": {
"month": [
"2019-03",
"2019-04",
"2019-05",
"2019-06"
],
"unique_postings": [
3,
5,
1,
2
]
},
"unique_postings": 11
},
{
"name": "35ac4f47bcc32d134aa6",
"timeseries": {
"month": [
"2019-03",
"2019-04",
"2019-05",
"2019-06"
],
"unique_postings": [
1,
3,
3,
2
]
},
"unique_postings": 9
},
{
"name": "d6ff076c42e0e2b05fd3",
"timeseries": {
"month": [
"2019-03",
"2019-04",
"2019-05",
"2019-06"
],
"unique_postings": [
4,
0,
3,
2
]
},
"unique_postings": 9
},
{
"name": "f54720fc83a5af82abf9",
"timeseries": {
"month": [
"2019-03",
"2019-04",
"2019-05",
"2019-06"
],
"unique_postings": [
0,
2,
4,
2
]
},
"unique_postings": 8
},
{
"name": "01bec3d5d77363154548",
"timeseries": {
"month": [
"2019-03",
"2019-04",
"2019-05",
"2019-06"
],
"unique_postings": [
6,
0,
1,
1
]
},
"unique_postings": 7
}
],
"facet": "company",
"limit": 5,
"rank_by": "unique_postings"
},
"totals": {
"unique_postings": 100
}
}
}// Your request wasn't valid (bad parameter names or values).
{
"errors": [
{
"status": 400,
"title": "Malformed Request",
"detail": "Expected array"
}
]
}// Your request wasn't unauthorized.
{
"errors": [
{
"status": 401,
"title": "Unauthorized Request",
"detail": "You are not authorized to access this resource."
}
]
}// The facet you requested wasn't found.
{
"errors": [
{
"status": 404,
"title": "URL not found",
"detail": "Unrecognized facet 'foo'"
}
]
}// Your request wasn't valid (bad keyword expression).
{
"errors": [
{
"status": 422,
"title": "Invalid request content",
"detail": "Invalid keyword search expression syntax:\n\t\"general merchandise\" OR \"apparel\" OR \"grocery\" OR\n\t ^"
}
]
}POST /rankings/{rankingFacet}/distributions/{distributionFacet}
Group and rank postings by {rankingFacet} with a distribution for each ranked item.
URL Parameters
| Name | Type | Description |
|---|---|---|
rankingFacet | enum | Example: Must be one of: |
distributionFacet | enum | Example: Must be one of: |
Query Parameters
| Name | Type | Description |
|---|---|---|
new_taxonomy_versions | enum | Use new taxonomy versions. Default: Must be one of: |
lot_version | enum | Specify LOT taxonomy version to use. Must be one of: |
area_version | enum | Specify area taxonomy version to use. Must be one of: |
area_laa_version | enum | Specify LAA area taxonomy version to use. Must be one of: |
dataset | enum | Specify dataset to query. Default: Must be one of: |
Request Body
{
"filter": {
"when": {
"start": "2020-01",
"end": "2023-12"
},
"laa_country": [
"US"
]
},
"rank": {
"by": "unique_postings",
"limit": 2
},
"distribution": {
"type": "histogram",
"options": {
"interval": 100000
},
"metrics": [
"duplicate_postings"
]
}
}Code Examples
curl --request POST \
--url https://api.lightcast.io/global-postings/rankings/company/distributions/salary \
--header 'Authorization: Bearer <ACCESS_TOKEN>' \
--header 'Content-Type: application/json' \
--data '{ "filter": { "when": { "start": "2020-01", "end": "2023-12" }, "laa_country": [ "US" ] }, "rank": { "by": "unique_postings", "limit": 2 }, "distribution": { "type": "histogram", "options": { "interval": 100000 }, "metrics": [ "duplicate_postings" ] } }'Response Examples
{
"data": {
"ranking": {
"buckets": [
{
"distribution": {
"buckets": [
{
"duplicate_postings": 13156784,
"key": 1,
"value": 0
},
{
"duplicate_postings": 2464553,
"key": 2,
"value": 100000
},
{
"duplicate_postings": 187126,
"key": 3,
"value": 200000
},
{
"duplicate_postings": 41355,
"key": 4,
"value": 300000
},
{
"duplicate_postings": 8025,
"key": 5,
"value": 400000
},
{
"duplicate_postings": 2780,
"key": 6,
"value": 500000
}
],
"domain": {
"max": 500000,
"min": 15100
},
"facet": "salary",
"interval": 100000,
"type": "histogram"
},
"name": "Unclassified",
"unique_postings": 18621508
},
{
"distribution": {
"buckets": [
{
"duplicate_postings": 5650866,
"key": 1,
"value": 0
},
{
"duplicate_postings": 17838,
"key": 2,
"value": 100000
},
{
"duplicate_postings": 1490,
"key": 3,
"value": 200000
},
{
"duplicate_postings": 183,
"key": 4,
"value": 300000
},
{
"duplicate_postings": 8,
"key": 5,
"value": 400000
},
{
"duplicate_postings": 69,
"key": 6,
"value": 500000
}
],
"domain": {
"max": 500000,
"min": 17680
},
"facet": "salary",
"interval": 100000,
"type": "histogram"
},
"name": "Amazon",
"unique_postings": 1257477
}
],
"facet": "company_name",
"limit": 2,
"rank_by": "unique_postings"
},
"totals": {
"unique_postings": 163400492
}
}
}// Your request wasn't valid (bad parameter names or values).
{
"errors": [
{
"status": 400,
"title": "Malformed Request",
"detail": "Expected array"
}
]
}//Your request wasn't unauthorized.
{
"errors": [
{
"status": 401,
"title": "Unauthorized Request",
"detail": "You are not authorized to access this resource."
}
]
}// The facet you requested wasn't found.
{
"errors": [
{
"status": 404,
"title": "URL not found",
"detail": "Unrecognized facet 'foo'"
}
]
}// Your request wasn't valid (bad keyword expression).
{
"errors": [
{
"status": 422,
"title": "Invalid request content",
"detail": "Invalid keyword search expression syntax:\n\t\"general merchandise\" OR \"apparel\" OR \"grocery\" OR\n\t ^"
}
]
}POST /rankings/{rankingFacet}/rankings/{nestedRankingFacet}
Get a nested ranking (e.g. top companies, then top skills per company).
URL Parameters
| Name | Type | Description |
|---|---|---|
rankingFacet | enum | Example: Must be one of: |
nestedRankingFacet | enum | Example: Must be one of: |
Query Parameters
| Name | Type | Description |
|---|---|---|
new_taxonomy_versions | enum | Use new taxonomy versions. Default: Must be one of: |
lot_version | enum | Specify LOT taxonomy version to use. Must be one of: |
area_version | enum | Specify area taxonomy version to use. Must be one of: |
area_laa_version | enum | Specify LAA area taxonomy version to use. Must be one of: |
dataset | enum | Specify dataset to query. Default: Must be one of: |
Request Body
{
"filter": {
"when": {
"start": "2019-03",
"end": "2019-06",
"type": "active"
}
},
"rank": {
"by": "unique_postings",
"limit": 5,
"extra_metrics": [
"median_posting_duration"
]
},
"nested_rank": {
"by": "significance",
"min_unique_postings": 1,
"limit": 5
}
}Code Examples
curl --request POST \
--url https://api.lightcast.io/global-postings/rankings/company/rankings/company \
--header 'Authorization: Bearer <ACCESS_TOKEN>' \
--header 'Content-Type: application/json' \
--data '{ "filter": { "when": { "start": "2019-03", "end": "2019-06", "type": "active" } }, "rank": { "by": "unique_postings", "limit": 5, "extra_metrics": [ "median_posting_duration" ] }, "nested_rank": { "by": "significance", "min_unique_postings": 1, "limit": 5 } }'Response Examples
{
"data": {
"ranking": {
"buckets": [
{
"median_posting_duration": null,
"name": "1ceab64396ffde137f81",
"ranking": {
"buckets": [
{
"name": "1ceab64396ffde137f81",
"significance": 24.5,
"unique_postings": 2
}
],
"facet": "company",
"limit": 5,
"rank_by": "significance"
},
"unique_postings": 2
},
{
"median_posting_duration": null,
"name": "35ac4f47bcc32d134aa6",
"ranking": {
"buckets": [
{
"name": "35ac4f47bcc32d134aa6",
"significance": 49,
"unique_postings": 2
}
],
"facet": "company",
"limit": 5,
"rank_by": "significance"
},
"unique_postings": 2
},
{
"median_posting_duration": null,
"name": "d6ff076c42e0e2b05fd3",
"ranking": {
"buckets": [
{
"name": "d6ff076c42e0e2b05fd3",
"significance": 49,
"unique_postings": 2
}
],
"facet": "company",
"limit": 5,
"rank_by": "significance"
},
"unique_postings": 2
},
{
"median_posting_duration": null,
"name": "f54720fc83a5af82abf9",
"ranking": {
"buckets": [
{
"name": "f54720fc83a5af82abf9",
"significance": 49,
"unique_postings": 2
}
],
"facet": "company",
"limit": 5,
"rank_by": "significance"
},
"unique_postings": 2
},
{
"median_posting_duration": null,
"name": "01bec3d5d77363154548",
"ranking": {
"buckets": [
{
"name": "01bec3d5d77363154548",
"significance": 50,
"unique_postings": 1
}
],
"facet": "company",
"limit": 5,
"rank_by": "significance"
},
"unique_postings": 1
}
],
"facet": "company",
"limit": 5,
"rank_by": "unique_postings"
},
"totals": {
"median_posting_duration": 3,
"unique_postings": 100
}
}
}// Your request wasn't valid (bad parameter names or values).
{
"errors": [
{
"status": 400,
"title": "Malformed Request",
"detail": "Expected array"
}
]
}//Your request wasn't unauthorized.
{
"errors": [
{
"status": 401,
"title": "Unauthorized Request",
"detail": "You are not authorized to access this resource."
}
]
}// The facet you requested wasn't found.
{
"errors": [
{
"status": 404,
"title": "URL not found",
"detail": "Unrecognized facet 'foo'"
}
]
}// Your request wasn't valid (bad keyword expression).
{
"errors": [
{
"status": 422,
"title": "Invalid request content",
"detail": "Invalid keyword search expression syntax:\n\t\"general merchandise\" OR \"apparel\" OR \"grocery\" OR\n\t ^"
}
]
}
