LinkedIn Jobs Scraper (Pay-Per-Event) avatar

LinkedIn Jobs Scraper (Pay-Per-Event)

Pricing

Pay per event

Go to Apify Store
LinkedIn Jobs Scraper (Pay-Per-Event)

LinkedIn Jobs Scraper (Pay-Per-Event)

Scrape LinkedIn job listings via the public guest API — no login or cookies. Filter by keyword, location, job type, experience level, workplace type and date posted. Returns title, company, salary, full description, seniority, employment type and applicant count. HTTP-only drop-in.

Pricing

Pay per event

Rating

0.0

(0)

Developer

Arnas

Arnas

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

a day ago

Last modified

Categories

Share

LinkedIn Jobs Scraper extracts job posting data from LinkedIn using its public guest API — no login, cookies, or account required. Search by keyword and location, filter by job type, experience level, workplace type and date posted, and get structured job data: title, company, location, salary, full description, seniority level, employment type, applicant count and more. It's HTTP-only (no headless browser), so it's fast and lightweight, and it runs on the Apify platform with API access, scheduling, integrations, proxy rotation and monitoring built in.

This actor is a pay-per-event drop-in for automation-lab/linkedin-jobs-scraper: the same input fields and output field names, at the same pricing ($0.005 / run start + $0.58 / 1,000 jobs) — no monthly fee. What you gain over the reference: run-level deduplication, batch query × location, a machine-readable postedDate, migration-safe resumable state, and an optional custom map function.

What does LinkedIn Jobs Scraper do?

It calls LinkedIn's logged-out ("guest") jobs endpoints — the same data anyone sees browsing LinkedIn jobs without signing in — paginates the search results, and (optionally) fetches each job's detail page for the full description, salary, seniority, employment type, job function, industries and applicant count. Results are written to a structured dataset you can export as JSON, CSV, or Excel, or pull via the Apify API.

Why use LinkedIn Jobs Scraper?

  • No login or cookies — uses LinkedIn's public guest endpoints, so there's no session to break.
  • Full job detail extraction — salary, description (HTML + plain text), seniority, job function, industries and applicant count.
  • Hiring-intent lead generation — find companies actively hiring for a role, then prioritize outreach.
  • Recruiting & salary intelligence — monitor competitor hiring and benchmark compensation from live pay-transparency data.
  • Job-market research — analyze demand, remote-vs-onsite mix, and job-description language at scale.
  • Fast and lightweight — pure HTTP + cheerio parsing, low memory, no browser overhead.
  • Flexible filters — keyword, location, job type, experience level, workplace type, date posted and sort order.

How to use LinkedIn Jobs Scraper

  1. Enter a Search query (e.g. software engineer, data analyst, marketing manager).
  2. Enter a Location (e.g. New York, London, United States) or leave it empty to search worldwide.
  3. Optionally filter by job type, experience level, workplace type or date posted, and choose a sort order.
  4. Set Max jobs (up to 1,000 per search).
  5. Leave Scrape full job details on for descriptions and salary, or turn it off for faster listing-only runs.
  6. Click Start and download your results as JSON, CSV, or Excel — or access them via the Apify API.

Input

Configure the run from the Input tab or via the API. The input matches automation-lab/linkedin-jobs-scraper field-for-field.

ParameterTypeDefaultDescription
searchQuerystringrequiredJob title, keyword, or company name
locationstring""City, state, country, or Remote; empty = worldwide
maxJobsinteger50Max jobs to scrape per search (up to 1,000)
jobTypestringallF=Full-time, P=Part-time, C=Contract, T=Temporary, I=Internship
experienceLevelstringall1=Internship, 2=Entry, 3=Associate, 4=Mid-Senior, 5=Director, 6=Executive
workplaceTypestringall1=On-site, 2=Remote, 3=Hybrid
datePostedstringallr86400=Past 24h, r604800=Past week, r2592000=Past month
sortBystringRR=Most relevant, DD=Most recent
scrapeJobDetailsbooleantrueFetch full details (description, salary, criteria, applicants)
maxRequestRetriesinteger3Retry budget per request; each retry rotates the proxy IP
proxyConfigurationobjectApify Proxy (datacenter)Proxy settings

Input example

{
"searchQuery": "software engineer",
"location": "United States",
"maxJobs": 50,
"jobType": "F",
"workplaceType": "2",
"scrapeJobDetails": true
}

Tip: when calling the actor via the Apify API you can also pass searchQuery and location as lists of strings — every query is searched in every location in one run.

Output

Each job is one dataset row. You can download the dataset in various formats such as JSON, HTML, CSV, or Excel.

{
"id": "4442187240",
"title": "Data Analyst 2",
"url": "https://www.linkedin.com/jobs/view/data-analyst-2-at-new-york-state-department-of-health-4442187240",
"companyName": "New York State Department of Health",
"companyLinkedinUrl": "https://www.linkedin.com/company/nysdoh",
"companyLogo": "https://media.licdn.com/dms/image/v2/.../nysdoh_logo",
"location": "Albany, NY",
"postedAt": "1 week ago",
"postedDate": "2026-07-17",
"salary": "$86,681.00/yr - $109,650.00/yr",
"applicantsCount": 109,
"workplaceType": "Remote",
"descriptionHtml": "<strong>Minimum Qualifications</strong> ...",
"descriptionText": "Minimum Qualifications ...",
"seniorityLevel": "Not Applicable",
"employmentType": "Full-time",
"jobFunction": "Science, Information Technology, and Engineering",
"industries": "Public Health",
"applyUrl": "https://www.linkedin.com/jobs/view/data-analyst-2-at-new-york-state-department-of-health-4442187240",
"benefits": null,
"searchQuery": "data analyst",
"searchLocation": "New York",
"scrapedAt": "2026-07-27T10:38:17.961Z"
}

Data fields

FieldDescription
idLinkedIn job posting ID
titleFull position title
urlDirect LinkedIn job posting link
companyNameHiring company
companyLinkedinUrlCompany's LinkedIn page
companyLogoCompany logo image URL
locationJob location (city, state, country)
postedAtRelative posted label (e.g. "3 days ago")
postedDateMachine-readable posted date (YYYY-MM-DD)
salarySalary range when disclosed
applicantsCountNumber of applicants (integer)
workplaceTypeRemote / On-site / Hybrid (when a workplace filter is set)
descriptionHtmlFull job description (HTML)
descriptionTextFull job description (plain text)
seniorityLevelEntry, Mid-Senior, Director, etc.
employmentTypeFull-time, Part-time, Contract, etc.
jobFunctionEngineering, Marketing, Sales, etc.
industriesIndustry sectors
applyUrlApplication link (the job page)
benefitsListed benefits, when present
searchQuery / searchLocationThe query and location this row came from
scrapedAtISO timestamp of extraction

Fields that a listing doesn't disclose (salary, benefits) are returned as null.

How much does it cost to scrape LinkedIn jobs?

This actor uses pay-per-event pricing:

EventPriceDescription
Run started$0.005One-time charge when the scraper starts
Job scraped$0.58 / 1,000Per job written to the dataset (deduplicated by job ID)

Scraping 1,000 jobs costs about $0.585 ($0.005 start + $0.58 for listings). Higher Apify subscription tiers get a lower per-job rate automatically. Apify's free plan includes monthly platform credits, so you can scrape thousands of jobs per month for free. A job is billed only after it is successfully written, so failed fetches never cost you.

Tips for best results

  • Use specific keywordsreact developer beats developer for relevance.
  • Combine filters (job type + experience level + workplace type) to narrow results.
  • Set scrapeJobDetails: false for faster runs when the listing summary (title, company, location) is enough.
  • Sort by DD (Most recent) to catch the freshest postings first.
  • LinkedIn caps a query at ~1,000 results — use more specific queries or split by location to go deeper.
  • If you see frequent rate limits on very large runs, switch proxyConfiguration to RESIDENTIAL groups.

FAQ and support

Does it require a LinkedIn account? No. It uses LinkedIn's public guest API, which needs no login, cookies, or tokens.

What's the maximum number of results? LinkedIn's guest API caps search results at ~1,000 per query. For more, run multiple searches with different keyword/location/filter combinations.

Why are some fields null? Not every listing discloses salary, workplace type, or benefits. When an employer omits them, the field is null.

Is it legal to scrape LinkedIn? This actor is provided for educational and research purposes and accesses only publicly available, logged-out data. You are responsible for ensuring your use complies with LinkedIn's Terms of Service and applicable laws. Use scraped data responsibly.

Known limitations: LinkedIn occasionally rotates its HTML structure — if extraction breaks, please open an issue on the Issues tab. The guest API does not expose company-detail pages (employee count, revenue) or a guest-usable external apply URL, so applyUrl points to the LinkedIn job page.

Found a bug or need a custom variant? Open an issue on the Issues tab.