# 🚀 LinkedIn Jobs Scraper · 25,000 Free Jobs/Month (`omkar-cloud/linkedin-jobs-scraper`) Actor

LinkedIn Jobs Scraper gets you LinkedIn jobs ⚡ fast, 🎯 100% accurate and 🔍 ridiculously detailed — salary, description, applicants, recruiter & company for every job. 💰 $0.20 per 1,000 jobs, no start fee. Scrape your first 25,000 jobs free every month 🚀

- **URL**: https://apify.com/omkar-cloud/linkedin-jobs-scraper.md
- **Developed by:** [Omkar Cloud](https://apify.com/omkar-cloud) (community)
- **Categories:** Jobs, Lead generation, Automation
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $0.20 / 1,000 jobs

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.

Learn more: https://docs.apify.com/actors/running/actors-in-store.md#pay-per-event

## What's an Apify Actor?

An Actor is a serverless cloud program that runs on the Apify platform. It has two run modes.
In Batch mode, an Actor accepts a well-defined JSON input, performs an action which can take anything from a few seconds to a few hours,
and optionally produces a well-defined JSON output, datasets with results, or files in key-value store.
In Standby mode, an Actor provides a web server which can be used as a website, API, or an MCP server.

Apify vocabulary and the platform model are defined once, in the agent quickstart at https://apify.com/agents.md.

## How to integrate an Actor?

If asked about integration, you help developers integrate Actors into their projects.
You adapt to their stack and deliver integrations that are safe, well-documented, and production-ready.

Do not guess an integration path. Every one of them is in the agent quickstart at https://apify.com/agents.md: the Apify MCP server, Agent Skills with the Apify CLI, the JavaScript and Python clients, the REST API, and the account-free path for an agent with no human to sign in. It also carries the rule on stating cost before the first paid run.

For examples already wired to this Actor's own input schema, see the [API](#api) section below.

Each client library has reference documentation the quickstart does not restate: [JavaScript/TypeScript](https://docs.apify.com/api/client/js/docs.md) (`npm install apify-client`) and [Python](https://docs.apify.com/api/client/python/docs.md) (`pip install apify-client`).

# README

## LinkedIn Jobs Scraper

LinkedIn Jobs Scraper by Omkar Cloud gets you 🎯 accurate, 🔍 detailed LinkedIn jobs data — salary, full description, applicant count, the recruiter who posted it and the company behind every job.

LinkedIn uses its own aggressive bot protection — rate limits, a bot-check page and its infamous HTTP 999 block — to stop you from getting its data.

LinkedIn Jobs Scraper beats it, so you get the data, and can successfully complete your project.

**$0.20 per 1,000 jobs.** And with Apify's free plan you get $5 of credit every month, so your first **~25,000 jobs each month are free**.

This is an excellent Actor made by Omkar Cloud, which is Rated Excellent — [4.7 based on 37 reviews on Trustpilot](https://www.trustpilot.com/review/omkar.cloud).

👉 [**Try LinkedIn Jobs Scraper free**](https://apify.com/omkar-cloud/linkedin-jobs-scraper) — your first ~25,000 jobs are Free.

### What can I get

- 💼 **Full details on any LinkedIn job** — salary range, full description, seniority, applicant count, benefits & the recruiter who posted it
- 🔍 **Up to 1,000 jobs per search** — any keyword, city or country, radius, company, date posted, Easy Apply & under 10 applicants
- 🏢 **The company behind every job** — website, industry, size, HQ, founding year, followers & employee count
- 🧹 **Clean results** — title include / exclude, excluded companies, salary-only and skip-known-IDs filters, and filtered jobs are never billed

### Why LinkedIn Jobs Scraper

Most other LinkedIn Jobs scrapers fail you in one of four ways:

- 🗄️ **Inaccurate, cached, stale data**
- 🧩 **Low-detail data** — a few fields per job, never the full picture
- 💸 **Pay more to get the same data**
- 🪦 **Works today, breaks next month** — nobody maintains it

LinkedIn Jobs Scraper is scraped live on every run, priced honestly, and actively maintained.

### Example: A Full LinkedIn Job

```json
{
  "id": "4447444371",
  "title": "Software Engineer, API Multimodal",
  "link": "https://www.linkedin.com/jobs/view/4447444371",
  "company_name": "OpenAI",
  "company_website": "https://openai.com/",
  "company_size": "1,001-5,000 employees",
  "company_headquarters": "San Francisco, CA",
  "company_followers_count": 12041958,
  "location": "San Francisco, CA",
  "posted_at": "2026-10-26",
  "salary": "$266,000.00/yr - $445,000.00/yr",
  "salary_min": 266000,
  "salary_max": 445000,
  "salary_currency": "USD",
  "salary_period": "year",
  "applicants_count": 170,
  "employment_type": "Full-time",
  "industries": "Research Services",
  "apply_type": "external",
  "is_closed": false,
  "description_text": "About The Team\nAPI Multimodal builds the developer-facing products and infrastructure that bring OpenAI’s image, audio, and real-time model capabiliti…"
}
```

*Trimmed for readability. Every row is flat, so it exports cleanly to CSV and Excel.*

### Get Started with 25,000 Free Jobs

1. [Hit **Try for Free Button**](https://apify.com/omkar-cloud/linkedin-jobs-scraper) — the input is pre-filled with "software engineer" and "data scientist" searches in San Francisco.
2. Enjoy your data 😎.

### Pricing

High value, Low price.

| What | Price | What you get |
|---|---|---|
| **Job rows** | **$0.20 per 1,000** | id, link, title, company name / slug / link / logo, location, exact posting date, salary when shown, Actively Hiring and new-job flags |
| **+ Full job details** | $0.20 per 1,000 → **$0.40 total** | full description (text + HTML), salary range parsed to min / max / currency / period, applicant count, seniority, employment type, industries, benefits, Easy Apply or external, closed flag, and the recruiter's name, headline, profile and photo |
| **+ Company details** | $0.50 per 1,000 → **$0.90 total** | the hiring company's website, industry, size, type, HQ, founding year, specialties, followers, employee count and about text |

No start fee — you pay only for the rows you get. Control your spend with **Max jobs per search**: 1,000 detailed jobs ≈ $0.40.

💡 Apify's free plan includes $5 of credit every month — about **25,000 job rows, or 12,500 jobs with full details, free every month**.

👉 [**Scrape your first 25,000 jobs free**](https://apify.com/omkar-cloud/linkedin-jobs-scraper)

### FAQ

**Which countries can I scrape?** Every country LinkedIn lists jobs in. Put a city, state, region or country in **Locations** ("London", "Texas", "India"), or a numeric LinkedIn geoId.

**How many jobs can one search return?** LinkedIn shows up to 1,000 jobs per search (100 pages of 10). For more, split the search by city: add several **Locations**.

**Can I filter by experience level, job type or remote?** Yes. LinkedIn's job search now reads these from the search text, so the Actor adds the words you pick (for example "entry level", "contract", "remote") to your keywords.

**Can I get every job at one company?** Yes. Put the company in **Companies** — `openai`, a LinkedIn company link, its numeric ID or its name — and leave the keywords empty.

**Do I get the employer's apply link?** No. LinkedIn shows the external apply link only to signed-in members, so `apply_link` is empty; `apply_type` tells you whether a job uses Easy Apply or the employer's site.

**What does a detailed job cost?** $0.40 per 1,000 rows: $0.20 for the row plus $0.20 for the full details. A 10,000-job run with details costs about $4.

**Do filtered jobs cost anything?** No. Jobs dropped by the title, company, salary or skip filters are never pushed, so they are never billed.

### Run It from Code

Grab your API token from [Integrations Settings here](https://console.apify.com/settings/integrations) and replace `<YOUR_API_TOKEN>` below.

**Python** (`pip install apify-client`)

```python
from apify_client import ApifyClient

client = ApifyClient("<YOUR_API_TOKEN>")
run = client.actor("omkar-cloud/linkedin-jobs-scraper").call(run_input={
    "searchQueries": ["software engineer"],
    "locations": ["San Francisco, CA"],
    "postedWithin": "week",
    "maxResultsPerSearch": 10,
})
for job in client.dataset(run["defaultDatasetId"]).iterate_items():
    print(job["title"], job["company_name"], job["salary"])
```

**Node.js** (`npm install apify-client`)

```javascript
import { ApifyClient } from 'apify-client';

const client = new ApifyClient({ token: '<YOUR_API_TOKEN>' });
const run = await client.actor('omkar-cloud/linkedin-jobs-scraper').call({
    companies: ['openai'],
    includeCompanyDetails: true,
});
const { items } = await client.dataset(run.defaultDatasetId).listItems();
console.log(items);
```

### 💬 Have Questions? We Have Answers.

You're a business owner — we know how hard completing a project can be. So we offer full support: just message us and we'll reply ✅ with a solution within 1 working day.

[![Message Us on WhatsApp](https://raw.githubusercontent.com/omkarcloud/assets/master/images/whatsapp-us.png)](https://api.whatsapp.com/send?phone=918178804274\&text=I%20need%20help%20with%20using%20the%20LinkedIn%20Jobs%20Scraper%20Actor.)

[![Ask Us on Email](https://raw.githubusercontent.com/omkarcloud/assets/master/images/ask-on-email.png)](mailto:happy.to.help@omkar.cloud?subject=Help%20with%20LinkedIn%20Jobs%20Scraper%20Actor\&body=I%20need%20help%20with%20using%20the%20LinkedIn%20Jobs%20Scraper%20Actor.)

You are important to us — just message us and we will solve your problem ✅ within 1 working day. 🩷 Pinky Promise 🤙!

### Related Actors

- 🏢 [**LinkedIn Company Scraper**](https://apify.com/omkar-cloud/linkedin-company-scraper) — full LinkedIn company pages: website, industry, size, HQ, followers, employees, offices, specialties & latest posts. $1 per 1,000 companies.

### Popular Actors by Omkar Cloud

- [**G2 Product Scraper**](https://apify.com/omkar-cloud/g2-product-scraper) — G2 product details, ratings & AI-found contacts
- [**Website Email Contact Scraper**](https://apify.com/omkar-cloud/website-email-contact-scraper) — emails, phones & socials from any website
- [**AliExpress Product Scraper**](https://apify.com/omkar-cloud/aliexpress-product-scraper) — live product details, SKU variants, stock & shipping
- [**Booking Scraper**](https://apify.com/omkar-cloud/booking-scraper) — Booking.com hotels: prices, ratings, rooms & amenities
- [**Etsy Scraper**](https://apify.com/omkar-cloud/etsy-scraper) — Etsy products: prices, discounts, shops & variations

# Actor input Schema

## `searchQueries` (type: `array`):

Job titles, skills or companies to search LinkedIn for — one search per line, e.g. "software engineer" or "product manager". Boolean syntax works ("python developer" NOT senior).

## `locations` (type: `array`):

Where the job is: a city, state, region or country ("New York, NY", "Texas", "United States", "Berlin") or a numeric LinkedIn geoId (103644278 = United States). Every keyword is searched in every location. Leave empty to search worldwide.

## `companies` (type: `array`):

Only jobs at these companies: a LinkedIn company slug (openai), company link (https://www.linkedin.com/company/openai), numeric company ID (11130470) or a company name (Goldman Sachs). Combined with every keyword; leave keywords empty to get all of a company's jobs.

## `startUrls` (type: `array`):

LinkedIn job links (https://www.linkedin.com/jobs/view/4447444371) or job IDs, scraped with full details, and LinkedIn job-search links (https://www.linkedin.com/jobs/search/?keywords=…), run as searches with their keywords, location, company, date and Easy Apply filters.

## `distance` (type: `integer`):

Search radius in miles around each location (LinkedIn's own unit). Leave empty for LinkedIn's default.

## `postedWithin` (type: `string`):

Only jobs posted within this window. Leave empty for any time.

## `experienceLevel` (type: `string`):

Added to your keywords — LinkedIn's AI job search reads the level from the search text (its old experience filter is ignored for logged-out visitors).

## `jobType` (type: `string`):

Added to your keywords — LinkedIn's AI job search reads the job type from the search text.

## `workplace` (type: `string`):

Added to your keywords — LinkedIn's AI job search reads the workplace from the search text.

## `easyApply` (type: `boolean`):

Only jobs you can apply to on LinkedIn with Easy Apply.

## `under10Applicants` (type: `boolean`):

Only jobs with fewer than 10 applicants so far — apply early.

## `titleInclude` (type: `array`):

Keep a job only if its title contains every word of at least one of these phrases (case-insensitive), e.g. "backend" or "machine learning".

## `titleExclude` (type: `array`):

Drop jobs whose title contains every word of one of these phrases, e.g. "senior", "manager".

## `excludeCompanies` (type: `array`):

Drop jobs from these companies (name or slug, case-insensitive), e.g. staffing agencies.

## `onlyWithSalary` (type: `boolean`):

Keep only jobs that show a pay range. Works best with full job details on (search cards rarely carry pay).

## `skipJobIds` (type: `array`):

LinkedIn job IDs or links you already have — they are skipped and not billed.

## `maxResultsPerSearch` (type: `integer`):

Stop each search after this many jobs. LinkedIn shows up to 1,000 per search; add more locations to go further.

## `scrapeJobDetails` (type: `boolean`):

Add the full description, salary, seniority, employment type, industries, applicant count, benefits and the recruiter who posted the job. Billed as the details add-on.

## `includeCompanyDetails` (type: `boolean`):

Add the hiring company's page to every job: website, industry, size, HQ, founding year, followers, employees and about text. Billed as the company add-on.

## Actor input object example

```json
{
  "searchQueries": [
    "software engineer",
    "data scientist"
  ],
  "locations": [
    "San Francisco, CA"
  ],
  "easyApply": false,
  "under10Applicants": false,
  "onlyWithSalary": false,
  "maxResultsPerSearch": 25,
  "scrapeJobDetails": true,
  "includeCompanyDetails": false
}
```

# Actor output Schema

## `results` (type: `string`):

Every row with every field.

## `overview` (type: `string`):

Title, company, location, salary, posting date and applicants of every job.

## `details` (type: `string`):

Full description, seniority, benefits and recruiter of detailed jobs.

## `companies` (type: `string`):

The hiring company's page for jobs scraped with company details on.

# API

You can run this Actor programmatically using our API. Below are code examples in JavaScript, Python, and CLI, as well as the OpenAPI specification and MCP server setup.

## JavaScript example

```javascript
import { ApifyClient } from 'apify-client';

// Initialize the ApifyClient with your Apify API token
// Replace the '<YOUR_API_TOKEN>' with your token
const client = new ApifyClient({
    token: '<YOUR_API_TOKEN>',
});

// Prepare Actor input
const input = {
    "searchQueries": [
        "software engineer",
        "data scientist"
    ],
    "locations": [
        "San Francisco, CA"
    ],
    "maxResultsPerSearch": 25
};

// Run the Actor and wait for it to finish
const run = await client.actor("omkar-cloud/linkedin-jobs-scraper").call(input);

// Fetch and print Actor results from the run's dataset (if any)
console.log('Results from dataset');
console.log(`💾 Check your data here: https://console.apify.com/storage/datasets/${run.defaultDatasetId}`);
const { items } = await client.dataset(run.defaultDatasetId).listItems();
items.forEach((item) => {
    console.dir(item);
});

// 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/js/docs

```

## Python example

```python
from apify_client import ApifyClient

# Initialize the ApifyClient with your Apify API token
# Replace '<YOUR_API_TOKEN>' with your token.
client = ApifyClient("<YOUR_API_TOKEN>")

# Prepare the Actor input
run_input = {
    "searchQueries": [
        "software engineer",
        "data scientist",
    ],
    "locations": ["San Francisco, CA"],
    "maxResultsPerSearch": 25,
}

# Run the Actor and wait for it to finish
run = client.actor("omkar-cloud/linkedin-jobs-scraper").call(run_input=run_input)

# Fetch and print Actor results from the run's dataset (if there are any)
print(f"💾 Check your data here: https://console.apify.com/storage/datasets/{run.default_dataset_id}")
for item in client.dataset(run.default_dataset_id).iterate_items():
    print(item)

# 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/python/docs/quick-start

```

## CLI example

```bash
echo '{
  "searchQueries": [
    "software engineer",
    "data scientist"
  ],
  "locations": [
    "San Francisco, CA"
  ],
  "maxResultsPerSearch": 25
}' |
apify call omkar-cloud/linkedin-jobs-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,omkar-cloud/linkedin-jobs-scraper"
        }
    }
}
```

The hosted server signs you in with OAuth on first connect, so no API token belongs in this config. Clients without OAuth support can send an `Authorization: Bearer <APIFY_API_TOKEN>` header instead, using a token from API & Integrations in Apify Console (https://console.apify.com/settings/integrations).

## OpenAPI specification

Download the OpenAPI definition: https://api.apify.com/v2/actors/VjNDBEEqyoa9Edf1j/builds/rLIZmIrIAPFHlLoh1/openapi.json
