Search LinkedIn jobs
harvestapi.linkedin.search.jobsSearch LinkedIn jobs by title, company, location, and more.
- Price
- $0.001/callAt provider cost
- Success rate
- 100%Last 30 days · 149,917 calls
- Latency p50
- 1 sp95 3.2 s
- Last verified
- Sep 10, 2026Verified working
GEThttps://toolswitch.dev/v1/tools/harvestapi.linkedin.search.jobs?page=1&search=Software+EngineerPreview- Uses platform quota
- Synchronous response
- Reads public data
Parameters
Use only the declared query parameters, once each, without a request body. Results are provider-native: inspect element/elements and body status/error; HTTP 200 alone does not prove a hit. Empty results can still be charged.
| Parameter | Type | Required | Description | Example |
|---|---|---|---|---|
| Query parameters | ||||
page | integer | Optional | Page number for pagination | 1 |
geoId | string | Optional | Filter by location as LinkedIn Geo ID. Overrides the location query param. Use the /linkedin/geo-id-search endpoint to find the Geo ID | |
salary | string | Optional | Filter by salary range. Supported values: '40k+', '60k+', '80k+', '100k+', '120k+', '140k+', '160k+', '180k+', '200k+' | |
search | string | Optional | Search jobs by title | Software Engineer |
sortBy | string | Optional | Sort by field. Supported values: 'relevance', 'date' | |
location | string | Optional | Filter by location text | |
companyId | string | Optional | Filter by company ID. One value or multiple comma-separated. | |
easyApply | string | Optional | Set this parameter to 'true' filter jobs with Easy Apply option or 'false' to exclude. Values can be 'true' or 'false' | |
functionId | string | Optional | Filter by job function ID. One value or multiple comma-separated function IDs. Full list of IDs: https://github.com/HarvestAPI/apify-linkedin-profile-search/blob/main/.actor/input_schema.json#L142 | |
industryId | string | Optional | Filter by industry ID. One value or multiple comma-separated industry IDs. Full list of IDs: https://github.com/HarvestAPI/linkedin-industry-codes-v2/blob/main/linkedin_industry_code_v2_all_eng.csv | |
postedLimit | string | Optional | Filter posts by maximum posted date. Supported values: '24h', 'week', 'month' | |
workplaceType | string | Optional | Filter by workplace type. One or multiple values comma-separated. Supported values: 'office', 'hybrid', 'remote' | |
employmentType | string | Optional | Filter by employment type. One or multiple values comma-separated. Supported values: 'full-time', 'part-time', 'contract', 'temporary', 'internship' | |
experienceLevel | string | Optional | Filter by experience level. One or multiple values comma-separated. Supported values: 'internship', 'entry', 'associate', 'mid-senior', 'director', 'executive' | |
under10Applicants | string | Optional | Include this parameter to filter jobs with under 10 applicants | |
- Query parameters
pageintegerOptionalPage number for pagination
Example:
1geoIdstringOptionalFilter by location as LinkedIn Geo ID. Overrides the location query param. Use the /linkedin/geo-id-search endpoint to find the Geo ID
salarystringOptionalFilter by salary range. Supported values: '40k+', '60k+', '80k+', '100k+', '120k+', '140k+', '160k+', '180k+', '200k+'
searchstringOptionalSearch jobs by title
Example:
Software EngineersortBystringOptionalSort by field. Supported values: 'relevance', 'date'
locationstringOptionalFilter by location text
companyIdstringOptionalFilter by company ID. One value or multiple comma-separated.
easyApplystringOptionalSet this parameter to 'true' filter jobs with Easy Apply option or 'false' to exclude. Values can be 'true' or 'false'
functionIdstringOptionalFilter by job function ID. One value or multiple comma-separated function IDs. Full list of IDs: https://github.com/HarvestAPI/apify-linkedin-profile-search/blob/main/.actor/input_schema.json#L142
industryIdstringOptionalFilter by industry ID. One value or multiple comma-separated industry IDs. Full list of IDs: https://github.com/HarvestAPI/linkedin-industry-codes-v2/blob/main/linkedin_industry_code_v2_all_eng.csv
postedLimitstringOptionalFilter posts by maximum posted date. Supported values: '24h', 'week', 'month'
workplaceTypestringOptionalFilter by workplace type. One or multiple values comma-separated. Supported values: 'office', 'hybrid', 'remote'
employmentTypestringOptionalFilter by employment type. One or multiple values comma-separated. Supported values: 'full-time', 'part-time', 'contract', 'temporary', 'internship'
experienceLevelstringOptionalFilter by experience level. One or multiple values comma-separated. Supported values: 'internship', 'entry', 'associate', 'mid-senior', 'director', 'executive'
under10ApplicantsstringOptionalInclude this parameter to filter jobs with under 10 applicants
Code samples
Replace $TOOLSWITCH_KEY with the key you created in the console.
curl -X GET 'https://toolswitch.dev/v1/tools/harvestapi.linkedin.search.jobs?page=1&search=Software+Engineer' \
-H "X-Toolswitch-Key: $TOOLSWITCH_KEY"import os
import requests
response = requests.request(
"GET",
"https://toolswitch.dev/v1/tools/harvestapi.linkedin.search.jobs?page=1&search=Software+Engineer",
headers={"X-Toolswitch-Key": os.environ["TOOLSWITCH_KEY"]},
)
response.raise_for_status()
print(response.text)const response = await fetch("https://toolswitch.dev/v1/tools/harvestapi.linkedin.search.jobs?page=1&search=Software+Engineer", {
method: "GET",
headers: {
"X-Toolswitch-Key": process.env.TOOLSWITCH_KEY ?? "",
},
});
if (!response.ok) throw new Error(`Request failed: ${response.status}`);
console.log(await response.text());This gateway API is in preview; its URL and authentication may change. The example parameters are sample data. Calls are billed at $0.001/call, including the service fee.