LinkedIn Jobs Scraper avatar

LinkedIn Jobs Scraper

Pricing

from $0.99 / 1,000 results

Go to Apify Store
LinkedIn Jobs Scraper

LinkedIn Jobs Scraper

Search public LinkedIn job postings by keyword + location and get structured listings — title, company, location, posted date and job link — with an option to pull the full job description, seniority, employment type, applicant count and salary. Public job postings only; no login.

Pricing

from $0.99 / 1,000 results

Rating

0.0

(0)

Developer

Farhan Febrian Nauval

Farhan Febrian Nauval

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

5 days ago

Last modified

Share

Search public LinkedIn job postings by keyword and location and get clean, structured results — job title, company, location, posting date, and a direct link — with an option to pull the full job description, plus seniority, employment type, applicant count, and salary. No account, no login, no API key.

Public job postings only. This actor collects public job listings — the kind anyone can browse without signing in. It does not touch personal profiles, contacts, emails, or anything behind a login.

Why use this actor

  • Keyword + location search, exactly like searching jobs on LinkedIn yourself.
  • Salary data when it's shown — many postings include the pay range (e.g. $200,000.00/yr - $300,000.00/yr), captured verbatim.
  • Applicant count — see how many people have applied (e.g. 87 applicants, Over 200 applicants) to gauge competition.
  • Full job descriptions on demand — flip one switch to add the complete description, seniority level, employment type, job function, and industries for every job.
  • Filter your search — remote-only, jobs from a specific company, or only jobs posted in the last day / week / month.
  • Clean JSON output, ready for spreadsheets, databases, or your own pipelines.
  • Nothing fails silently — if a search returns nothing, you get a clear reason, not an empty file.

How it works

  1. You enter search keywords and a location (and optionally: remote-only, a company, or a date filter).
  2. The actor runs that search on LinkedIn and reads the public job listings.
  3. Optionally, it opens each job to add the full description, seniority, employment type, applicant count, and salary.
  4. Results stream into your dataset, ready to download as JSON, CSV, or Excel.

You don't manage any of the fetching, retries, or blocking — just describe the search you want.

LinkedIn's public job search returns results in pages of about 10, up to roughly 1000 jobs per search. The actor pages through automatically and stops cleanly when it reaches the end (or your maxItems cap). To cover a larger pool, split one broad search into several focused ones — for example by narrower keywords, a tighter location, or the date filter.

Input

{
"keywords": "software engineer",
"location": "United States",
"datePosted": "pastWeek",
"remote": false,
"fetchDetail": true,
"maxItems": 50,
"maxConcurrency": 4,
"proxyConfiguration": {
"useApifyProxy": true,
"apifyProxyGroups": ["RESIDENTIAL"]
}
}
FieldTypeDescription
keywordsstringSearch keywords — job title, skill, or company. Example: software engineer.
locationstringCity, state, country, or region. Example: United States, London, Remote. Leave empty to search everywhere.
companyIdstringOptional. Show only jobs from one company (its LinkedIn numeric company ID, from the company page URL).
datePostedstringany (default), past24h, pastWeek, or pastMonth.
remotebooleanIf true, only return jobs marked as remote. Default false.
fetchDetailbooleanIf true, opens each job to add the full description, seniority, employment type, job function, industries, applicant count, and salary. Slower but much richer. Default false.
maxItemsintegerOverall cap on jobs returned. 0 = all available (up to ~1000). Default 50.
maxConcurrencyintegerHow many job pages to open in parallel when fetchDetail is on. Default 4.
proxyConfigurationobjectResidential proxy strongly recommended. Defaults to the United States if no country is set.

Output

One record per job. Below is a real record from the search software engineer in United States — with fetchDetail off:

{
"_input": "software engineer @ United States",
"_source": "S1-guest-search",
"_scrapedAt": "2026-07-10T17:44:29Z",
"recordType": "JOB",
"jobId": "4438850133",
"title": "Software Engineer (All Levels)",
"company": "Blossom",
"companyLinkedinUrl": "https://www.linkedin.com/company/join-blossom-health",
"location": "New York, NY",
"postedDate": "2026-07-09",
"postedText": "18 hours ago",
"salaryText": null,
"jobUrl": "https://www.linkedin.com/jobs/view/software-engineer-all-levels-at-blossom-4438850133",
"searchKeywords": "software engineer",
"searchLocation": "United States",
"searchCompanyId": null,
"searchDatePosted": "any",
"searchRemote": false
}

When fetchDetail is true, each record also gets the full job content. Here is a real detail record — note the salary and applicant count:

{
"_source": "S1-guest-search+S2-detail",
"jobId": "4434251228",
"title": "Systems Engineer",
"company": "Blacksmith",
"companyLinkedinUrl": "https://www.linkedin.com/company/blacksmithrun",
"location": "New York, NY",
"postedDate": "2026-06-27",
"jobUrl": "https://www.linkedin.com/jobs/view/systems-engineer-at-blacksmith-4434251228",
"seniority": "Not Applicable",
"employmentType": "Full-time",
"jobFunction": "Information Technology",
"industries": "Software Development",
"applicantCount": "87 applicants",
"salary": "$200,000.00/yr - $300,000.00/yr",
"descriptionText": "About Blacksmith\nWe started by building infrastructure to run CI workloads really fast. Our first product helps companies run GitHub Actions substantially faster and cheaper by owning and operating our own global fleet of bare-metal machines rather than rentin... (full text continues)",
"descriptionHtml": "<div class=\"show-more-less-html__markup ...\"> ... </div>",
"jobCriteria": {
"Seniority level": "Not Applicable",
"Employment type": "Full-time",
"Job function": "Information Technology",
"Industries": "Software Development"
}
}

Output fields

FieldTypeDescription
_inputstringThe search that produced this record.
_sourcestringWhere the data came from — S1-guest-search (search) or S1-guest-search+S2-detail (search + full detail).
_scrapedAtstringUTC timestamp when the record was collected.
recordTypestringAlways JOB.
jobIdstringLinkedIn's unique job posting ID.
titlestringJob title.
companystringEmployer name.
companyLinkedinUrlstringLink to the company's LinkedIn page.
locationstringJob location as shown.
postedDatestringPosting date (YYYY-MM-DD).
postedTextstringHuman-readable posting age, e.g. 18 hours ago.
salaryTextstringSalary snippet shown on the search card, when present.
jobUrlstringDirect link to the job posting.
searchKeywords / searchLocationstringThe search inputs, echoed for traceability.
searchCompanyId / searchDatePosted / searchRemotemixedThe filters used for this run.
senioritystringSeniority level, e.g. Mid-Senior level. (only with fetchDetail)
employmentTypestringe.g. Full-time, Contract. (only with fetchDetail)
jobFunctionstringJob function, e.g. Engineering and Information Technology. (only with fetchDetail)
industriesstringIndustry, e.g. Software Development. (only with fetchDetail)
applicantCountstringNumber of applicants, e.g. 87 applicants or Over 200 applicants. (only with fetchDetail)
salarystringSalary range from the job page, e.g. $200,000.00/yr - $300,000.00/yr, when shown. (only with fetchDetail)
descriptionTextstringFull job description as plain text. (only with fetchDetail)
descriptionHtmlstringFull job description with original formatting. (only with fetchDetail)
jobCriteriaobjectAll job-criteria pairs exactly as shown on the posting. (only with fetchDetail)

Searches that return nothing produce a record with an _error field instead of job data — so a run never fails silently.

Notes

  • Salary and applicant count appear only with fetchDetail on, and only when the posting itself shows them (salary is most common for postings in locations with pay-transparency rules).
  • Each search returns up to ~1000 jobs. For a bigger pool, split into several focused searches (narrower keywords, tighter location, or the date filter).
  • Public job postings only — no login, no personal data.
  • Residential proxy is recommended for reliable results at scale.