LinkedIn Jobs Scraper & Job Search API (No Login) avatar

LinkedIn Jobs Scraper & Job Search API (No Login)

Pricing

from $0.75 / 1,000 results

Go to Apify Store
LinkedIn Jobs Scraper & Job Search API (No Login)

LinkedIn Jobs Scraper & Job Search API (No Login)

Fast LinkedIn Jobs Scraper and job search API. Run single or batch title/location searches, apply date, company, Easy Apply, workplace, employment and seniority filters, and export descriptions, applicant counts, company data and application links. No login or cookies. API-ready output.

Pricing

from $0.75 / 1,000 results

Rating

5.0

(1)

Developer

Cracks API

Cracks API

Maintained by Community

Actor stats

0

Bookmarked

3

Total users

3

Monthly active users

6 days ago

Last modified

Share

LinkedIn Jobs Scraper and Job Search API (No Login)

Search and export public LinkedIn job postings without a LinkedIn account, cookies, or browser session. Use job titles, Boolean keywords, locations, company IDs, posting date, workplace type, employment type, seniority, and Easy Apply filters.

The Actor returns structured job data for job boards, recruiting research, hiring intelligence, job alerts, lead generation, and labor-market analysis. Export results to JSON, CSV, Excel, Google Sheets, n8n, Make, Python, JavaScript, or any API workflow.

Unofficial. This Actor is independent and is not affiliated with, endorsed by, or sponsored by LinkedIn Corporation. LinkedIn is a trademark of LinkedIn Corporation.

Why use this LinkedIn Jobs Scraper?

  • No LinkedIn login or cookies required
  • Batch search across multiple job titles and locations
  • Boolean keyword queries supported by LinkedIn public search
  • Full job descriptions in plain text and HTML
  • Application and LinkedIn job URLs
  • Applicant count, posting date, employment type, and seniority
  • Basic company metadata including company ID, page URL, name, and logo
  • Remote, hybrid, and on-site classification from explicit posting evidence
  • Strict post-filters that exclude unknown or non-matching records
  • Concurrent detail enrichment for faster runs
  • Deduplication by LinkedIn job ID
  • Pay only for saved job results

Quick start

{
"keywords": "Python Developer",
"location": "India",
"publishedAt": "Past Week",
"sortBy": "Date",
"maxRows": 20,
"enrichDetails": true
}

Use jobTitles and locations to run multiple searches in one Actor run. Batch arrays override the single keywords and location shortcuts.

{
"jobTitles": [
"Python Developer",
"Data Engineer",
"(React OR Next.js) Developer"
],
"locations": [
"India",
"Remote"
],
"publishedAt": "Past 24 Hours",
"sortBy": "Date",
"maxRows": 100
}

maxRows is the maximum total number of unique records saved across all search combinations. Search combinations are capped at 50 per run to prevent accidental high-volume requests.

Input fields

FieldTypeDescription
keywordsstringSingle job-title, keyword, or Boolean query
jobTitlesstring[]Optional batch search queries; overrides keywords
locationstringSingle location shortcut
locationsstring[]Optional batch locations; overrides location
companyIdsstring[]LinkedIn numeric company IDs
publishedAtstringAny Time, Past Hour, Past 24 Hours, Past Week, or Past Month
sortBystringRelevance or Date
maxRowsintegerMaximum total unique jobs, from 1 to 1,000
easyApplyOnlybooleanUse LinkedIn's public Easy Apply filter
workplaceTypestringStrict Remote, Hybrid, or On-site post-filter
jobTypestringStrict employment-type post-filter
experienceLevelstringStrict seniority-level post-filter
enrichDetailsbooleanFetch descriptions, criteria, company metadata, applicants, and application links
maxConcurrencyintegerConcurrent public job-detail requests, from 1 to 10
requestDelayMsintegerDelay between pages and detail batches
proxyConfigurationobjectOptional Apify proxy settings

When workplace, employment, or experience filters are selected, detail enrichment is automatically enabled. If LinkedIn does not expose the requested field for a job, that job is excluded rather than incorrectly passing the filter.

Output example

{
"jobId": "4461963315",
"id": "4461963315",
"title": "Python Backend Developer",
"companyName": "Wissen Technology",
"companyUrl": "https://www.linkedin.com/company/wissen-technology",
"companyLogo": "https://media.licdn.com/dms/image/...",
"company": {
"id": "13226107",
"name": "Wissen Technology",
"linkedinUrl": "https://www.linkedin.com/company/wissen-technology",
"logo": "https://media.licdn.com/dms/image/..."
},
"location": "Bengaluru, Karnataka, India",
"postedAt": "2026-09-04",
"postedTimeAgo": "2 days ago",
"jobUrl": "https://in.linkedin.com/jobs/view/python-backend-developer-at-wissen-technology-4461963315",
"linkedinUrl": "https://www.linkedin.com/jobs/view/4461963315/",
"applyUrl": "https://www.linkedin.com/jobs/view/4461963315/apply",
"descriptionText": "Full public job description...",
"descriptionHtml": "<p>Full public job description...</p>",
"seniorityLevel": "Entry level",
"experienceLevel": "Entry level",
"employmentType": "Full-time",
"employmentTypeKey": "full_time",
"jobFunction": "Information Technology",
"industries": "IT Services and IT Consulting",
"applicantCount": "Over 200 applicants",
"applicants": 200,
"workplaceType": "Hybrid",
"workplaceTypeKey": "hybrid",
"workRemoteAllowed": true,
"jobState": "LISTED",
"source": "LinkedIn public jobs pages",
"scrapedAt": "2026-09-07T08:00:00.000Z"
}

Existing field names remain available for backwards compatibility. Additional normalized aliases make the dataset easier to use in APIs, databases, and automation tools.

Common use cases

  • Build a searchable LinkedIn jobs dataset
  • Monitor new jobs by title, company, industry, or location
  • Create daily or hourly job alerts
  • Analyze remote and hybrid hiring trends
  • Track competitors' hiring activity
  • Find companies currently hiring specific roles
  • Feed job postings into an ATS, CRM, data warehouse, or AI workflow
  • Research employment demand and labor-market trends

API integration

Replace YOUR_APIFY_TOKEN with your Apify API token.

cURL

curl -X POST \
"https://api.apify.com/v2/acts/generous_fog~linkedin-jobs-scraper-no-login/run-sync-get-dataset-items?token=YOUR_APIFY_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"keywords": "Python Developer",
"location": "India",
"publishedAt": "Past Week",
"maxRows": 20
}'

JavaScript or TypeScript

import { ApifyClient } from 'apify-client';
const client = new ApifyClient({ token: process.env.APIFY_TOKEN });
const run = await client.actor('generous_fog/linkedin-jobs-scraper-no-login').call({
keywords: 'Python Developer',
location: 'India',
publishedAt: 'Past Week',
maxRows: 20,
});
const { items } = await client.dataset(run.defaultDatasetId).listItems();
console.log(items);

Python

from apify_client import ApifyClient
client = ApifyClient("YOUR_APIFY_TOKEN")
run = client.actor("generous_fog/linkedin-jobs-scraper-no-login").call(run_input={
"keywords": "Python Developer",
"location": "India",
"publishedAt": "Past Week",
"maxRows": 20,
})
items = client.dataset(run["defaultDatasetId"]).list_items().items
print(items)

n8n

Use an HTTP Request node:

  • Method: POST
  • URL: https://api.apify.com/v2/acts/generous_fog~linkedin-jobs-scraper-no-login/run-sync-get-dataset-items
  • Query parameter: token={{ $env.APIFY_TOKEN }}
  • Body content type: JSON
  • Body: the same input JSON used in the Console

Send the returned array to Google Sheets, Airtable, Slack, email, a CRM, or your database.

Make.com

Use the Apify integration to run generous_fog/linkedin-jobs-scraper-no-login, wait for completion, and retrieve default dataset items. Schedule the scenario for recurring job monitoring.

MCP and AI agents

Use the Apify MCP server with this Actor as a tool:

{
"mcpServers": {
"apify": {
"type": "http",
"url": "https://mcp.apify.com/?tools=fetch-actor-details,generous_fog/linkedin-jobs-scraper-no-login"
}
}
}

Pricing

The Actor uses pay-per-event pricing:

  • $0.75 per 1,000 saved job results
  • A very small Actor-start event
  • Filtered-out records are not saved and are not billed as results

Apify platform or proxy usage may depend on your plan and proxy settings.

Accuracy and limitations

  • Results come from LinkedIn's public guest job pages. Coverage can differ from logged-in LinkedIn search.
  • applyUrl opens LinkedIn's application flow. Public guest pages do not always expose the employer's final offsite application URL.
  • Workplace type is returned only when Remote, Hybrid, or On-site is explicitly indicated in the title, location, or description. Otherwise it is null.
  • Applicant numbers such as “Over 200 applicants” are normalized to 200 while the original label remains in applicantCount.
  • Salary, views, benefits, and complete company profiles are not consistently exposed on public guest pages and are not fabricated.
  • Public endpoints can throttle high-volume traffic. Use an Apify proxy, reduce concurrency, or increase the batch delay if needed.
  • LinkedIn can change its public HTML structure. Open an Issue if a field stops appearing.

Responsible use

Only collect and process data you are legally permitted to use. Follow applicable privacy, employment, anti-discrimination, and data-protection laws. Do not use job data for unlawful profiling, spam, or discriminatory decisions.

FAQ

Does this Actor require LinkedIn cookies?

No. It uses public LinkedIn job-search and job-detail pages.

Can I search multiple job titles and locations?

Yes. Use jobTitles and locations. The Actor combines them, deduplicates by job ID, and enforces the total maxRows limit.

Yes. Put a LinkedIn-supported Boolean expression in keywords or any jobTitles item.

Why can workplace type be null?

The Actor avoids guessing. It returns a workplace type only when the public posting contains explicit evidence.

Why is the employer's direct application URL sometimes unavailable?

LinkedIn's public guest page can hide the final offsite URL behind its sign-in or application flow. The Actor always provides the LinkedIn job URL and LinkedIn application-flow URL instead of inventing a destination.

Are duplicate jobs charged twice?

No. Jobs are deduplicated by LinkedIn job ID before they are saved.

More LinkedIn Actors by Cracks API