LinkedIn Jobs Scraper - No Login, Fast & Cheap avatar

LinkedIn Jobs Scraper - No Login, Fast & Cheap

Pricing

from $0.50 / 1,000 job scrapeds

Go to Apify Store
LinkedIn Jobs Scraper - No Login, Fast & Cheap

LinkedIn Jobs Scraper - No Login, Fast & Cheap

Public LinkedIn job postings for any keyword and location, filtered by date, remote, job type and experience: title, company, location, date, salary when shown, full description, seniority and apply link. No login, no cookies, no browser. $0.0005 per job; new jobs flagged on scheduled runs.

Pricing

from $0.50 / 1,000 job scrapeds

Rating

0.0

(0)

Developer

Antonio del Olmo Tena

Antonio del Olmo Tena

Maintained by Community

Actor stats

0

Bookmarked

1

Total users

0

Monthly active users

2 days ago

Last modified

Categories

Share

Get public LinkedIn job postings for any keyword and location as clean, structured rows. Type the searches you would run on LinkedIn Jobs, or paste search URLs from your browser, and the Actor returns one row per job with title, company, location, posting date, salary when LinkedIn shows it, the full description, seniority, employment type, job function, industries, applicant count and the external apply link. Filter by date posted, remote or hybrid, job type and experience level. Schedule it and every run flags the jobs that are new since the previous one.

No LinkedIn account, no cookies, no browser: the Actor reads the same public endpoints LinkedIn serves to visitors who are not logged in, so it is fast, cheap and does not put any account at risk. You pay $0.0005 per job returned.

What you get

One Dataset row per job:

  • title, url, id, company, companyUrl, companyLogo, location.
  • postedAt (YYYY-MM-DD) and postedText (6 days ago), salary and benefits when LinkedIn shows them.
  • With Include full description (default on): description as plain text, seniority, employmentType, jobFunction, industries, applicants and applyUrl (the company's own application page when the job applies outside LinkedIn).
  • search, keywords, searchLocation: where the row comes from.
  • isNew: true when the job was not in the previous run of that search.

A search with no results returns no rows and is not charged. A search that cannot be read gives a single row with an error field, also free.

How to use it

  1. Open the Input tab.
  2. In Keywords type one search per line, for example python developer or marketing manager, and set Location (Madrid, Spain, United States, London Area, United Kingdom...). Or paste Search URLs copied from LinkedIn Jobs; their own filters apply.
  3. Optionally filter by Date posted, Workplace (on-site, remote, hybrid), Job type and Experience level, and choose Sort by relevance or most recent.
  4. Set Max jobs per search (default 100, up to 1,000) and leave Include full description on unless you only need the list.
  5. Click Start. Read the rows in Output or export them as JSON, CSV or Excel.
  6. To monitor openings, schedule the Actor (hourly or daily) with Sort by set to most recent and Date posted to the past 24 hours. New jobs come with isNew: true; connect a webhook or an email integration to be notified.

Input

{
"keywords": ["python developer"],
"location": "Spain",
"datePosted": "week",
"workplace": "remote",
"sortBy": "date",
"maxJobs": 100,
"includeDescription": true
}
FieldDescription
keywordsSearches, one per line. Up to 50 searches per run (keywords plus URLs).
locationCity, region or country as LinkedIn names it. Applies to every keyword.
searchUrlsLinkedIn job search URLs with their own filters.
datePostedday, week or month. Empty for any time.
workplaceon-site, remote or hybrid.
jobTypefull-time, part-time, contract, temporary, internship, volunteer, other.
experienceinternship, entry, associate, mid-senior, director, executive.
sortByrelevance (default) or date.
maxJobsPer search, 1 to 1,000. Default 100.
includeDescriptionFetch each job page for the description and details. Default on.

Output example

{
"search": "https://www.linkedin.com/jobs/search/?keywords=python+developer&location=Spain&f_TPR=r604800&f_WT=2&sortBy=DD",
"keywords": "python developer",
"searchLocation": "Spain",
"id": "4472703950",
"url": "https://es.linkedin.com/jobs/view/fullstack-software-engineer-net-angular-at-julius-baer-4472703950",
"title": "FullStack Software Engineer .Net Angular - 100% (f/m/d)",
"company": "Julius Baer",
"companyUrl": "https://ch.linkedin.com/company/julius-baer",
"companyLogo": "https://media.licdn.com/dms/image/v2/.../company-logo_100_100/...",
"location": "Madrid, Community of Madrid, Spain",
"postedAt": "2026-09-28",
"postedText": "6 days ago",
"salary": null,
"benefits": null,
"description": "At Julius Baer, we celebrate and value the individual qualities you bring...",
"seniority": "Not Applicable",
"employmentType": "Full-time",
"jobFunction": "Engineering and Information Technology",
"industries": "Banking",
"applicants": "38 applicants",
"applyUrl": "https://jobs.juliusbaer.com/job/123",
"isNew": false,
"timestamp": "2026-10-04T18:00:00.000Z"
}

Pricing

Pay per event, no subscription:

  • Job scraped: $0.0005 per job row. 1,000 jobs with full descriptions cost $0.50.
  • New job: $0.002 per job flagged as new in a scheduled run. Runs with nothing new only pay for the rows.

Searches that cannot be read or return nothing are free. Compare with typical LinkedIn job scrapers at $1 to $3 per 1,000 jobs.

Use it as an API

Run it from your code with the Apify API or client libraries:

curl -X POST "https://api.apify.com/v2/acts/aolmo~linkedin-jobs/run-sync-get-dataset-items?token=YOUR_TOKEN" \
-H "Content-Type: application/json" \
-d '{"keywords": ["data engineer"], "location": "Germany", "datePosted": "day", "maxJobs": 50}'

The response is the list of job rows. You can also call it from AI agents through the Apify MCP server. For jobs published on company career pages (Greenhouse, Lever, Ashby...) use the companion Actor aolmo/jobs-ats.

FAQ

Does it need my LinkedIn account? No. It only reads what LinkedIn shows to visitors who are not logged in, so there is no account to ban and no cookies to maintain.

How many jobs can one search return? Up to 1,000, which is LinkedIn's own limit per search. Split broad searches by location or keyword to cover more.

Why is salary often empty? LinkedIn only shows a salary when the company publishes it. The description frequently contains it anyway.

What is in applyUrl? The company's application page when the job redirects outside LinkedIn. For Easy Apply jobs it is empty: those are applied to inside LinkedIn.

How fresh is the data? Live: every run queries LinkedIn at that moment. postedAt is the date LinkedIn reports for the posting.

Where is the data stored between runs? In a Key-Value Store of your account named micro-saas-state-linkedin-jobs, one key per search. Delete it to start fresh.