LinkedIn Jobs Search Scraper avatar

LinkedIn Jobs Search Scraper

Pricing

from $2.99 / 1,000 linkedin job records

Go to Apify Store
LinkedIn Jobs Search Scraper

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

Jobs API

Maintained by Community

Actor stats

0

Bookmarked

35

Total users

5

Monthly active users

7 days ago

Last modified

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

FieldTypeDescription
jobIdstringOfficial numeric LinkedIn posting ID
titlestringPublic job title
companyNamestringHiring company
locationTextstringPublic job location
employmentTypestringEmployment type when published
salaryobjectPublished range, currency, and period
descriptionstringClean full description text
requirementsarrayRequirement items inferred from labeled sections
publicUrlstringVerified 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 searchMultiple for several keyword variants; results are deduplicated by posting ID and canonical URL.
  • Use single or multiple when you already have exact public detail URLs.
  • Keep concurrency modest. Higher values can increase target throttling without improving throughput.
  • Inspect RUN_HEALTH and RUN_METADATA to 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.