LinkedIn Jobs URL Scraper avatar

LinkedIn Jobs URL Scraper

Pricing

$1.50 / 1,000 results

Go to Apify Store
LinkedIn Jobs URL Scraper

LinkedIn Jobs URL Scraper

Scrape detailed job listing data from LinkedIn using direct job URLs. Extract title, company, location, employment type, description, seniority level, skills, and more — fast and easy.

Pricing

$1.50 / 1,000 results

Rating

0.0

(0)

Developer

Hamza

Hamza

Maintained by Community

Actor stats

1

Bookmarked

53

Total users

15

Monthly active users

5 days ago

Last modified

Share

LinkedIn Jobs URL Scraper 💼🔗

Already have the job links? Paste them in and get back clean, structured JSON for every posting — full descriptions, company info, salary, job criteria and applicant counts. No keyword search, no login, no cookies.

✨ What you get

One record per job URL:

FieldDescription
jobId / url / inputUrlThe job's id, its canonical LinkedIn URL, and the exact URL you submitted
titleJob title
companyName / companyUrl / companyLogoThe hiring company
locationWhere the job is based
postedAt / postedTimeTextPosted date (derived to the day) + LinkedIn's "6 days ago"
salarySalary when LinkedIn shows one
seniorityLevel / employmentType / jobFunction / industriesJob criteria
applicantsCount / applicantsTextHow many people have applied
descriptionText / descriptionHtmlThe full job description, plain text and HTML
scrapedAtWhen the record was captured

⚙️ Options

  • LinkedIn job URLs — one per line. Accepts any LinkedIn job link:
    • https://www.linkedin.com/jobs/view/4350364210
    • the full slug form, …/jobs/view/data-engineer-at-netflix-4350364210
    • a search/collection link carrying a job, …/jobs/search/?currentJobId=4350364210
    • or a bare job id, 4350364210
  • Duplicate links (same job id) are scraped once.

🚀 Example

Input:

{
"jobUrls": [
"https://www.linkedin.com/jobs/view/4350364210",
"https://www.linkedin.com/jobs/view/data-engineer-4317496119"
]
}

One record from the output:

{
"jobId": "4350364210",
"url": "https://www.linkedin.com/jobs/view/4350364210",
"inputUrl": "https://www.linkedin.com/jobs/view/4350364210",
"title": "Data Engineer (L5)",
"companyName": "Netflix",
"companyUrl": "https://www.linkedin.com/company/netflix",
"companyLogo": "https://media.licdn.com/dms/image/v2/.../netflix_logo",
"location": "United States",
"postedAt": "2026-06-12T00:00:00.000Z",
"postedTimeText": "6 days ago",
"salary": null,
"seniorityLevel": "Not Applicable",
"employmentType": "Full-time",
"jobFunction": "Other",
"industries": "Entertainment Providers",
"applicantsCount": 200,
"applicantsText": "Over 200 applicants",
"descriptionHtml": "<p>At Netflix, our mission is to entertain the world …</p>",
"descriptionText": "At Netflix, our mission is to entertain the world …",
"scrapedAt": "2026-06-18T02:05:45.000Z"
}

🌐 Use it as a REST API (Standby)

Besides normal runs, this Actor answers HTTP requests instantly - no run to start, no waiting for a container. Call it from your own app, script or no-code tool with your Apify API token.

Endpoints

MethodPathPurpose
GET/jobs?url=<job url>&url=<job url>Scrape up to 20 jobs, URLs in the query string
POST/jobsSame, with a JSON body

GET example

GET /jobs?url=https://www.linkedin.com/jobs/view/4350364210

POST example

{
"jobUrls": [
"https://www.linkedin.com/jobs/view/4350364210",
"https://www.linkedin.com/jobs/view/data-engineer-4317496119"
],
"proxyCountry": "us"
}

Response (200)

{
"jobs": [ { "jobId": "4350364210", "title": "Data Engineer (L5)", "companyName": "Netflix", "...": "same fields as above" } ],
"errors": [ { "input": "https://www.linkedin.com/jobs/view/9999999999", "jobId": "9999999999", "message": "Job not found or no longer available." } ],
"counts": { "requested": 2, "scraped": 1, "failed": 1, "charged": 1 }
}

Errors

  • 400 - the request has no valid job URL, the JSON is malformed, or there are more than 20 URLs. The response explains the problem and includes a working example.
  • Jobs that cannot be read (removed, unavailable) never fail the request - they are listed in errors and you are only charged for jobs returned in jobs.
  • The server keeps answering other requests whatever happens in one of them.

💡 Use cases

  • Enrich a shortlist — turn a list of job links into a full spreadsheet of structured data.
  • ATS / pipeline import — feed clean job records into your own systems.
  • Monitoring — re-scrape saved job URLs to track applicant counts over time.
  • Pair with search — collect job URLs elsewhere, then resolve them here in bulk.

💳 Pricing

You pay per job scraped (both in normal runs and API requests) — no subscriptions, no hidden compute costs. Free runs scrape up to 10 job URLs; paid members are unlimited (see FAQ).

❓ FAQ

Do I need a LinkedIn account or cookies? No. This scraper uses LinkedIn's public guest job pages — no login, password or session cookie.

What job URLs work? Any link that points to a specific job: the /jobs/view/<id> form (with or without the title slug), or a link with a currentJobId=<id> parameter. Links that don't contain a job id are skipped with a note in the log.

How accurate is postedAt? LinkedIn's public job page only exposes a relative time ("6 days ago"), so postedAt is derived to the day and postedTimeText keeps the exact wording.

Why was I limited to 10 jobs? Free runs are capped at 10 job URLs. You can still submit more, but only the first 10 are scraped and the run logs an upgrade notice. Upgrade your Apify plan to scrape unlimited URLs per run.