LinkedIn Jobs Scraper & Search API — Remote Jobs & Hiring avatar

LinkedIn Jobs Scraper & Search API — Remote Jobs & Hiring

Pricing

$2.00 / 1,000 job listings

Go to Apify Store
LinkedIn Jobs Scraper & Search API — Remote Jobs & Hiring

LinkedIn Jobs Scraper & Search API — Remote Jobs & Hiring

Search LinkedIn job listings by keyword, location ID, company and remote/hybrid filters. Collect job titles, company names, posting dates, URLs and salary text when available. Export deduplicated JSON, CSV or Excel. Search listings only; no full descriptions.

Pricing

$2.00 / 1,000 job listings

Rating

0.0

(0)

Developer

Gaurav Kumar Choudhary

Gaurav Kumar Choudhary

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

9 hours ago

Last modified

Share

LinkedIn Jobs Scraper & Search API

At a glance

  • Collect: LinkedIn job-search listings with available company, location and posting metadata.
  • Input: use the runnable example below or the prefilled Input form.
  • Output: the default dataset supports JSON/CSV/Excel export; see output modes below.
  • Billing: $2 per 1,000 unique delivered job listings. Up to 25 listings per fetched page; counts vary. No startup fee. Platform usage may be additional.
  • Limits: No full job descriptions, recruiter contacts, applicant enrichment or complete-index guarantee.

Search LinkedIn job listings and export structured hiring data for recruitment research, remote job discovery, company hiring monitoring and labor-market analysis. Filter by job keywords, location ID, company, posting date and workplace type. Collect job titles, company names, locations, source URLs and salary text when available, with duplicate job IDs removed within each run.

This is a search-listing API, not a full job-description or enrichment service. It is independent and not an official LinkedIn API or LinkedIn-affiliated product. Pricing: $2 per 1,000 delivered unique job listings, with no startup fee.

What can you use it for?

  • Discover remote, hybrid or on-site jobs matching a role and geographic market.
  • Research company hiring activity and recruiting opportunities.
  • Collect advertised salary text, job titles and locations for market analysis.
  • Schedule repeated searches with Apify and compare exported datasets yourself.
  • Feed structured job listings into dashboards, spreadsheets and API workflows.

Quick start: collect up to 25 jobs

Enter a keyword such as software engineer, choose a location ID, optionally add filters, then start the Actor. Open the dataset to inspect results or export JSON, CSV or Excel from Apify. No LinkedIn login or cookies are requested in Actor input.

{
"keywords": "software engineer",
"geo_code": 103644278,
"sort_by": "Most recent",
"maxItems": 25,
"maxPages": 1,
"maxProviderCredits": 2
}

103644278 is the United States location ID. For another location, use the geoId value in a LinkedIn jobs search URL. Results depend on source availability.

Remote software engineering jobs posted this week

{
"keywords": "software engineer",
"geo_code": 103644278,
"onsite_remotes": ["Remote"],
"date_posted": "Past week",
"maxItems": 100,
"maxPages": 4,
"maxProviderCredits": 8
}

Microsoft marketing jobs in the United States

{
"keywords": "marketing",
"geo_code": 103644278,
"company_ids": [1035],
"sort_by": "Most relevant",
"maxItems": 25,
"maxPages": 1,
"maxProviderCredits": 2
}

Search filters and pagination

InputPurpose
keywordsRequired job title or search keywords
geo_codeNumeric LinkedIn location ID
company_idsCompany IDs; 1035 is Microsoft
date_postedAny time, Past month, Past week or Past 24 hours
onsite_remotesRemote, Hybrid and/or On-site
experience_levelsInternship, Entry level, Associate, Mid-Senior level, Director or Executive
job_typesFull-time, Part-time, Contract, Temporary, Internship or Other
easy_applyRequest Easy Apply listings when true
under_10_applicantsRequest this filter; applicant counts are not returned
sort_byMost recent or Most relevant
maxItemsMaximum unique saved jobs, from 1 to 1,000
maxPagesMaximum search pages, from 1 to 40
maxProviderCreditsRun-level operational budget; 2 credits per attempted page
startStarting offset in multiples of 25: 0, 25, 50, etc.

Advanced filters also accept industry IDs, title IDs and supported job functions. Empty filter arrays mean no restriction; matching depends on the source. Increase both maxPages and maxProviderCredits for larger searches: four pages require a budget of at least eight credits. These service credits are an operational limit, not an Apify dollar price or a free allowance.

Three limits apply: unique output rows, search pages and estimated service credits. Each attempted page reserves 2 credits. Pages may return fewer than 25 listings. No automatic retries. Repeated or short pages stop pagination. Results reflect fetched pages, not a guaranteed complete LinkedIn job index.

Output: one row per unique job listing

Illustrative sample based on the successful live test:

{
"jobId": "4474183659",
"jobUrl": "https://www.linkedin.com/jobs/view/4474183659/",
"title": "Channel Mktg Mgr",
"company": "Microsoft",
"companyUrl": "https://www.linkedin.com/company/microsoft",
"location": "Istanbul, Istanbul, Türkiye",
"postedTime": "2026-10-01 12:44:35",
"workplaceType": "On-site",
"query": "marketing",
"geoCode": 92000000,
"pageOffset": 0,
"recordType": "job_listing",
"fetchedAt": "2026-10-09T18:32:21.263611+00:00"
}

Optional fields are omitted when unavailable. salaryText, when present, is source text rather than a normalized estimate. postedTime retains source text; fetchedAt is the UTC collection timestamp, not a guarantee of source freshness.

One dataset row per unique job listing. SUMMARY contains page counts, conservative credit estimates, stop reason and sanitized error codes. No raw response or request headers are exported. Empty searches are valid and return zero rows. An upstream failure marks the run failed; already saved partial results remain available.

Use as a LinkedIn job search API

Once you have access to the Actor, call it with your own Apify token:

curl --request POST \
--url 'https://api.apify.com/v2/acts/gauravlabs~linkedin-jobs-api/run-sync-get-dataset-items' \
--header 'Authorization: Bearer YOUR_APIFY_TOKEN' \
--header 'Content-Type: application/json' \
--data '{"keywords":"marketing","geo_code":103644278,"maxItems":25,"maxPages":1,"maxProviderCredits":2}'

For larger searches, start an asynchronous run and retrieve its dataset after completion. Apify scheduling and platform integrations can connect results to workflows such as n8n and Make; these are not custom integrations bundled here.

Frequently asked questions

Does it return full job descriptions?

No. Full descriptions, detailed enrichment, applicant counts, recruiter contacts and email discovery are not included.

Can I collect all matching jobs?

No completeness guarantee is offered. Each page returns up to 25 jobs; availability, your limits, short/repeated pages or request failures can reduce the output.

Are repeated searches deduplicated?

Job IDs are deduplicated within a single run. Cross-run deduplication and new-job alerts are not built in; compare exported IDs in your own workflow. There is no resume or double-charge guarantee.

What happens on a failed request?

There are no automatic retries. A service error marks the run failed, and already saved rows remain available. Inspect SUMMARY and report the run ID to the developer.

Has this been live-tested?

A one-page smoke test returned 25 unique Microsoft marketing listings. This is a limited functional check, not an uptime or performance benchmark.

What is the price?

Each delivered unique job listing costs $0.002 on every Apify plan. There is no startup fee. For example, 25 delivered listings cost $0.05 and 100 cost $0.20 in Actor result charges. Apify platform usage may be additional depending on your plan. Empty results, error summaries and within-run duplicates are not billed as job results. Repeated runs can deliver and charge for the same listings again. Previously delivered results remain available and charged if a later page fails. Full job descriptions and job-details enrichment are not included in this price.

Use only with appropriate access and redistribution permissions. Availability and field completeness are not guaranteed. No source-website login or cookies are used by this integration.

Support

For bugs or specific workflow requirements, contact the developer through Apify. Include the run ID, non-sensitive input and expected output. Never send API keys. Field availability may change; no availability or completeness guarantee is offered.

Minimal API example

Store your own Apify token in APIFY_TOKEN; never paste it into public input or code. This example uses the same small input as the prefilled form.

import os
import requests
response = requests.post(
"https://api.apify.com/v2/acts/gauravlabs~linkedin-jobs-api/run-sync-get-dataset-items",
headers={"Authorization": "Bearer " + os.environ["APIFY_TOKEN"]},
json={"keywords":"software engineer"},
timeout=300,
)
response.raise_for_status()
print(response.json())

For large batches, start an asynchronous run with /runs, wait for its final status, and retrieve its default dataset. HTTP success when starting a run does not prove the extraction succeeded.

Minimal output shape (illustrative)

The following shows one documented field, not a fresh result or a promised yield. Inspect the output reference above for the complete schema.

{
"recordType": "job"
}

Practical workflow and accuracy notes

Use onsite_remotes, experience_levels, company_ids and other documented filters for targeted searches. Use maxPages and maxProviderCredits together for pagination; up to 25 results per page is a maximum, not a promise. This price covers search listings only, not job-detail enrichment. Compare jobId in your own scheduled workflow for new-job tracking.