How to Scrape LinkedIn Search Results Without Getting Blocked

A careful, honest guide to extracting public LinkedIn search results with Crawl Pilot's no-code List Extractor — session prep that keeps you unblocked, the full 3-step wizard, the results table, CSV/JSON export, and what breaks.

Rahul Bisht

Founder, CrawlPilot

·
Jul 4, 2026
·Tutorials·
7 min read
·

You can extract public LinkedIn search results — names, headlines, locations, and profile URLs — into a CSV or JSON file using Crawl Pilot's List Extractor. But LinkedIn is one of the most aggressively defended sites on the web, and "without getting blocked" is the entire challenge. The answer isn't a clever trick; it's low volume, human-paced behavior, and staying on pages you're actually allowed to see.

This guide is deliberately conservative. It shows you how to extract the visible results of a search you ran yourself while logged in, at a volume that looks like normal use — using Crawl Pilot's three-step wizard — and it's honest about what will get your account restricted if you ignore that.

Read this first. Scraping LinkedIn violates their User Agreement, and automated collection can lead to account restriction or a permanent ban. The hiQ v. LinkedIn case established that scraping public data isn't automatically a criminal violation, but that is not the same as LinkedIn allowing it or it being risk-free for your account. Only extract public data, keep volumes tiny, and never collect data for spam or resale. For people data at scale, use LinkedIn's official APIs or a licensed provider.


What You'll Need

  • Crawl Pilot installed and pinned (quickstart here)
  • A logged-in LinkedIn account on your normal Chrome profile
  • Realistic expectations: this is for small, targeted lists — not thousands of profiles

Why LinkedIn Blocks Scrapers (and How to Not Trigger It)

LinkedIn watches for behavior no human produces: dozens of loads per minute, perfectly even timing, deep pagination at machine speed, headless fingerprints. Understanding this shapes every step. For the full landscape, see our anti-bot detection deep dive.

The rules that keep you unblocked:

  1. 02
    Stay on search results pages, not individual profiles. The results list shows low-risk public snippets.
  2. 04
    Extract one search at a time, then stop. Don't chain twenty searches back to back.
  3. 06
    Use the Careful crawl speed. Always.
  4. 08
    Don't page deep. A few pages of a tight search looks normal; crawling forty pages does not.
  5. 10
    Use your real, aged account on your normal profile — never a throwaway.

Log into LinkedIn and run a People search with tight filters — job title, location, industry. A precise search ("Product Managers in Berlin at Series B startups") gives you a short, high-quality list. Let the first page of results fully load.


Step 2: Open Crawl Pilot and Connect the Tab

Click the Crawl Pilot icon to open the side panel. If you see "Extension not connected to this tab", click Connect. Then open List Extractor — a three-step wizard.


Step 3: Wizard Step 1 — Pick a Repeating Result

You don't map out columns. You click one result card and Crawl Pilot detects the rest.

  1. 02
    Click Select on Page. The panel switches to "Listening for Click…".
  2. 04
    Hover over one person's result card — the block with their name, headline, and location — and click it.
  3. 06
    Crawl Pilot shows a green "Repeating Pattern Found · N matching items on page" card (N should match the visible results, usually ~10 per page) and auto-extracts the fields it found: name, headline, location, and the /in/… profile link.

Before continuing:

  • Click Preview Sample Data (database icon) to open a sample table and confirm the data is clean.
  • Use Highlight on page (eye icon) to verify the pattern caught every result card.
  • Use the + to add a field only if something obvious is missing. Do not try to pull emails, phone numbers, or private fields — the public card doesn't expose them and harvesting them is a legal and ethical problem.
  • Remove any noisy auto-detected column (like a "Connect" button).

LinkedIn's class names are randomized, so columns will be generically named — rename them later. Click Next.


Step 4: Wizard Step 2 — Choose How to Load More Items

The wizard asks "How should we load more items?" with three options: Numbered Pagination, "Load More" Button, and Infinite Scroll / Single Page.

LinkedIn search uses numbered pages, so choose Numbered Pagination. The wizard then asks you to point to the "Next" button on the page — click LinkedIn's "Next" arrow at the bottom of the results so Crawl Pilot learns the selector. Click Next.


Step 5: Wizard Step 3 — Review & Run (Conservatively)

The final step shows a Summary and a Crawl Speed setting (Careful / Balanced / Aggressive). For LinkedIn, always choose Careful.

Open Advanced Settings and set Max Pages to Extract to something small — start with 3. You can always run again later. Do not set it to 20 and walk away; that's the fastest way to get flagged.

Click Start Extraction and watch the item count climb slowly on the status bar.


Step 6: Open the Results Table and Export

When it finishes, click Open Results Table to see all rows in Crawl Pilot's data table. Click Export and choose CSV or JSON (Markdown, Google Sheets, Webhook, Airtable, and Zapier are also available).

Your CSV output:

name,headline,location,profile_url
Anika Sharma,Senior Product Manager at Fintech Co,Berlin,https://www.linkedin.com/in/anika-sharma-pm
David Okoro,Product Lead · Payments,Berlin Metropolitan Area,https://www.linkedin.com/in/davidokoro

Save it, then stop for the day if you've run a few searches. Space your sessions out.


What Breaks and Why

A CAPTCHA or "unusual activity" challenge appears

You moved too fast or ran too many searches. Stop immediately, solve it manually, and don't extract again for several hours. Repeated challenges precede account restrictions.

Results stop loading after a couple of pages

LinkedIn throttles automated pagination. This is expected — take what you have and stop.

The item count is lower than the visible results

The pattern was picked from an unusual card, or results were still loading. Re-run Select on Page on a cleaner card and check Preview Sample Data before continuing.

Profile URLs contain tracking junk

Clean them in post-processing:

python
clean_url = row['profile_url'].split('?')[0]

Your account gets a temporary restriction anyway

It happens even to careful users. There's no override — wait it out and reduce volume drastically. This is the inherent risk of extracting from a site that forbids it.


Frequently Asked Questions

It's nuanced. hiQ v. LinkedIn found that scraping publicly accessible data likely doesn't violate the US Computer Fraud and Abuse Act. But that doesn't override LinkedIn's User Agreement, which prohibits scraping and lets them restrict or ban your account, and GDPR-style laws apply when you collect data about people. Treat it as legally sensitive: public, minimal, non-resale use only.

Will scraping get my LinkedIn account banned?

It can. The steps here — Careful speed, few pages, real aged account, one search at a time — reduce the risk but don't eliminate it. Never use an account you can't afford to lose.

Can I export the results as JSON?

Yes. On the results table, the Export dropdown offers CSV, JSON, and Markdown locally, plus Google Sheets, Webhook, Airtable, and Zapier.

What's the safe alternative for scale?

There isn't a safe scraping path at scale on LinkedIn. For volume, use LinkedIn's official Marketing or Talent Solutions APIs or a licensed data provider. Crawl Pilot is best here for small, careful, manual research.


The Honest Bottom Line

Crawl Pilot's wizard can extract public LinkedIn search results cleanly, and the steps above keep your footprint human-sized. But LinkedIn does not permit scraping, and the only reliable way to "not get blocked" is to barely scrape at all — small searches, Careful speed, few pages, long gaps. If your use case needs more, the official APIs are the right tool.

For lower-risk practice, run the quickstart on a site built for scraping first, then apply the same wizard here with restraint.