API reference · Job
GET/api/v2/jobs/search
Search Jobs by Keyword and Location
Search LinkedIn job cards by keyword. Optional filter values should come from /api/v2/jobs/search/filters; copy each filter's secondaryFilterValues[].value back into this endpoint.
Parameters
| Parameter | In | Type | Description |
|---|---|---|---|
keywords * | query | stringmin length 1 | Job search text, for example software engineer. |
location | query | string | null | Free-text job location, such as Berlin or San Francisco, CA. Use geo_id instead when combining location with advanced filters. |
geo_id | query | string | null | LinkedIn geo ID for job search. Use /api/v2/search/locations or /api/v2/jobs/search/filters to find it. Prefer this over free-text location when using advanced job filters. |
company | query | string | LinkedIn company ID filter for jobs. Use /api/v2/jobs/search/filters and copy secondaryFilterValues[].value from the company filter. Accepts comma-separated or repeated values. |
companies | query | string | Comma-separated values or repeated query parameters. Use the matching filter-discovery endpoint to find valid secondaryFilterValues[].value entries. |
jobType | query | string | Job type values: F full-time, P part-time, C contract, T temporary, V volunteer, I internship, O other. Accepts comma-separated or repeated values. |
experience | query | string | Experience level values: 1 internship, 2 entry level, 3 associate, 4 mid-senior, 5 director, 6 executive. Accepts comma-separated or repeated values. |
workplaceType | query | string | Workplace values: 1 on-site, 2 remote, 3 hybrid. Accepts comma-separated or repeated values. |
workArrangement | query | string | Comma-separated values or repeated query parameters. Use the matching filter-discovery endpoint to find valid secondaryFilterValues[].value entries. |
regions | query | string | Comma-separated values or repeated query parameters. Use the matching filter-discovery endpoint to find valid secondaryFilterValues[].value entries. |
salary | query | string | Comma-separated values or repeated query parameters. Use the matching filter-discovery endpoint to find valid secondaryFilterValues[].value entries. |
industries | query | string | Comma-separated values or repeated query parameters. Use the matching filter-discovery endpoint to find valid secondaryFilterValues[].value entries. |
locations | query | string | Comma-separated values or repeated query parameters. Use the matching filter-discovery endpoint to find valid secondaryFilterValues[].value entries. |
functions | query | string | Comma-separated values or repeated query parameters. Use the matching filter-discovery endpoint to find valid secondaryFilterValues[].value entries. |
titles | query | string | Comma-separated values or repeated query parameters. Use the matching filter-discovery endpoint to find valid secondaryFilterValues[].value entries. |
benefits | query | string | Comma-separated values or repeated query parameters. Use the matching filter-discovery endpoint to find valid secondaryFilterValues[].value entries. |
Benefits | query | string | Comma-separated values or repeated query parameters. Use the matching filter-discovery endpoint to find valid secondaryFilterValues[].value entries. |
commitments | query | string | Comma-separated values or repeated query parameters. Use the matching filter-discovery endpoint to find valid secondaryFilterValues[].value entries. |
easyApply | query | string | Comma-separated values or repeated query parameters. Use the matching filter-discovery endpoint to find valid secondaryFilterValues[].value entries. |
verifiedJob | query | string | Comma-separated values or repeated query parameters. Use the matching filter-discovery endpoint to find valid secondaryFilterValues[].value entries. |
under10Applicants | query | string | Comma-separated values or repeated query parameters. Use the matching filter-discovery endpoint to find valid secondaryFilterValues[].value entries. |
fairChance | query | string | Comma-separated values or repeated query parameters. Use the matching filter-discovery endpoint to find valid secondaryFilterValues[].value entries. |
timePostedRange | query | stringdefault | Job posting age. Use empty string for any time, r86400 for past 24 hours, r604800 for past week, r2592000 for past month. |
sortBy | query | stringdefault R | Job sort order. Values: R most relevant, DD most recent. |
offset | query | integermin 0, default 0 | Page offset for list results. Use 0 or omit it for the first page. When the response has pagination.hasMore=true, request the next page with offset=<pagination.nextOffset>. |
limit | query | integermin 1, max 100, default 10 | Maximum items to return. The schema shows the allowed min/max for this endpoint. LinkedIn may return fewer; check pagination.returned. |
Response codes
| Code | Meaning |
|---|---|
200 | Successful v2 response envelope. |
400 | Invalid input |
401 | Missing or invalid API key |
404 | Resource not found |
409 | Cookie pool unavailable |
422 | Validation error |
429 | Rate limited |
502 | Upstream response could not be normalized |
503 | Upstream unavailable |
Pagination
This endpoint returns the standard pagination object. While pagination.hasMore is true, request the next page with pagination.nextOffset. See Pagination.