LinkedIn Jobs Scraper - No Login, Fast & Cheap
Pricing
from $0.50 / 1,000 job scrapeds
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
Maintained by CommunityActor 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) andpostedText(6 days ago),salaryandbenefitswhen LinkedIn shows them.- With Include full description (default on):
descriptionas plain text,seniority,employmentType,jobFunction,industries,applicantsandapplyUrl(the company's own application page when the job applies outside LinkedIn). search,keywords,searchLocation: where the row comes from.isNew:truewhen 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
- Open the Input tab.
- In Keywords type one search per line, for example
python developerormarketing manager, and set Location (Madrid, Spain,United States,London Area, United Kingdom...). Or paste Search URLs copied from LinkedIn Jobs; their own filters apply. - Optionally filter by Date posted, Workplace (on-site, remote, hybrid), Job type and Experience level, and choose Sort by relevance or most recent.
- Set Max jobs per search (default 100, up to 1,000) and leave Include full description on unless you only need the list.
- Click Start. Read the rows in Output or export them as JSON, CSV or Excel.
- 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}
| Field | Description |
|---|---|
keywords | Searches, one per line. Up to 50 searches per run (keywords plus URLs). |
location | City, region or country as LinkedIn names it. Applies to every keyword. |
searchUrls | LinkedIn job search URLs with their own filters. |
datePosted | day, week or month. Empty for any time. |
workplace | on-site, remote or hybrid. |
jobType | full-time, part-time, contract, temporary, internship, volunteer, other. |
experience | internship, entry, associate, mid-senior, director, executive. |
sortBy | relevance (default) or date. |
maxJobs | Per search, 1 to 1,000. Default 100. |
includeDescription | Fetch 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.