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
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.
Legal Considerations: The hiQ v. LinkedIn Ruling
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:
| Actor | Best For | Login Required |
|---|---|---|
| LinkedIn Jobs Scraper | Job posting data by keyword + location | No |
| Mass LinkedIn Profile Scraper | Bulk public profile enrichment from URL list | No |
| LinkedIn Scraper | General-purpose LinkedIn data extraction | No |
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:
| Field | Description | Example |
|---|---|---|
jobTitle | Position title as listed | Senior Backend Engineer |
companyName | Hiring company name | Stripe |
companyUrl | LinkedIn company page URL | linkedin.com/company/stripe |
location | City, region, country | San Francisco, CA, United States |
salary | Salary range (where provided) | $160,000 - $220,000/yr |
jobType | Employment classification | Full-time |
seniorityLevel | Experience level required | Mid-Senior level |
industry | Company industry | Financial Services |
jobDescription | Full job description text | Responsibilities: … |
requiredSkills | Tagged skills from the listing | Python, Kubernetes, PostgreSQL |
applyUrl | Direct application link | linkedin.com/jobs/view/… |
postedDate | Date the listing was posted | 2026-06-10 |
applicantCount | Number 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:
- Prepare a CSV or JSON list of LinkedIn profile URLs (e.g.,
https://www.linkedin.com/in/username) - Upload the list as the scraper’s input
- Run the Actor — it visits each profile and extracts available public fields
- 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.
Tags
Hamza Alwan
Lead Scraper Specialist
Passionate about building efficient scrapers and helping businesses automate their workflows at scale.
Amazon Price Monitoring: Complete Guide to Competitor Analysis
Learn how to track Amazon prices, monitor competitor products, and automate price intelligence. Build a competitive edge with real-time product data extraction.
Apify MCP Server: Give Your AI Agent Access to 39,000+ Web Scrapers
How to connect Claude, GPT-4, and other AI agents to Apify's MCP server and give them access to 39,000+ real-time web scrapers — in under 10 minutes.
Apify Pricing Explained 2026: Cost, Compute Units & Is It Free?
A complete guide to Apify's 2026 pricing model. Understand Compute Units (CUs), proxy costs, and how to start scraping the web for free.