# LinkedIn Jobs Scraper: Job Postings with Full Descriptions (`hydrafetch/linkedin-jobs-scraper`) Actor

Search LinkedIn jobs by terms, location and filters and get every posting with its full description, applicants, seniority and listed pay. No login, no cookies.

- **URL**: https://apify.com/hydrafetch/linkedin-jobs-scraper.md
- **Developed by:** [Hydrafetch](https://apify.com/hydrafetch) (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 $1.80 / 1,000 results

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.
Since this Actor supports Apify Store discounts, the price gets lower the higher subscription plan you have.

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

<div align="center">

<img src="https://hydrafetch.com/brand/mark-512.png" alt="Hydrafetch" height="64" />

## LinkedIn Jobs Scraper: Job Postings with Full Descriptions

**Search LinkedIn jobs by terms, location and filters and get every posting with its full description, applicants, seniority and listed pay. No login, no cookies.**

`Pay per result` · `$2 per 1,000 jobs + $2 per 1,000 full descriptions` · `No API key` · Powered by [Hydrafetch](https://hydrafetch.com?utm_source=apify\&utm_medium=readme\&utm_content=linkedin-jobs-scraper)

</div>

***

### LinkedIn Jobs Scraper at a glance

- **Input:** Job search terms like "data engineer", or LinkedIn jobs search links, plus an optional location and filters.
- **Output:** one row per job with 19 fields, including title, company, location, postedAt.
- **Price:** $2 per 1,000 jobs, plus $2 per 1,000 full descriptions read from each job page. Switch descriptions off and it is never charged.
- **You need:** nothing else. No cookies, no logins, no proxies and no API keys.
- **Export:** JSON, CSV, Excel or XML, or straight into your own tools with the Apify API and MCP.

### What is LinkedIn Jobs Scraper?

Searches public LinkedIn job postings the way you would on LinkedIn: search terms or a pasted LinkedIn jobs search link, with an optional location and filters for date posted, workplace, job type and experience level. Every row is one job: title, company, location, posted date, pay when listed as text and numbers, and with descriptions on, the full description, applicant count, seniority, employment type, function and industries. Up to 1,000 jobs per search, newest first. Job posts only, never recruiter or applicant names. Searches with no jobs are skipped and not charged. Built for job market research, hiring signals and job boards.

- **Search like on LinkedIn.** Terms, location and filters, or paste a LinkedIn jobs search link.
- **The whole posting.** Full description, applicants, seniority, employment type, function and industries.
- **Pay when listed.** The salary text plus min, max, currency and period as numbers.
- **No personal data.** Job posts only, never recruiter or applicant names.

### What data can I extract with LinkedIn Jobs Scraper?

Every result is one row per job, with these fields:

| Field | What it holds |
| --- | --- |
| `searchQuery` | The search you gave |
| `searchUrl` | The same search on LinkedIn |
| `jobId` | The job's LinkedIn id |
| `url` | Link to the job |
| `title` | Job title |
| `company` | Hiring company |
| `companyUrl` | The company's LinkedIn page |
| `location` | Where the job is |
| `postedAt` | Date it was posted |
| `postedText` | How long ago, as LinkedIn shows it |
| `salary` | Pay when listed: the text, min, max, currency and period |
| `applicants` | Applicant count, when shown |
| `seniority` | Seniority level |
| `employmentType` | Full-time, part-time, contract and so on |
| `jobFunction` | Job function |
| `industries` | Industries |
| `description` | The full job description as plain text |
| `applyUrl` | Direct apply link, when LinkedIn shows it publicly |
| `logoUrl` | Company logo |

The table view in Apify shows Job, Company, Location, Posted, Applicants, Link. The full record is in the JSON, CSV, Excel and XML exports, and over the API.

### How to use LinkedIn Jobs Scraper

1. Open LinkedIn Jobs Scraper in the Apify Console. A free Apify account is enough to try it.
2. Paste your searches, one per line, or upload a list.
3. Click **Start**. Each search is processed on its own, so one bad entry never loses the batch.
4. Download the results as JSON, CSV or Excel, or send them to your own tools with an integration.

### Input

One field: **searches**. Job search terms like "data engineer", or LinkedIn jobs search links.

**location** narrows every search to a place, like `United States` or `London` (default: anywhere).

**postedWithin** keeps only jobs posted in the past `24h`, `week` or `month` (default `any`).

**workplace** picks any of `onsite`, `remote` and `hybrid`.

**jobTypes** picks any of `full-time`, `part-time`, `contract`, `temporary`, `internship`, `volunteer` and `other`.

**experience** picks any of `internship`, `entry`, `associate`, `mid-senior`, `director` and `executive`.

**maxJobsPerSearch** caps how many jobs come back per search, newest first (default 25, at most 1,000).

**includeDescriptions** reads each job page for the full description and details (default on). Switch it off for the list only, at the lower price.

Every line is checked before the run starts. Each must be job search terms like "data engineer", or a LinkedIn jobs search link; a run with any other line is refused with that line named, so a typo never costs you anything.

```json
{
  "searches": [
    "data engineer"
  ],
  "location": "United States",
  "postedWithin": "week",
  "workplace": ["remote"],
  "jobTypes": ["full-time"],
  "experience": ["mid-senior"],
  "maxJobsPerSearch": 25,
  "includeDescriptions": true
}
```

### Output

A search with no jobs is skipped and costs nothing. The run log names every one that was skipped, so a short result is never a mystery.

```json
{
  "searchQuery": "data engineer",
  "jobId": "4443016515",
  "url": "https://www.linkedin.com/jobs/view/4443016515",
  "title": "Lead Data Engineer",
  "company": "MFS Investment Management",
  "location": "Boston, MA",
  "postedAt": "2026-09-26",
  "applicants": 78,
  "seniority": "Not Applicable",
  "employmentType": "Full-time",
  "jobFunction": "Information Technology",
  "industries": "Investment Management",
  "salary": {
    "text": "$137,750.00/yr - $185,000.00/yr",
    "min": 137750,
    "max": 185000,
    "currency": "USD",
    "period": "year"
  },
  "description": "At MFS, you will find a culture that supports you in doing what you do best…"
}
```

### How much does LinkedIn Jobs Scraper cost?

LinkedIn Jobs Scraper charges **$2 per 1,000 jobs** returned ($0.002 each), only on success. Jobs returned with their full description also cost **$2 per 1,000** ($0.002 each) on top, because each one takes its own page read; switch descriptions off and you only pay for the list. There is no separate compute charge. For example, 1,000 jobs with descriptions cost $4, and 1,000 without cost $2.

- **You pay only for results.** A search with no jobs is skipped and costs nothing.
- **Try it on the free plan.** On Apify's free plan you get 50 jobs from this Actor in total, not per month, to try it out. After that a run stops and asks you to move to a paid Apify plan. Paid plans have no limit.
- **Volume discounts.** Scale plans pay 5% less per result and Business plans 10% less.
- **Cap any run.** Set a maximum cost per run in the run options and the Actor stops cleanly when it is reached.

### Common use cases

- **Job market research.** Track who is hiring for which roles, where and at what pay.
- **Hiring signals for sales.** Find companies hiring for the roles your product serves.
- **Job boards and alerts.** Schedule a task to feed new postings into your board or channel.
- **Salary benchmarks.** Collect listed pay ranges by role and location.

### Integrate LinkedIn Jobs Scraper with other apps

LinkedIn Jobs Scraper works with the integrations on the Apify platform, including [Make](https://apify.com/integrations/make), [Zapier](https://apify.com/integrations/zapier), [n8n](https://apify.com/integrations/n8n), [Google Sheets](https://apify.com/integrations/google-sheets), [Slack](https://apify.com/integrations/slack), [Airbyte](https://apify.com/integrations/airbyte), [Google Sheets](https://apify.com/integrations/google-sheets), [Slack](https://apify.com/integrations/slack), [Airtable](https://apify.com/integrations/airtable). Results can also go anywhere with a [webhook](https://docs.apify.com/platform/integrations/webhooks) when a run finishes.

To keep a list current, save your input as a task and put it on a [schedule](https://docs.apify.com/platform/schedules).

### LinkedIn Jobs Scraper API

Run LinkedIn Jobs Scraper from your own code with the Apify API clients.

**JavaScript**

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

const client = new ApifyClient({ token: 'YOUR_APIFY_TOKEN' });
const run = await client.actor('hydrafetch/linkedin-jobs-scraper').call({ searches: ["data engineer"] });
const { items } = await client.dataset(run.defaultDatasetId).listItems();
console.log(items);
```

**Python**

```python
from apify_client import ApifyClient

client = ApifyClient("YOUR_APIFY_TOKEN")
run = client.actor("hydrafetch/linkedin-jobs-scraper").call(run_input={"searches": ["data engineer"]})
for item in client.dataset(run["defaultDatasetId"]).iterate_items():
    print(item)
```

AI agents can call it too. Connect Claude, Cursor or any MCP client to the [Apify MCP server](https://mcp.apify.com) and add `hydrafetch/linkedin-jobs-scraper` as a tool.

### FAQ

#### What do I give it?

Search terms like "data engineer", or a LinkedIn jobs search link copied from your browser. Add a location and filters if you like.

#### How many jobs per search?

Up to 1,000, newest first. That is as deep as LinkedIn lets a search go.

#### Do I need a LinkedIn account or cookies?

No. It reads public job postings only.

#### What if a description cannot be read?

The job still comes back from the list, without the description, and the description price is not charged for it.

#### Is there a free trial?

Yes. On Apify's free plan you get 50 jobs from this Actor in total to try it, charged to your free Apify credit. After that, runs stop and ask you to move to a paid Apify plan, which has no limit.

#### Do I need cookies, a login or proxies?

No. LinkedIn Jobs Scraper works without cookies, accounts, proxies or API keys. Paste your searches and run it; everything else is handled for you.

#### Is it legal to use LinkedIn Jobs Scraper?

LinkedIn Jobs Scraper collects only publicly available public job postings on LinkedIn, without recruiter or applicant names. As with any data collection, you are responsible for how you use the results: follow the terms of the websites you work with and data protection laws such as GDPR wherever personal data is involved. If you are unsure about your use case, check with a lawyer.

#### Does LinkedIn Jobs Scraper have an API?

Yes. Every run is available through the Apify API, with the JavaScript and Python examples above, and through the Apify MCP server for AI agents.

### Other Actors by Hydrafetch

- [Company Enrichment API](https://apify.com/hydrafetch/company-enrichment-api): turn a list of domains into full company records: name, description, logo, brand colors, fonts, socials and industry.
- [Bulk Company Logo Finder](https://apify.com/hydrafetch/bulk-company-logo-finder): give it a list of domains and get a direct image URL for each company logo, with dimensions and dominant color.
- [Website Color Palette Extractor](https://apify.com/hydrafetch/website-color-palette-extractor): read a site's real design system: colors by role with contrast ratios, the type scale, corner radius and button styling.
- [AI SEO & GEO Audit](https://apify.com/hydrafetch/ai-seo-geo-audit): check whether an LLM or AI agent can actually read your pages, and get the specific reasons when it cannot.
- [Website to Markdown](https://apify.com/hydrafetch/website-to-markdown): turn a list of URLs into clean markdown for LLMs, RAG and AI agents, with navigation, banners and boilerplate removed.
- [Article Extractor](https://apify.com/hydrafetch/article-extractor): extract the full text, author, publish date and site details from any article or blog post URL.
- [Company Social Links Finder](https://apify.com/hydrafetch/company-social-links-finder): find the LinkedIn company page and every social profile a company links from its own website, from just the domain.
- [LinkedIn Company Scraper](https://apify.com/hydrafetch/linkedin-company-scraper): get industry, company size, headcount, followers, headquarters and more from LinkedIn company pages, by URL or by domain.
- [Tech Stack Detector](https://apify.com/hydrafetch/website-tech-stack-detector): find the CMS, ecommerce platform, analytics, frameworks, hosting and payment tools any website runs, from just the domain.
- [PDF to Markdown](https://apify.com/hydrafetch/pdf-to-markdown): convert PDF links into clean markdown with headings and tables intact, ready for LLMs, RAG and search.
- [Website Crawler to Markdown](https://apify.com/hydrafetch/website-crawler-to-markdown): crawl a whole website or docs section into clean markdown for LLMs, RAG and AI agents, one row per page.
- [Company Jobs Scraper](https://apify.com/hydrafetch/company-jobs-scraper): get every open job at a company from just its domain: titles, teams, locations, pay and full descriptions, from the hiring platform it uses.
- [YouTube Transcript Scraper](https://apify.com/hydrafetch/youtube-transcript-scraper): get the full transcript of any YouTube video with timestamps, title and channel, ready for AI summaries, RAG and search.
- [Google Ads Library Scraper](https://apify.com/hydrafetch/google-ads-library-scraper): get every Google ad a company runs from just its domain: creatives, formats and first and last shown dates, from the public Ads Transparency Center.
- [LinkedIn Ad Library Scraper](https://apify.com/hydrafetch/linkedin-ad-library-scraper): get every LinkedIn ad a company runs from its domain, name or LinkedIn page, with the full copy, creative, run dates, impressions by country and targeting.
- [Facebook Ads Library Scraper](https://apify.com/hydrafetch/facebook-ads-library-scraper): get the Facebook and Instagram ads any brand runs from its name, domain or an Ad Library link: copy, creatives, carousel cards, platforms and dates.
- [Website Contact Details Scraper](https://apify.com/hydrafetch/website-contact-details-scraper): get the emails, phone numbers, social profiles and address a company publishes on its own website, from just its domain.
- [App Store and Google Play Scraper](https://apify.com/hydrafetch/app-store-google-play-scraper): get app details and the newest reviews from the Apple App Store and Google Play in one run: ratings, installs, versions, and review text with developer replies.
- [Trustpilot Reviews Scraper](https://apify.com/hydrafetch/trustpilot-reviews-scraper): get any company's TrustScore, star breakdown and newest Trustpilot reviews from just its domain, with company replies and without reviewer names.
- [Shopify Store Products Scraper](https://apify.com/hydrafetch/shopify-store-products-scraper): get every product from any Shopify store by its domain: titles, prices, variants, SKUs, stock and images, including stores that hide their product feed.
- [Google Maps Scraper with Emails](https://apify.com/hydrafetch/google-maps-scraper-emails): search Google Maps like you would in the app and get every place with its address, phone, website, rating and reviews, plus emails from its own website when you want them.
- [Amazon Product Scraper](https://apify.com/hydrafetch/amazon-product-scraper): search Amazon.com like you would in the app, or paste product links and ASINs, and get every product with its US price, rating, reviews and sales signals, plus the full product page when you want it.
- [News Scraper with Full Article Text](https://apify.com/hydrafetch/news-scraper-full-text): search the news for any topic and get recent articles with their full text as clean markdown, real publisher links and publish dates.
- [Company Ads Across Google, LinkedIn and Meta](https://apify.com/hydrafetch/company-ads-all-platforms): get the Google, LinkedIn and Facebook and Instagram ads a company runs from just its domain, in one dataset with the same columns for every platform.
- [Company Website Finder](https://apify.com/hydrafetch/company-website-finder): turn a list of company names into their official websites and domains, each checked against the company homepage so directories never slip through.
- [Website Screenshot API](https://apify.com/hydrafetch/website-screenshot-api): capture screenshots of any web pages as hosted PNG links, full page or first screen, rendered in a real browser and priced per screenshot.

### Terms of use

**Your results are yours.** We claim no rights in the inputs you submit or the data you get back. Full terms: [hydrafetch.com/terms](https://hydrafetch.com/terms?utm_source=apify\&utm_medium=readme\&utm_content=linkedin-jobs-scraper)

### Your feedback

Something not working, or a field you need? Open an issue on the Issues tab with the input you used, and we read every one.

***

<div align="center">
Built by <a href="https://hydrafetch.com?utm_source=apify&utm_medium=readme&utm_content=linkedin-jobs-scraper">Hydrafetch</a>. Clean web data for developers and agents.
</div>

# Actor input Schema

## `searches` (type: `array`):

The searches to process, one per line. Job search terms like "data engineer", or LinkedIn jobs search links.

## `location` (type: `string`):

Where the jobs are, like "United States", "London" or "Berlin, Germany". Leave empty for anywhere. A pasted LinkedIn search link uses its own location.

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

Only jobs posted in this window.

## `workplace` (type: `array`):

On-site, remote or hybrid. Leave empty for all.

## `jobTypes` (type: `array`):

Leave empty for all job types.

## `experience` (type: `array`):

Leave empty for all levels.

## `maxJobsPerSearch` (type: `integer`):

How many jobs to return for each search, newest first, at most 1,000.

## `includeDescriptions` (type: `boolean`):

Read each job page for the full description, applicant count, seniority, employment type, function, industries and pay. Off returns the list only, at the lower price.

## Actor input object example

```json
{
  "searches": [
    "data engineer"
  ],
  "postedWithin": "any",
  "maxJobsPerSearch": 25,
  "includeDescriptions": true
}
```

# Actor output Schema

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

LinkedIn Jobs Scraper: Job Postings with Full Descriptions records (the run's default dataset).

# 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 = {
    "searches": [
        "data engineer"
    ]
};

// Run the Actor and wait for it to finish
const run = await client.actor("hydrafetch/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 = { "searches": ["data engineer"] }

# Run the Actor and wait for it to finish
run = client.actor("hydrafetch/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 '{
  "searches": [
    "data engineer"
  ]
}' |
apify call hydrafetch/linkedin-jobs-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,hydrafetch/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/AiCHe0GgzSbuxY2i7/builds/o0ayfoiw5RJWuU0Bf/openapi.json
