How to Scrape LinkedIn with Apify in 2026 (Profiles, Jobs, Companies)
LinkedIn remains the richest public source for B2B context—titles, employers, skills, and hiring signals. It is also heavily defended: datacenter IPs, headless fingerprints, and aggressive rate limits break naive scrapers quickly.
This tutorial explains what is realistically extractable from public pages, how Apify Actors apply residential proxies and browser automation, and how to wire results into enrichment and CRM workflows—without paying LinkedIn API fees for basic discovery use cases.
Quick Answer
Apify's LinkedIn Scraper extracts public profiles, companies, job listings, and contact information from LinkedIn. No API costs. Uses residential proxies to handle LinkedIn's anti-scraping.
In practice you will combine purpose-built Actors (for example LinkedIn Profile Scraper and LinkedIn Jobs Scraper) with low concurrency, patience on large lists, and a clear compliance story for how you use personal data afterward.
Legal and policy context (short)
- United States: In hiQ Labs v. LinkedIn, the Ninth Circuit addressed access to public LinkedIn data in the CFAA context; outcomes depend on facts, but the case is often cited in scraping discussions.
- LinkedIn Terms of Use still restrict automated access; LinkedIn enforces technically and sometimes legally against commercial abuse.
- GDPR / privacy: If you process personal data about people in the EU (or otherwise covered), you need a lawful basis and clarity on purpose limitation, retention, and rights requests—especially for outreach or resale.
Practical line: Prefer public data, modest volume, documented business purpose, and ethical outreach (validated emails, easy opt-out). This article is informational, not legal advice.
What you can extract from public LinkedIn pages
Typical public profile fields (no login)
| Field | Usually on public view |
|---|---|
| Name, headline, location | Yes |
| Current title and company | Often |
| About (may be truncated) | Often |
| Recent experience / education | Partial |
| Skills list | Often |
| Connection count (band) | Sometimes |
Usually not available without authorized access
- Full inbox, connection graph exports, private emails/phones on-profile
- Full career history depth behind login walls
- Premium-only or restricted member fields
For jobs, public postings are meant to be discoverable; LinkedIn Jobs Scraper is typically the most stable entry point for Apify users.
Step-by-step: profiles with LinkedIn Profile Scraper
1. Build a clean list of profile URLs
Sources include:
- Search engines (
site:linkedin.com/in/plus role keywords) - Conference speaker lists, company “Team” pages (public links only)
- CRM exports where you already have a LinkedIn URL column
Remove duplicates and invalid URLs before you run.
2. Open the Actor and configure input
- Go to LinkedIn Profile Scraper on the Apify Store.
- Paste profile URLs in the format the Actor README specifies (JSON or form fields).
- Start with 20–50 URLs and inspect output fields.
3. Proxies and concurrency
- Enable residential proxies (Actor defaults often assume this).
- Set low concurrency (for example 1–5 parallel navigations).
- Expect retries: on large lists, a minority of profiles may fail; schedule reruns or backoff.
4. Run, then validate the dataset
In the Apify Console:
- Click Start and watch the log for repeated blocks.
- Open Storage → Dataset and spot-check names, titles, employers, and locations.
- Scale the list only after error rates look acceptable.
5. Export or pull via API
- UI: Export JSON or CSV from the run’s dataset.
- API: Use the Apify API to list items with
limit/offsetor iterate in your code—see processing scraped data for patterns.
Step-by-step: jobs with LinkedIn Jobs Scraper
LinkedIn Jobs Scraper is suited for:
- Outbound sales signals (hiring = budget and pain)
- Market mapping (which stacks companies hire for)
- Recruiting research (public reqs aggregated)
Configure keywords, locations, and limits per the Actor input schema. Jobs data is generally less fragile than large profile batches, so it is the best place to learn your Apify workflow first.
Lead enrichment workflow (recommended)
Raw LinkedIn rows are rarely the final step:
- Scrape public profiles → name, title, company, location.
- Resolve company domain (firmographic database or site field when present).
- Find work emails with a verified provider (pattern + verification)—avoid guessing at scale.
- Validate and segment before CRM import.
- Automate with Make, n8n, Zapier, or webhooks from Apify.
Validate proxies, concurrency, and exports on job postings first. Profile scraping is more sensitive to rate and fingerprint pressure—scale gradually. Run Actors on Apify →
FAQ
It depends on jurisdiction, whether data is public, volume, and how you reuse personal data. US courts have decided specific CFAA questions in the hiQ context, but LinkedIn’s contracts and enforcement still matter. In the EU, GDPR applies to personal data regardless of scraping ease. Consult qualified counsel for high-risk programs.
For many public-profile and public-job workflows, Actors are designed to run without your personal LinkedIn credentials. Do not use Actors to access private or logged-in-only data without authorization.
LinkedIn and similar platforms assign low trust scores to datacenter ASNs. Residential (and sometimes mobile) egress IPs look like normal consumer networks, which reduces instant blocks—especially when combined with browser automation and conservative concurrency.
On large profile batches, intermittent blocks or empty rows are common even with good proxies. Mitigate with smaller daily batches, retries with backoff, and monitoring Actor changelogs when LinkedIn updates markup.
For approved, contract-governed partner integrations, LinkedIn’s API is the sanctioned channel. Apify Actors address a different need: fast, pay-as-you-go extraction of **public** web data for analytics and GTM workflows—without LinkedIn API pricing or approval gates for those specific public pages.
Map a lawful basis, minimize data fields, store retention limits, honor opt-out and erasure requests, and avoid sensitive categories. Many teams combine scraped titles with separately verified, consented channels rather than bulk cold outreach from scraped inboxes.




