LinkedIn Jobs Scraper — FULL (All Info)
Pricing
$0.90 / 1,000 job results
LinkedIn Jobs Scraper — FULL (All Info)
Extract comprehensive public LinkedIn job data without login, including salary, structured location, expiry, company details, job criteria, applicants, contacts, description HTML, and raw JSON-LD.
Read the public LinkedIn job page without login, cookies, a browser, or a proxy. The Actor combines the guest search card, visible page metadata and schema.org JobPosting JSON-LD, then publishes the shared flat job row. Source-specific identifiers that remain structured are in custom.data.
Use the existing LinkedIn Jobs Scraper — Short Output for a lighter retrieval path. This Actor reads the full public detail page, while both publish the same nomad-agent-job-row-v1 columns.
Output
Every row follows nomad-agent-job-row-v1, the one shape shared by all of
this fleet's job Actors. A row carries every field; null means the
source did not publish that fact, and locations: [] means no
usable location was parsed from the posting. Nothing is guessed.
{"schemaVersion": "nomad-agent-job-row-v1","recordType": "posting","source": "linkedin","id": "a1b2c3","url": "https://example.com/linkedin/jobs/a1b2c3","title": "Senior Backend Engineer","company": "Example Company","locations": ["Bilbao","Spain"],"postedAt": "2026-09-02T00:00:00Z","deadline": "2026-10-15","description": "The complete posting body as plain text, exactly as the source published it — never truncated.","descriptionHtml": "<p>The complete posting body as the source's own markup.</p>","workType": "remote","custom": {"schemaId": "nomad-agent-job-custom-linkedin-v1","data": {"jobUrn": "…","externalJobId": "…","identifier": "…"}}}
| Field | Meaning |
|---|---|
schemaVersion | Always "nomad-agent-job-row-v1". |
recordType | "posting" for a job, "diagnostic" for a row reporting something about the run itself. |
source | Which job source the posting came from, from the collector registry's vocabulary — not the Actor name. |
id | Stable identifier for the posting within source. |
url | Canonical public URL of the posting on the source site. |
title | Job title exactly as the source publishes it, untruncated. |
company | Employer name as published. |
locations | Places the role is based, most specific first — e.g. ["Bilbao", "Spain"]. |
postedAt | When the source published the posting, ISO-8601 UTC (YYYY-MM-DDTHH:MM:SSZ). |
deadline | Closing date for applications as an ISO-8601 calendar date (YYYY-MM-DD). |
description | The complete posting body as plain text — never truncated, never summarised. |
descriptionHtml | The posting body as the source's own markup, preserving lists, headings and links. |
workType | Working arrangement: "remote", "hybrid" or "onsite". |
custom | Facts only this source publishes, as {"schemaId", "data"}. |
A run also emits diagnostic rows — recordType: "diagnostic" with a
warnings array — when it has something to report, such as a source
returning nothing. They are never billed and are easy to filter out on
recordType.
Input
The search and filtering inputs match the compact Actor:
keyword,location,remote,postedWithin,maxItemstitleExclude,companyExclude
There are no partial-detail toggles: this Actor always requests the full public record.
Run through the API
curl -X POST \"https://api.apify.com/v2/acts/nomad-agent~linkedin-full-info-scraper/run-sync-get-dataset-items?token=<YOUR_APIFY_TOKEN>" \-H "Content-Type: application/json" \-d '{"keyword":"software engineer","location":"Spain","maxItems":10}'
The public full page is substantially larger than LinkedIn's guest fragment, so this Actor is intentionally the richer, slower counterpart to the compact Actor. LinkedIn's terms restrict automated access; review the target site's terms and applicable law for your use case.