LinkedIn Jobs Search Scraper avatar

LinkedIn Jobs Search Scraper

Pricing

from $0.30 / 1,000 results

Go to Apify Store
LinkedIn Jobs Search Scraper

LinkedIn Jobs Search Scraper

Search LinkedIn jobs and extract the full posting: description, criteria, applicants, hiring contact, salary and company firmographics. No browser, no login.

Pricing

from $0.30 / 1,000 results

Rating

0.0

(0)

Developer

Knowten

Knowten

Maintained by Community

Actor stats

0

Bookmarked

1

Total users

0

Monthly active users

2 days ago

Last modified

Categories

Share

The fastest, most cost-effective way to extract rich job listings, recruiter contact details, salary ranges, and company firmographics from LinkedIn.

No LinkedIn account required. No login credentials. No cookie management. Just enter your search keywords and location, and get clean, structured data delivered in seconds.


Why Choose This LinkedIn Jobs Scraper?

FeatureWhat It Means for You
Blazing Fast ThroughputPipelined search and data enrichment running in parallel for instant data delivery.
💰 Slashes Cloud Compute CostsRuns effortlessly on just 128 MB – 256 MB of memory, saving you up to 80% on Apify compute units compared to heavy, bloated scrapers.
🔒 100% Ban-Proof & SafeNever requires logging in with your personal or corporate LinkedIn account. Zero risk of account restriction or session expiration.
🎯 Deep Enrichment (43+ Fields)Go beyond basic titles: extract full descriptions (HTML & Markdown), recruiter contacts, salary breakdowns, and complete company firmographics.
🧠 Smart Location MappingType any city, region, or country in plain text—the Actor automatically resolves it to LinkedIn's official geographic identifier (geoId).
🔄 Multi-Pass DiscoveryOvercomes LinkedIn's public result rotation with smart deduplication, unlocking significantly more unique postings per query than basic scrapers.

High-Impact Use Cases

  • 🎯 B2B Lead Generation & Sales Prospecting: Identify fast-growing companies that are actively hiring, along with the names, headlines, and profile links of the hiring recruiters.
  • 👥 Recruitment & Talent Acquisition: Monitor real-time talent demand, competitor hiring surges, and open job roles across industries and regions.
  • 💼 Job Boards & Career Portals: Automatically populate and synchronize your niche job board with clean descriptions, direct application URLs, and employer logos.
  • 📊 Labor Market & Compensation Research: Analyze real-time salary distributions, emerging job titles, and remote vs. on-site employment dynamics.
  • 🤖 AI Agents & Workforce Intelligence: Feed continuous, structured labor market data into AI models, RAG systems, and market research agents.

Extracted Data Fields (43+ Attributes)

Every record is strictly structured and validated, ready for instant export to CSV, Excel, JSON, or downstream databases:

1. Core Job Information

  • jobId: Unique LinkedIn job identifier.
  • title: Standardized job title.
  • jobUrl: Direct, permanent URL to the job listing.
  • location: Geographic location displayed on the posting.
  • postedAt: ISO formatted posting date (YYYY-MM-DD).
  • postedText: Human-readable posting timeframe (e.g., "2 days ago").
  • benefits: Key highlighted perks or hiring status (e.g., "Actively Hiring").

2. Job Details & Classification

  • seniorityLevel: Seniority required (Entry level, Mid-Senior level, Director, Executive, etc.).
  • employmentType: Contract type (Full-time, Part-time, Contract, Internship, etc.).
  • jobFunction: Primary department or role function.
  • industries: Associated industry verticals.
  • applicantsCount: Current number of applicants.
  • applicantsText: Text representation of applicant interest (e.g., "Over 200 applicants").
  • descriptionText: Clean, human-readable plain text job description.
  • descriptionHtml: Full raw HTML description preserving formatting and bullet points.
  • descriptionLength: Character count of the description.

3. Salary & Compensation Insights

Parsed automatically from job descriptions:

  • salaryMin: Minimum base compensation (numeric).
  • salaryMax: Maximum base compensation (numeric).
  • salaryCurrency: Standard currency symbol or code (e.g., USD, EUR, GBP).
  • salaryPeriod: Pay interval (year, month, hour).
  • salaryRaw: Verbatim compensation text as written in the listing.

4. Hiring Contact / Recruiter Details

Captured when the hiring manager chooses to display their profile on the listing:

  • recruiterName: Full name of the recruiter or hiring manager.
  • recruiterHeadline: Current professional headline/role of the recruiter.
  • recruiterProfileUrl: Direct LinkedIn profile URL for seamless outreach.

5. Company Profile & Firmographics (Optional Enrichment)

  • companyName: Official employer name.
  • companyUrl: Link to the company's LinkedIn profile.
  • companySlug: LinkedIn company identifier handle.
  • companyLogo: High-resolution company logo URL.
  • companyIndustry: Primary operating sector.
  • companySize: Staff bracket (e.g., "51-200 employees").
  • companyEmployeeCount: Estimated total workforce.
  • companyEmployeesOnLinkedIn: Number of employees registered on LinkedIn.
  • companyHeadquarters: City/Country of company headquarters.
  • companyWebsite: Official corporate website.
  • companyFounded: Year established.
  • companySpecialties: Comma-separated list of corporate specialties.
  • companyFollowers: Total follower count on LinkedIn.

Sample Output

{
"jobId": "4462078258",
"title": "Senior Cloud Solutions Architect",
"jobUrl": "https://www.linkedin.com/jobs/view/senior-cloud-solutions-architect-4462078258",
"companyName": "Acme Cloud Technologies",
"companyUrl": "https://www.linkedin.com/company/acme-cloud",
"companySlug": "acme-cloud",
"companyLogo": "https://media.licdn.com/dms/image/company-logo.png",
"location": "San Francisco, CA",
"postedAt": "2026-09-12",
"postedText": "4 days ago",
"seniorityLevel": "Mid-Senior level",
"employmentType": "Full-time",
"jobFunction": "Engineering, Information Technology",
"industries": "Software Development, Cloud Computing",
"applicantsCount": 47,
"applicantsText": "47 applicants",
"benefits": "Actively Hiring",
"descriptionText": "We are seeking an experienced Cloud Solutions Architect to design scalable cloud infrastructure...",
"descriptionLength": 2840,
"salaryMin": 165000.0,
"salaryMax": 195000.0,
"salaryCurrency": "USD",
"salaryPeriod": "year",
"salaryRaw": "$165,000/yr - $195,000/yr",
"recruiterName": "Sarah Jenkins",
"recruiterHeadline": "Senior Technical Recruiter at Acme Cloud",
"recruiterProfileUrl": "https://www.linkedin.com/in/sarah-jenkins-tech",
"companyIndustry": "Software Development",
"companySize": "501-1,000 employees",
"companyEmployeeCount": 780,
"companyEmployeesOnLinkedIn": 620,
"companyHeadquarters": "San Francisco, California",
"companyWebsite": "https://www.acmecloudtech.example.com",
"companyFounded": 2018,
"companyFollowers": 45200,
"searchKeywords": "Cloud Architect",
"searchLocation": "San Francisco, CA",
"scrapedAt": "2026-09-16T12:30:00.000Z"
}

Quick Start Guide

You can launch a targeted scrape in three simple steps:

  1. Enter Keywords: Type what you're looking for (e.g., "Python Developer", "Account Executive", "Growth Marketing").
  2. Specify Location: Enter any city, country, or region (e.g., "Austin, TX", "United Kingdom", or "Germany").
  3. Run & Export: Hit Save & Start. Your data will be ready to download in CSV, Excel, or JSON format, or accessible via the Apify API.

Input Parameters

ParameterTypeDefaultDescription
keywordsstring"python developer"Job title, skills, or search terms as typed on LinkedIn.
locationstring"Spain"City, region, or country. Automatically mapped to LinkedIn's internal geographic ID.
maxItemsinteger100Target number of jobs to retrieve. Set as high as needed.
datePostedstring"any"Timeframe filter: any, past24h (last 24 hours), pastWeek (last 7 days), or pastMonth (last 30 days).
jobTypesarray[]Contract type filter: fullTime, partTime, contract, temporary, internship, volunteer.
experienceLevelsarray[]Seniority filter: internship, entryLevel, associate, midSenior, director, executive.
sortBystring"relevance"Order results by "relevance" or "date".
scrapeJobDetailsbooleantrueWhen enabled, retrieves full descriptions, recruiter info, salary estimates, and applicant counts.
scrapeCompanyDetailsbooleanfalseWhen enabled, enriches each employer with full company firmographics (HQ, size, website, followers).
concurrencyinteger6Number of parallel scraping workers. Can be increased to 15–25 when using Apify Proxy for faster runs.
proxyConfigurationobject{ "useApifyProxy": true }Apify Proxy configuration. Standard datacenter proxies work smoothly out-of-the-box.

Pro Tips for Maximum Performance

1. Daily Automated Job Alerts

Set datePosted to "past24h" and use Apify's built-in Schedules tab to run the Actor automatically every morning at 8:00 AM. Connect a webhook or integration to deliver new jobs directly to your Slack, CRM, or email inbox.

2. Maximizing Market Coverage

LinkedIn's public search dynamically caps search results per single query. To build large-scale datasets (thousands of jobs), run targeted queries across specific cities or seniority levels rather than one generic nationwide search.

3. Boosting Extraction Speed

If you are running large batches with Apify Proxy enabled, you can safely increase concurrency to 15–20 and reduce requestDelayMs to 100–150 ms. The Actor's streaming architecture will deliver results significantly faster.


Integrations & API Usage

Export your data directly into your workflows using Apify's pre-built integrations:

  • No-Code / Low-Code: Connect instantly with Make, Zapier, Google Sheets, Airtable, or custom Webhooks.
  • Data Warehousing: Export directly to Snowflake, BigQuery, or AWS S3.
  • Developer API: Access datasets programmatically in Python, Node.js, or via cURL.

Python Example

from apify_client import ApifyClient
client = ApifyClient("<YOUR_API_TOKEN>")
run_input = {
"keywords": "Data Scientist",
"location": "New York, NY",
"maxItems": 100,
"datePosted": "pastWeek",
"scrapeJobDetails": True,
"scrapeCompanyDetails": True
}
run = client.actor("YOUR_USERNAME/linkedin-jobs-search-scraper").call(run_input=run_input)
# Stream extracted jobs from dataset
for item in client.dataset(run["defaultDatasetId"]).iterate_items():
print(f"{item['title']} at {item['companyName']} - Recruiter: {item.get('recruiterName')}")

Node.js / JavaScript Example

import { ApifyClient } from 'apify-client';
const client = new ApifyClient({
token: '<YOUR_API_TOKEN>',
});
const input = {
keywords: "Full Stack Engineer",
location: "London, United Kingdom",
maxItems: 50,
datePosted: "past24h",
scrapeJobDetails: true
};
const run = await client.actor("YOUR_USERNAME/linkedin-jobs-search-scraper").call(input);
const { items } = await client.dataset(run.defaultDatasetId).listItems();
console.log(`Successfully scraped ${items.length} jobs!`);
console.table(items, ['title', 'companyName', 'location', 'salaryRaw']);

Frequently Asked Questions

Do I need to provide LinkedIn cookies or account credentials?

No. This Actor operates entirely on publicly accessible job postings. You never need to supply login credentials, session cookies, or personal accounts, eliminating any risk of account suspension.

Does it capture recruiter / hiring manager contact info?

Yes. When employers choose to display their hiring team on the job post, the Actor captures the recruiter's full name, headline, and direct LinkedIn profile URL.

How does salary extraction work?

LinkedIn does not provide structured salary fields on public job cards. This Actor incorporates an intelligent text parser that extracts minimum salary, maximum salary, currency, and pay period directly from the job description text.

What proxy configuration should I use?

The Actor is pre-configured to use Apify Proxy with datacenter proxies, which provides seamless reliability and performance. Residential proxies are supported but rarely necessary.


Support & Custom Requirements

Need custom fields, integration assistance, or high-volume enterprise scraping? Feel free to reach out via the Issues tab on the Apify Actor page.