LinkedIn Jobs Search Scraper
Pricing
from $2.99 / 1,000 linkedin job records
LinkedIn Jobs Search Scraper
Scrape job listings from LinkedIn Jobs. Extract job titles, companies, locations, salary ranges, seniority levels, employment types, and application insights from the world's largest professional network.
Pricing
from $2.99 / 1,000 linkedin job records
Rating
0.0
(0)
Developer
Jobs API
Maintained by CommunityActor stats
0
Bookmarked
35
Total users
5
Monthly active users
7 days ago
Last modified
Categories
Share
What does LinkedIn Jobs Search Scraper do?
The Actor's intended scope is extracting complete, source-backed job postings from LinkedIn Jobs, using the input modes below. Current access policy: every valid run is terminally skipped before any source request. The root AGENTS.md ledger records that the ordinary public search displayed LinkedIn's source-authored “Sign in to view more jobs” modal and exposed no accessible job cards or details. No HTTP status was observed. The source comparison remains unqualified; this is not a claim that all LinkedIn pages are inaccessible.
Until new, authorized evidence shows the ordinary public route is readable without the sign-in gate, the Actor writes no Dataset records and reports status: SUCCEEDED with resultStatus: SKIPPED. It does not dismiss the modal, authenticate, or try guest endpoints/alternate routes. The recorded reason and ledger reference are included in RUN_SUMMARY; no synthetic request receipts or Dataset evidence are created.
Original intended features (currently gated)
These describe the retained product contract, not results currently available under the recorded access policy.
- Search by keyword, location, posting age, employment type, experience, workplace type, salary, and education filters.
- Enrich every accepted search card with its public detail page.
- Run several searches and deduplicate official numeric posting IDs.
- Extract structured descriptions, sections, responsibilities, requirements, benefits, salary, and application metadata.
- Fail closed: incomplete records and access diagnostics never appear as jobs.
- Schedule runs and consume results through Apify datasets, API access, webhooks, and integrations.
Intended output fields if access becomes available
| Field | Type | Description |
|---|---|---|
jobId | string | Official numeric LinkedIn posting ID |
title | string | Public job title |
companyName | string | Hiring company |
locationText | string | Public job location |
employmentType | string | Employment type when published |
salary | object | Published range, currency, and period |
description | string | Clean full description text |
requirements | array | Requirement items inferred from labeled sections |
publicUrl | string | Verified canonical LinkedIn job URL |
Retained input modes (currently gated)
The public input contract remains unchanged: search, searchMultiple, single, multiple, and startUrls are still accepted and validated. While the recorded access policy is active, none of these modes initiate source requests; each valid input ends as SUCCEEDED / SKIPPED with zero rows and zero source requests.
Cost and run status
Under the current skip policy, the Actor makes no LinkedIn requests. Platform status is SUCCEEDED or FAILED; resultStatus is one of COMPLETE, LIMITED, SKIPPED, DEFERRED, NO_DATA, or FAILED. A later non-block failure after real rows have been stored is SUCCEEDED / LIMITED; a fatal zero-row failure is FAILED / FAILED; a verified clean empty search may be SUCCEEDED / NO_DATA.
Input
See the input tab for the retained configuration options. Direct modes validate HTTPS URLs on www.linkedin.com or linkedin.com; search filters retain the original guest-search parameter contract. maxItems is capped at 50, maxPages at 10, and detail concurrency at 8. These inputs are validated but do not trigger requests while the access gate is active.
Example:
{"mode": "search","keywords": "software engineer","location": "United States","maxItems": 3,"maxPages": 1,"concurrency": 4,"requestTimeoutSecs": 25,"datePosted": "anyTime","jobType": "","experienceLevel": "","remoteFilter": "","salaryMin": 0,"salaryMax": 0,"educationLevel": ""}
Output
If a future authorized source check clears the access gate, dataset records must have a verified canonical identity, HTTP-200 detail response, title, employer, location, and description of at least 80 characters. The example below illustrates the record shape only; it is not a source observation, run receipt, or qualification evidence.
{"recordType": "job","jobId": "4458952044","title": "Python Developer","companyName": "Example Company","locationText": "Austin, TX","publicUrl": "https://www.linkedin.com/jobs/view/python-developer-at-example-4458952044","detailVerified": true,"sourceStatusCode": 200}
Optional values are omitted when LinkedIn does not publish them. Empty arrays, blank strings, nulls, placeholders, and diagnostic objects are not written to the job dataset. RUN_DIAGNOSTICS and RUN_SKIPS preserve structured failure evidence separately.
Tips and advanced options
- Use
searchMultiplefor several keyword variants; results are deduplicated by posting ID and canonical URL. - Use
singleormultiplewhen you already have exact public detail URLs. - Keep concurrency modest. Higher values can increase target throttling without improving throughput.
- Inspect
RUN_HEALTHandRUN_METADATAto distinguish local and Apify Cloud execution. - Re-run a blocked input later rather than weakening the complete-record rules.
FAQ, disclaimer, and support
Why are there no rows?
The current recorded source evidence shows a sign-in modal instead of accessible job cards or details. The Actor therefore returns SUCCEEDED / SKIPPED without making requests or writing Dataset rows.
Does the Actor bypass LinkedIn login or access controls?
No. It does not log in, dismiss the sign-in modal, or try guest endpoints/alternate routes. Source comparison remains unqualified until the normal public route is ordinarily readable without the recorded gate.
This Actor extracts only publicly available job and company information. Results can still contain personal data published by the source. Personal data is protected by the GDPR and other regulations; use it only with a legitimate purpose and consult legal counsel if unsure. Follow LinkedIn's terms and applicable law. Use the Issues tab for reproducible problems and the API tab for programmatic access.