LinkedIn Jobs Scraper & Search API — Remote Jobs & Hiring
Pricing
$2.00 / 1,000 job listings
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
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
9 hours ago
Last modified
Categories
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
| Input | Purpose |
|---|---|
keywords | Required job title or search keywords |
geo_code | Numeric LinkedIn location ID |
company_ids | Company IDs; 1035 is Microsoft |
date_posted | Any time, Past month, Past week or Past 24 hours |
onsite_remotes | Remote, Hybrid and/or On-site |
experience_levels | Internship, Entry level, Associate, Mid-Senior level, Director or Executive |
job_types | Full-time, Part-time, Contract, Temporary, Internship or Other |
easy_apply | Request Easy Apply listings when true |
under_10_applicants | Request this filter; applicant counts are not returned |
sort_by | Most recent or Most relevant |
maxItems | Maximum unique saved jobs, from 1 to 1,000 |
maxPages | Maximum search pages, from 1 to 40 |
maxProviderCredits | Run-level operational budget; 2 credits per attempted page |
start | Starting 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 osimport requestsresponse = 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.