Tutorials

How to Scrape LinkedIn Jobs and Company Data in 2026

Step-by-step guide to extracting LinkedIn job postings and company profiles using Apify — legally and without getting blocked.

7 min read

Professional networking and job search on laptop representing LinkedIn data extraction

As an Apify affiliate, we may earn a commission from qualifying purchases made through our links, at no extra cost to you. We only recommend tools we believe in.

import BlogCTA from ’../../components/BlogCTA.astro’;

The direct answer: You can scrape LinkedIn job postings and public company profiles using Apify’s pre-built scrapers without writing a single line of code. The LinkedIn Jobs Scraper takes a keyword and location, runs on Apify’s cloud infrastructure, and returns structured JSON or CSV with job titles, company names, salaries, required skills, and full descriptions — typically in under five minutes per batch of several hundred results.


What LinkedIn Data Can You Scrape?

LinkedIn is one of the richest professional data sources on the web, and a meaningful portion of it is publicly visible without authentication. That distinction matters both technically and legally.

Job postings are fully public. Every job listed on LinkedIn is indexed by search engines and accessible without an account. Each listing contains structured fields: job title, company name, location, salary range (where provided), required skills, seniority level, employment type, and full job description. This is the most reliable LinkedIn data to scrape and the most useful for talent sourcing and job market research.

Company pages are mostly public. Company profile pages expose company size, industry, headquarters location, description, specialties, and follower count. Some firmographic details sit behind authentication, but the core fields are accessible.

Public profiles are partially accessible. LinkedIn users who set their profiles to public visibility expose their name, headline, current role, location, work history, education, and skills. Profiles set to private or “connections only” are not accessible without authentication.

What you cannot reliably scrape: direct messages, connection lists, email addresses (unless made public by the user), premium-gated data, and anything requiring active authentication. Attempting to scrape behind a login exposes you to both platform bans and legal risk.


LinkedIn’s Anti-Scraping Reality

LinkedIn has aggressively fought scrapers for years, with mixed results in court. The platform deploys rate limiting, browser fingerprinting, and IP reputation scoring to block automated access.

At the technical level, LinkedIn’s defenses include:

  • TLS and browser fingerprinting — plain HTTP clients are blocked immediately; even headless browsers need convincing behavioral simulation
  • Per-IP rate limits — too many requests from a single IP triggers a soft block, then a hard ban
  • Login walls on deeper content — even public job listings can require a login after repeated visits from the same IP without human-like browsing patterns
  • Frequent front-end changes — LinkedIn updates its markup and internal API endpoints regularly, breaking scrapers that rely on hardcoded selectors

Apify handles all of these at the infrastructure level — rotating residential proxies, randomized request timing, and headless browser rendering with maintained Actor code. You do not need to engineer around any of this yourself.


The landmark case is hiQ Labs v. LinkedIn, where the Ninth Circuit held that scraping publicly accessible data does not violate the Computer Fraud and Abuse Act (CFAA). The US Supreme Court’s 2021 Van Buren ruling reinforced a narrow reading of the CFAA that further weakens LinkedIn’s legal argument against public data scraping.

The practical upshot: scraping publicly visible LinkedIn data is legally defensible in the US as of this writing. LinkedIn’s Terms of Service still prohibit it, which means LinkedIn can terminate accounts used for scraping and rate-limit or block IPs — but they cannot easily pursue criminal or civil CFAA claims for public data.

Where you do have real legal exposure:

  • Scraping behind authentication using your own account credentials
  • Storing and selling personal profile data in ways that violate GDPR or CCPA
  • Building data products with scraped PII without proper consent mechanisms

Apify’s LinkedIn scrapers operate on public data without requiring your LinkedIn credentials. This keeps your account safe and significantly reduces legal surface area. That said: this article is not legal advice. If you are building a commercial product on LinkedIn data, consult a lawyer.


The Apify LinkedIn Scrapers

Apify’s Actor Store has three LinkedIn-focused tools. Here is how they compare:

ActorBest ForLogin Required
LinkedIn Jobs ScraperJob posting data by keyword + locationNo
Mass LinkedIn Profile ScraperBulk public profile enrichment from URL listNo
LinkedIn ScraperGeneral-purpose LinkedIn data extractionNo

For most use cases, start with the LinkedIn Jobs Scraper — it is the most broadly useful, the easiest to configure, and requires no LinkedIn account. Add the Profile Scraper once you have a list of specific people or companies to enrich.


Step-by-Step: Scraping LinkedIn Job Postings

The LinkedIn Jobs Scraper is the primary tool for extracting job posting data at scale. Here is how to use it from zero.

Step 1: Create an Apify account

Go to apify.com and sign up. The free tier includes $5 in monthly compute credits — enough to extract several thousand job postings.

Step 2: Find the LinkedIn Jobs Scraper on Apify

Navigate to the LinkedIn Jobs Scraper on the Apify Store. Click Try for free to open the input form.

Step 3: Input search keywords, location, and filters

The scraper’s input form asks for:

  • Search keywords — e.g., "senior data engineer", "product manager", "frontend developer"
  • Location — city, region, or country name as you would type it on LinkedIn
  • Date posted — filter to past 24 hours, week, or month
  • Experience level — Entry, Associate, Mid-Senior, Director, Executive
  • Job type — Full-time, Part-time, Contract, Remote
  • Maximum results — set a cap to control compute usage

You can also paste a raw LinkedIn jobs search URL directly if you have already built a complex filtered search on LinkedIn’s interface.

Step 4: Run and export

Click Save & Run. The scraper runs on Apify’s cloud — no infrastructure on your end. A run pulling 500 job postings typically completes in two to four minutes.

Once the run completes, go to the Dataset tab. Export as JSON, CSV, Excel, or JSONL. For downstream processing in Python or a BI tool, JSON or CSV are the most practical.


What Job Data You Get

A typical LinkedIn Jobs Scraper result set includes the following fields per posting:

FieldDescriptionExample
jobTitlePosition title as listedSenior Backend Engineer
companyNameHiring company nameStripe
companyUrlLinkedIn company page URLlinkedin.com/company/stripe
locationCity, region, countrySan Francisco, CA, United States
salarySalary range (where provided)$160,000 - $220,000/yr
jobTypeEmployment classificationFull-time
seniorityLevelExperience level requiredMid-Senior level
industryCompany industryFinancial Services
jobDescriptionFull job description textResponsibilities: …
requiredSkillsTagged skills from the listingPython, Kubernetes, PostgreSQL
applyUrlDirect application linklinkedin.com/jobs/view/…
postedDateDate the listing was posted2026-06-10
applicantCountNumber of applicants (where shown)247 applicants

The jobDescription field contains the full plain-text body of the listing, which is particularly valuable for NLP analysis — skill extraction, seniority inference, and compensation benchmarking across large datasets.


Step-by-Step: Bulk Profile Extraction with Mass LinkedIn Profile Scraper

When you already have a list of LinkedIn profile URLs — sourced from a job posting, a conference attendee page, or a prior scrape — the Mass LinkedIn Profile Scraper lets you enrich those URLs at scale.

The workflow:

  1. Prepare a CSV or JSON list of LinkedIn profile URLs (e.g., https://www.linkedin.com/in/username)
  2. Upload the list as the scraper’s input
  3. Run the Actor — it visits each profile and extracts available public fields
  4. Export enriched profiles with name, headline, current company, location, work history, education, and skills

This is the tool for talent sourcing pipelines where you have found candidates through a Boolean search or job posting and now want to build a structured database of their backgrounds. The scraper respects visibility settings and will return partial data or skip private profiles.

The key difference between the two scrapers: the Jobs Scraper discovers opportunities (what jobs are out there); the Profile Scraper enriches people (who has what background). In a recruiting workflow, you typically use both in sequence.


Use Cases

Talent sourcing and competitive intelligence. Recruiting teams use LinkedIn job scraping to monitor when competitors are hiring, what roles they are filling, and which skills they are prioritizing. If a competitor suddenly posts 15 senior ML engineer roles, that is a signal worth knowing. Job posting volume is a reliable proxy for company growth before it shows up in press releases.

Salary benchmarking. Compensation data is notoriously opaque. By scraping salary ranges from job postings across hundreds of companies in a given role, you can build a real-time salary distribution that is more current than annual survey reports — useful for HR teams setting comp bands and for candidates negotiating offers.

Skills gap analysis. Scraping job descriptions at scale and running keyword extraction against the requiredSkills field gives you a live view of what the market is actually demanding. See our state of remote tech jobs report for an example of what this analysis looks like at scale.

Lead generation for HR tech and B2B SaaS. Companies posting high volumes of jobs in a specific category are warm leads for recruiting software, ATS platforms, and employer branding services. Scraping job postings gives you a list of actively hiring companies with seniority mix, tech stack signals, and hiring velocity — far more actionable than a static company list. Read our guide on using web scraping for lead generation for more on this pattern. For a structured breakdown of how lead generation workflows are built, see the lead generation use case page.


Building a Job Market Dashboard

A practical pipeline for a recurring job market dashboard looks like this:

Collection layer. Schedule the LinkedIn Jobs Scraper on Apify to run daily with a fixed set of search queries (e.g., 20 role/location combinations relevant to your market). Apify’s built-in scheduler handles this with no additional infrastructure. Connect to Google Sheets via Apify’s webhook integration for a no-code storage layer — every new run automatically appends results to your sheet.

Deduplication. Deduplicate on applyUrl to avoid double-counting reposts. A simple UNIQUE() formula in Google Sheets handles this for small datasets; for larger pipelines, use Apify’s Dataset API to push incrementally to a cloud database (PostgreSQL, BigQuery, or Supabase work well).

Processing layer. A lightweight Python script (pandas or polars) normalizes salary strings to numeric ranges, extracts skill tokens from jobDescription, and computes weekly aggregates by role, location, and company.

Visualization layer. Connect BigQuery or Postgres to Looker Studio, Metabase, or Observable. Track posting volume trends, median salary by role, and top required skills over time.

A single Apify free account can sustain a dashboard covering 3–5 search queries running daily. For broader coverage (20+ queries, larger result sets), the $49/month Starter plan is sufficient for most research teams.


Verdict and Recommendation

For recruiters, HR tech teams, and market researchers, the LinkedIn Jobs Scraper on Apify is the most practical starting point for LinkedIn data extraction in 2026. It requires no code, handles anti-bot infrastructure automatically, and outputs clean structured data that plugs directly into spreadsheets, BI tools, or custom pipelines.

Start with the LinkedIn Jobs Scraper for job posting data — it is the more broadly useful tool and the easier entry point. Add the Mass LinkedIn Profile Scraper once you have a candidate URL list to enrich. Together, they cover the full recruiting intelligence workflow without requiring a dedicated data engineering team.

The legal picture for public data scraping is favorable and has strengthened over recent years, but it is not absolute — be thoughtful about how you store and use personal profile data, and stay inside the bounds of public-only information.

Share this:

Tags

#linkedin #web scraping #tutorial #jobs #lead generation
✍️

Hamza Alwan

Lead Scraper Specialist

Passionate about building efficient scrapers and helping businesses automate their workflows at scale.