All scrapers

Business data

LinkedIn Scraper

linkedin.com

99.9% Success rate
4.6s Avg response
Bot detection + rate limiting Protection
1,000 calls Measured over

LinkedIn jobs are served through a dedicated plugin endpoint rather than the generic page fetch. Give it a keyword - and optionally a location - and it returns the postings LinkedIn serves without login, its public guest jobs surface, already parsed: for each job the title, the company with a clean company URL, the location, the posted date as both an ISO timestamp and a relative age, the jobId and a canonical job URL, and the company logo. Narrow the search with LinkedIn's own guest filters - date posted, workplace, job type, experience level and salary band - and page through as many results as you need. Ask for the detail of one job and you also get its full description, seniority level, employment type, job function and industries. Public job posts and company pages are reachable; anything behind a login is not, by design.

What you can extract

  • Job title and a canonical job URL (with jobId)
  • Company name and a clean company URL
  • Location and posted date (ISO timestamp + relative age)
  • Company logo image URL
  • Guest filters: date posted, workplace, job type, experience and salary
  • Detail mode: full description, seniority level, employment type, job function and industries

Dedicated endpoints

/jobs/linkedin

LinkedIn job search

Job postings from LinkedIn's public guest surface for a keyword (+ optional location): each with jobId, title, company, companyUrl, location, postedDate (ISO), a canonical jobUrl and companyLogo. Filter by date posted, workplace, job type, experience and salary; page with max_results. Pass mode=detail with a job_id for the full description, seniority, employment type, function and industries.

How to scrape it

curl -X POST \
  -H "X-ScrapeUnblocker-Key: $SU_API_KEY" \
  "https://api.scrapeunblocker.com/jobs/linkedin?keyword=python%20developer&location=United%20States"
import requests

resp = requests.post(
    "https://api.scrapeunblocker.com/jobs/linkedin",
    headers={"X-ScrapeUnblocker-Key": SU_API_KEY},
    params={"keyword": "python developer", "location": "United States"},
)
print(resp.text)
import { ScrapeUnblockerClient } from 'scrapeunblocker';

const su = new ScrapeUnblockerClient({ apiKey: process.env.SU_API_KEY });

const data = await su.linkedinJobs('python developer', {
  location: 'United States',
  workplace: 'remote',
  timePosted: 'week',
});
console.log(data);

Requests are POST and take their parameters in the query string. Browser rendering always happens - there is no flag to enable.

Read the API docs

Frequently asked questions

Is it legal to scrape LinkedIn?

Collecting publicly available LinkedIn data such as job titles, company names and posting dates is lawful in many jurisdictions, but the rules depend on your country, the data you collect and how you use it. Some of it can be personal data, so follow the privacy rules that apply to you. ScrapeUnblocker returns the public page; what you collect and how you use it is your responsibility.

How do I scrape LinkedIn without getting blocked?

LinkedIn uses bot detection and rate limiting. ScrapeUnblocker rotates residential and ISP exits and handles challenges, and the LinkedIn plugin returns job postings as parsed JSON. In ScrapeUnblocker's benchmark it returned real content on 99.9% of 1,000 calls, about 4.6s per call.

What LinkedIn data can I get?

For each job: title, jobId and a canonical job URL, the company name with a clean company URL, location, posted date as an ISO timestamp and a relative age, and the company logo. Detail mode adds the full description, seniority level, employment type, job function and industries. Filter by date posted, workplace, job type, experience level and salary band.

Do I need a LinkedIn API or a LinkedIn login?

No. The LinkedIn plugin returns job postings as JSON without a LinkedIn API account or login; it reads the jobs LinkedIn serves to guests. Public job posts and company pages are reachable; anything behind a login is not, by design.

Can I search LinkedIn jobs in a specific country or city?

Yes. Pass location as text, such as United States or Berlin, Germany, and add distance for a search radius in miles. For a precise region, geo_id takes LinkedIn's numeric geoId and overrides the location text. Combine it with time_posted, workplace, job_type, experience and salary, and page with max_results.

How much does it cost to scrape LinkedIn?

Pricing is per request: 1 request = 1 credit, from EUR 1.00 per 1,000 on pay as you go to about EUR 0.55 per 1,000 on the Ultimate plan. Plugin calls use the same plan quota as any other request. One search call collects jobs across pages up to max_results. Blocks, timeouts and errors on ScrapeUnblocker's side are not billed, and the free trial includes 500 requests with no card.

Related scrapers

Start scraping this site today

Free tier included. No credit card required to test it.