LinkedIn Jobs Scraper API - Export Job Postings to CSV · Apify
LinkedIn Jobs Scraper - No Login, No Cookies avatar

LinkedIn Jobs Scraper - No Login, No Cookies

Pricing

from $2.10 / 1,000 results

Go to Apify Store
LinkedIn Jobs Scraper - No Login, No Cookies

LinkedIn Jobs Scraper - No Login, No Cookies

Scrape LinkedIn job postings by title and location: company, salary, applicants, seniority and full description. No login or cookies. $2.5/1k

Pricing

from $2.10 / 1,000 results

Rating

1.5

(2)

Developer

ScrapeVerse

ScrapeVerse

Maintained by Community

Actor stats

11

Bookmarked

729

Total users

6

Monthly active users

2 hours ago

Last modified

Features

Limited permissions

Share

LinkedIn Jobs Scraper — No Cookies, No Login, Hiring Signals API

LinkedIn Jobs Scraper turns a job title + location search into structured job postings: title, company, company LinkedIn URL, location, post date, salary (when shown), applicant count, seniority, employment type, industry and full description. No LinkedIn account, no cookies, no login. Set max_results (up to 1,000) and the scraper pages through LinkedIn automatically. $0.0025 per job ($2.50 per 1,000), billed only for jobs returned.

Where this fits in the ScrapeVerse LinkedIn pipeline

  1. Find hiring companies → LinkedIn Jobs Scraper (you are here)
  2. Enrich the employer → pass company_linkedin_profile into LinkedIn Company Profile Scraper for website, headcount, HQ and industry
  3. Find the hiring manager → search names or titles with LinkedIn User Profile URL Mass Finder

Before you run: 30-second checklist

Most "it returned too few results" reports come from one of these. Read once, save a failed run.

CheckWhat to do
How many jobsSet max_results (default 25, maximum 1000). The scraper keeps paging until it reaches that number or LinkedIn runs out of matching jobs. You pay only for jobs returned.
Continue a previous runSet offset to the number of jobs already collected (e.g. 100) to skip them.
Fewer jobs than requested?The run's status message says why: LinkedIn had no more matches, or your maximum cost per run was reached. LinkedIn's public search stops at roughly 1,000 results per search.
Keep the search simplejob_title is a keyword search (e.g. Data Engineer). job_location accepts a country, state or city (United States, Texas, London). Very narrow combinations return fewer jobs.
Filters are optionalLeave experience_level, onsite_remote and job_type empty to get every job for the keyword. Each filter you add shrinks the result set.
Want descriptions?Turn on detailed to get the full job description, applicant count, seniority, employment type, job function and industry. It costs more per job (see Pricing).
ProxyNothing to configure. Residential proxies are built in.

What data does the LinkedIn Jobs Scraper extract?

Field groupOutput keysMode
Job identityjob_post_id, job_title, job_post_urlBasic
Companycompany_name, company_linkedin_profile, company_logoBasic
Location & datejob_location, job_post_date, job_post_date_timesagoBasic
Compensation & perksjob_post_salary (when LinkedIn shows it), job_post_benefit (e.g. "Actively Hiring", "Be an early applicant")Basic
Hiring intent signalsno_of_applicantsDetailed
Role classificationseniority_level, employeement_type, job_function, industriesDetailed
Full descriptionjob_desciption_rich_text (HTML)Detailed

How to scrape LinkedIn jobs

  1. Enter a Job title (keyword) and a Job location.
  2. Set Max results, e.g. 200.
  3. Optionally pick Experience level, On-site/Remote and Job type filters.
  4. Turn on Detailed response if you need descriptions and seniority data.
  5. Click Start. Download results as JSON, CSV, Excel or HTML, or pull them via API.

Input example

{
"job_title": "Data Engineer",
"job_location": "United States",
"experience_level": ["3", "4"],
"onsite_remote": ["2"],
"job_type": ["F"],
"max_results": 200,
"offset": 0,
"detailed": true
}

Filter values

FilterValues
experience_level1 Internship · 2 Entry level · 3 Associate · 4 Mid-Senior · 5 Director · 6 Executive
onsite_remote1 On-site · 2 Remote · 3 Hybrid
job_typeF Full-time · C Contract · T Temporary · I Internship
max_results1–1000 jobs per run (default 25)
offsetJobs to skip, e.g. 0 for a fresh search, 200 to continue after 200

Output example

[
{
"job_post_id": "3793693241",
"job_title": "NodeJS Developer",
"company_name": "Acme Services",
"company_logo": "https://media.licdn.com/dms/image/C4E0BAQF0U846FN-wUg/company-logo_100_100/...",
"company_linkedin_profile": "https://in.linkedin.com/company/acmeservices",
"job_location": "Ahmedabad, Gujarat, India",
"job_post_date": "2023-12-04",
"job_post_salary": "",
"job_post_date_timesago": "1 month ago",
"job_post_benefit": "Be an early applicant",
"job_post_url": "https://in.linkedin.com/jobs/view/nodejs-developer-at-acme-services-3793693241",
"job_desciption_rich_text": "Minimum of 2+ years of total work experience in NodeJS.<br><br>Developing and maintaining all server-side network components...",
"no_of_applicants": "Be among the first 25 applicants",
"seniority_level": "Entry level",
"employeement_type": "Full-time",
"job_function": "Other",
"industries": "Human Resources Services"
}
]

The last five fields appear only when detailed is true.


How much does it cost to scrape LinkedIn jobs?

This Actor uses pay-per-event pricing. You pay only for jobs delivered, and Apify platform usage (compute and proxies) is included.

ModePrice per job100 jobs1,000 jobs
Basic (listing fields)$0.0025$0.25$2.50
Detailed (+ description, applicants, seniority)$0.0025 + $0.003 = $0.0055$0.55$5.50

The detailed surcharge applies only to jobs whose detail page was scraped successfully. Set a maximum cost per run and the scraper stops collecting once the budget is used.

What does Apify's free $5 monthly credit get you? About 2,000 basic job listings or 900 detailed listings every month, at no cost. A negligible $0.00005 start fee applies per run. Prices are current at the time of writing; the Pricing tab always shows the live rate.


Integrations: Clay, n8n, Make, Google Sheets and API

Call the Actor synchronously and get jobs back in one request:

curl -X POST "https://api.apify.com/v2/acts/scrapeverse~linkedin-jobs-scrapper/run-sync-get-dataset-items?token=YOUR_APIFY_TOKEN" \
-H "Content-Type: application/json" \
-d '{"job_title":"Data Engineer","job_location":"United States","max_results":100}'

For runs over a few hundred jobs, use the async /runs endpoint and fetch the dataset when the run finishes.

  • n8n: run one search per keyword with the Apify node (Run Actor and get dataset items) or an HTTP Request node pointing at the URL above. Ready-made flow: n8n LinkedIn job intent pipeline.
  • Clay: add an HTTP API column that POSTs the row's job title and location to the endpoint above, then map company_name and company_linkedin_profile into new columns.
  • Make / Zapier: use the Apify app → Run an Actor → Get dataset items, then send new jobs to Slack, a CRM or a Google Sheet.
  • Google Sheets: schedule the Actor daily and use Apify's Google Sheets integration, or export the dataset as CSV.
  • AI agents (Claude, Cursor, ChatGPT): available through the Apify MCP server. Setup guide: connect scrapers to Claude via MCP.

Use cases

  • B2B hiring intent: companies posting "Head of Data" or "Salesforce Admin" roles are buying related tools. Feed them into outbound.
  • Recruiting & staffing agencies: spot companies hiring for roles you place, then contact them before job boards do.
  • Job market and salary research: track demand by title, location, seniority and remote share over time.
  • Job boards and aggregators: refresh listings daily with a scheduled run per keyword.
  • Job seekers: collect every matching opening in one sheet instead of scrolling.

FAQ

Do I need a LinkedIn account or cookies?

No. The scraper reads LinkedIn's public guest job search, the same pages anyone can see logged out. Your LinkedIn account is never involved, so it can't be restricted.

Why did I get fewer jobs than max_results?

The run's status message tells you why. Either LinkedIn has no more jobs for that keyword, location and filter combination (remove a filter or broaden the location), or the run hit your maximum cost per run. The default max_results is 25, so raise it for bigger pulls.

How do I scrape thousands of LinkedIn jobs?

Set max_results up to 1000 per search. LinkedIn's public search stops at about 1,000 results per keyword and location, so for more, split the search by location, seniority or job type (one Apify task each) and schedule them daily. Deduplicate on job_post_id.

Why are salary or description fields empty?

job_post_salary is filled only when the employer publishes a salary on LinkedIn. Description, applicants, seniority, employment type, job function and industry need detailed: true.

Can I export LinkedIn jobs to CSV or Excel?

Yes. Every run's dataset can be downloaded as CSV, Excel, JSON, XML or HTML from the Storage tab, or via the API with format=csv.

This Actor only collects publicly available job listings and doesn't access private profiles or logged-in data. You are responsible for using the data in line with applicable laws (e.g. GDPR) and your own use case.

Is this the "LinkedIn jobs scrapper" I searched for?

Yes. Searching for "linkedin jobs scrapper", "linkedin job scraper" or "linkedin job postings API" all lead here. Same Actor, same cookie-free data.


Need a custom LinkedIn data pipeline or higher volumes? Contact ScrapeVerse.