LinkedIn Jobs Scraper - No Login, Salary & Company Data avatar

LinkedIn Jobs Scraper - No Login, Salary & Company Data

Pricing

from $1.00 / 1,000 results

Go to Apify Store
LinkedIn Jobs Scraper - No Login, Salary & Company Data

LinkedIn Jobs Scraper - No Login, Salary & Company Data

Scrape LinkedIn jobs without login across ~45 countries. Filter by company, industry, job function, and Easy Apply. Extract salary, apply links, and applicant counts for recruiting and lead generation.

Pricing

from $1.00 / 1,000 results

Rating

0.0

(0)

Developer

kane liu

kane liu

Maintained by Community

Actor stats

3

Bookmarked

18

Total users

2

Monthly active users

9 days ago

Last modified

Share

LinkedIn Jobs Scraper

Turn any LinkedIn job search into a downloadable spreadsheet — no login, no risk to your account.

Architecture: this Apify Actor is a thin client. Scraping runs on the linkedin-com Cloud Run worker (Patchright Guest Jobs engine) over HTTPS + API key. Input/output fields and Store pricing are unchanged.

Worker URL is config, not code: the Actor reads WORKER_BASE_URL from Actor environment variables (plus optional per-run workerBaseUrl). If you migrate the worker to a new host, update WORKER_BASE_URL (and WORKER_AUTH if the API key changes) in Apify Console — no Actor code change required. Set WORKER_PROVIDES_PROXY=1 when the worker supplies its own PROXY_URL instead of Apify RESIDENTIAL.

  • ✅ Live LinkedIn Guest Jobs search (no login) across ~45 countries via geoId
  • ✅ Filter by company, industry, job function, workplace type, seniority, and date posted
  • ✅ Optional Easy Apply only mode, plus applyUrl / applicantsCount when detail scraping is on
  • ✅ Get titles, companies, salaries (when disclosed), locations, descriptions, and seniority
  • ✅ Download as Excel, CSV, or JSON — pay $0.001 per job, no subscription

Paying LinkedIn Recruiter Lite $2,040/yr or PhantomBuster $69/mo just to watch what's hiring in your target market? This costs pennies per search and doesn't touch your LinkedIn account at all.


What you can do with it

1. Monitor the job market for your target keyword

Want to see every "python developer" opening in New York this week? Or every "marketing manager" role at companies in London that went live in the last 24 hours? That's what this does — you give it a keyword, a location, and LinkedIn-style filters, and it comes back with a clean spreadsheet of matching jobs.

To run a search, you fill in a short form on the Apify page — same filters you'd use on LinkedIn itself, just served as a form instead of a UI you click through:

What you enter:

WhatExample
Searchpython developer or marketing manager
LocationNew York
CountryUnited States (or any of ~45 supported markets)
CompanyGoogle company ID / LinkedIn company URL (optional)
Industry / Job functionSoftware · Engineering (optional)
Job typeFull-time
Easy Apply onlyNo (or Yes to narrow to Easy Apply)
Date postedPast week
How many results100

Click Start. A minute or two later (depending on how many jobs you asked for), the Actor has done the LinkedIn search for you and produced a table with every matching role:

What you get back:

Job titleCompanyLocationPostedSeniorityEasy ApplyApplicantsSalaryLink
Software EngineerUberSan Francisco, CA2026-04-10Entry levelYes25$160K–$250Kview
Senior Python DeveloperStripeNew York, NY2026-04-12Mid-Senior200(not disclosed)view

Every row is everything you need to track a role — the title, the company, where it's based, when it went live, how senior, salary if disclosed, apply signals when available, and a direct link to the LinkedIn posting. Download as Excel, CSV, or JSON straight from the Apify dashboard, or pipe it into a Google Sheet / Airtable via Make or Zapier.


2. Cheaper alternative to LinkedIn Recruiter or PhantomBuster

LinkedIn Recruiter Lite runs $2,040/year. Recruiter Corporate is ~$10,800/year per seat. PhantomBuster starts at $69/month. If you just need to pull job postings into a spreadsheet for market research, competitor tracking, or lead-gen signals — those tools are wildly over-priced for what you're doing.

This Actor gives you the same job data (plus more fields than PhantomBuster returns) at $0.001 per job. Same form as Use Case 1, just with filters tuned for cost-efficient runs:

What you enter:

WhatExample
Searchsenior marketing manager
LocationLondon
CountryUnited Kingdom
Experience levelMid-Senior level
How many results500
Get full job details?Yes

What you get back (500 jobs, about 3 minutes to run):

Job titleCompanyLocationSenioritySalaryIndustry
Senior Marketing ManagerMonzoLondonMid-Senior£75K–£90KFinancial Services
Head of Growth MarketingRevolutLondonDirector(not disclosed)Fintech

Cost for this run: about $0.50. That's less than a single day of PhantomBuster's Starter plan, and you get 500 real LinkedIn job postings with full descriptions, seniority, and industry fields. For recruiters and sales teams doing weekly market sweeps, the math works out to a few dollars a month instead of thousands a year.


3. Use job postings as buying signals for B2B outreach

If you sell to specific industries or team functions, who's hiring right now is one of the strongest buy-intent signals available. A company posting 5 "DevOps Engineer" roles is buying new cloud tooling. A company posting a "Head of RevOps" is about to overhaul their CRM stack. This Actor gives you that signal before your competitors spot it.

Set up a search around the role that signals your ideal buyer. You don't need reviews or full descriptions for this — just the basics so you can feed it into your CRM:

What you enter:

WhatExample
Searchhead of revops or devops engineer
LocationUnited States
Date postedPast 24 hours
How many results50
Get full job details?No (company name and posting date is enough)

What you get back (50 fresh openings for your signal):

CompanyJob titleLocationPosted
NotionHead of RevOpsSan Francisco, CAToday
RampDirector, Revenue OperationsNew York, NY2 days ago

Feed this directly into your CRM via Zapier or Make — for every new company that hits the list, the automation can create a new outbound target, enrich it with Global Company Search for the verified registration + LEI, and add it to your sequencer. One setup, a steady stream of qualified leads based on actual hiring intent rather than cold lists.


4. Track competitor hiring on a weekly schedule

If a competitor starts posting 3x their usual volume of engineering roles, something's about to launch. If they're posting in new cities, they're expanding into a new market. Run this Actor once a week on a set of competitor names or keywords, compare each week's file to the last, and you'll spot these moves before they hit the press.

Set up a search around the companies or roles you want to track, then use Apify's built-in Scheduler (or a Zapier / Make trigger) to run it automatically every Monday morning:

What you enter:

WhatExample
Searchsoftware engineer at Stripe (or just Stripe)
CountryUnited States
Date postedPast week
How many results200

What you get back (scheduled weekly):

Job titleCompanyPosted this weekOpen last week?Change
Staff Engineer, PaymentsStripe2026-04-16NoNew
Senior PM, TreasuryStripe2026-04-12YesStill open
Engineering Manager, AtlasStripe2026-04-08YesClosed this week

A simple spreadsheet diff (or an automation in Make / Zapier) is enough to flag new postings, role closures, and shifts in hiring focus. No monitoring software on top — just this Actor + a schedule + your own tool of choice for the diff.


5. Use it from ChatGPT, Claude, or no-code automation

Ask your AI assistant (ChatGPT, Claude, Cursor) a question like "find every senior data engineer role posted this week in Berlin, with salary if listed" — it runs this Actor and returns real, current data back into the conversation. Also works as a standard "Run Actor" step in Make, n8n, and Zapier.

Connect the Apify MCP server once in your assistant's settings (configuration in the developer section below), and from then on you just ask questions in plain English inside the chat:

What you enter (a plain-English question, not a form):

WhatExample
Searchsenior data engineer
LocationBerlin
CountryGermany
Date postedPast week

The assistant translates your question into the right Actor input, runs the search, and shows the results in the conversation:

What your assistant gets back:

Job titleCompanyLocationSenioritySalary
Senior Data EngineerZalandoBerlin, GermanyMid-Senior€85K–€110K
Lead Data Platform EngineerN26Berlin, GermanyDirector(not disclosed)

You can follow up naturally — "which ones offer remote?" or "sort by salary descending" or "export this to Google Sheets" — and your assistant will filter, sort, or pipe the data without having to re-run the search.


More Actors like this

Need another job board or a different vertical? Use a dedicated Actor below for structured fields. Use this Actor for LinkedIn Jobs search without login across supported countries.

Similar jobs & freelance Actors

Prefer another specialized scraper?

If your target has a specialized Actor below, use that first — usually cheaper and more structured than a generic scrape.

E-commerce

Real Estate

Travel & Stays

Social & Content

Ads Intelligence

Local & Maps

General Tools

→ See the full catalog in Related Actors below, or browse apify.com/lentic_clockss.


How to use (no code required)

  1. Click "Try for Free" at the top of this page
  2. Type a keyword — any job title or skill (e.g. python developer, product manager, head of sales)
  3. (Optional) Set location + country (~45 markets), company (ID or LinkedIn URL), industry, job function, job type, seniority, remote/hybrid, or posted-date
  4. (Optional) Turn on Easy Apply only if you only want Easy Apply listings
  5. Set how many results you want (default 50, up to 1,000) and whether to scrape full details
  6. Click Start — results appear in the Dataset tab in a minute or two, ready to download as Excel, CSV, or JSON

That's the whole workflow — type, wait, download. If you've ever typed a job search into LinkedIn itself, you already know how to use this Actor. The only difference is that instead of clicking through pages of results in a browser, you get them back as a spreadsheet you can sort, filter, email, or pipe into any other tool.

No login needed. This Actor doesn't touch your LinkedIn account — it uses LinkedIn's public Guest Jobs search, the same surface any logged-out visitor sees. Your own account stays completely untouched and safe.

Free Apify plan limits (set by this Actor's developer)

If your Apify account is on the free plan, this Actor applies the following limits so you can evaluate it without unlimited usage:

LimitFree Apify planPaid Apify plan
Runs of this Actor10 runs totalUnlimited
Jobs per run (maxResults)Up to 1,000Up to 1,000

These caps are enforced by the Actor developer (not Apify platform errors). When you hit the 10-run limit, the run finishes gracefully with a clear status message asking you to upgrade. Paying Apify users are not subject to the run cap.

The $5 free Apify credit you get on signup covers ~5,000 jobs — enough to run real market research or a competitor audit before spending anything (subject to the free-plan run cap above).

GoalSuggested inputs
Country market scankeyword + country=jp (or de, br, ae, …)
Competitor hiring watchkeyword=engineer + company=https://www.linkedin.com/company/google (or company ID 1441)
Sector researchindustry=financial_services + jobFunction=finance
Fast-apply pipelineeasyApplyOnly=true + scrapeDetails=true

What you get back

Each job posting comes back as one row in a table. Here's everything you'll see in that row:

  • Job title and the company hiring
  • Location (city, region, country) and whether the role is remote, on-site, or hybrid
  • Posting date — when the job went live on LinkedIn
  • Employment type — full-time, part-time, contract, temporary, internship, etc.
  • Experience level — entry, associate, mid-senior, director, executive
  • Job function and industry (from filters and/or detail pages)
  • Salary range — when disclosed by the employer
  • Full job description — when scrapeDetails=true
  • Easy Apply, apply URL, and applicants count — when LinkedIn discloses them on the detail page
  • Detected skills — keyword matches from the description
  • Direct LinkedIn URL and company LinkedIn URL

Each result set comes back as a table you can download as Excel, CSV, or JSON, or send directly to your CRM, ATS, or spreadsheet through Zapier or Make.

This format works directly in Excel, Google Sheets, Airtable, Notion, or any tool that accepts CSV imports. No data cleanup needed — every field is already structured and ready to use.


Data sources

All data comes directly from LinkedIn's public Guest Jobs search — the same surface a logged-out visitor uses at linkedin.com/jobs. No login, no session hijacking, no scraping of private member data. Every run is a live fetch at run time, so the results reflect what's actually live on LinkedIn at that moment.

Country filtering uses LinkedIn geoId values for about 45 major hiring markets (US, UK, EU hubs, Japan, Korea, India, Singapore, Brazil, UAE, and more). You can still pass a free-text location for cities/regions. Company filters accept LinkedIn company IDs or company page URLs.


Pricing

Pay per job. No subscription.

Billing is simple: you pay a negligible fee to kick off a run, plus a per-job fee for each posting the Actor returns. That's it — no tiers, no seat fees, no monthly minimums.

What triggers a chargeCost
Actor start (each run)$0.00005 (effectively free)
Each job scraped$0.001

Free Apify plan: up to 10 runs of this Actor and 1,000 jobs per run. Upgrade to a paid Apify plan for unlimited runs. (Limits set by the Actor developer.)

To give you a feel for what this looks like in actual dollars for real-world runs:

Real-world cost examples:

ScenarioJobsTotal cost
Quick check: python devs in NYC this week50$0.05
Weekly competitor sweep: 5 companies × 100 roles500$0.50
Monthly market research: full keyword across a metro1,000$1.00
Major sector audit: hiring trends across an industry10,000$10.00

The cost scales linearly — double the jobs, double the cost. No tier thresholds, no surprise jumps.

$5 free Apify credit = ~5,000 jobs — enough to run a real market research pass before paying anything.


How this compares to the alternatives:

Here's what you'd pay with other common tools for similar LinkedIn jobs data — or, for some of them, to discover they don't even let you export raw data at all:

ToolPriceWhat you getWhat you don't get
LinkedIn Recruiter Lite$2,040/yr (1 seat, 360 InMails)Official search UI, contact reach-out toolsNo exports, no bulk data, no automation
LinkedIn Recruiter Corporate~$10,800/yr per seatEnterprise ATS featuresSame — no raw data export
Bright Data LinkedIn Jobs$1.50/1K (pay-as-you-go) or $499/mo (Scale)Raw LinkedIn jobs data$499/mo subscription minimum on the scale tier
PhantomBuster$69–$439/moLinkedIn automation + scrapingMonthly subscription, session-based (requires your LinkedIn cookie)
Coresignal~$800/mo (Pro tier ≈ $0.08/record)Curated jobs dataset26x more expensive per record, enterprise-only
Oxylabs Web Scraper API$49/mo startingGeneral-purpose scrapingHave to build the LinkedIn parsing layer yourself
This Actor$0.00005/run + $0.001/jobLinkedIn jobs data with 45-country geo, company/industry/function filters, Easy Apply signals, MCP + LangChain native

No annual contract. No subscription. No seat minimum. $5 free credit covers ~5,000 jobs — start there.

If you run zero searches in a month, you owe zero dollars. None of the alternatives above work that way.


Connect to your tools

Use this Actor from any of the major no-code and automation tools. You don't need to write or edit any code — each tool has a built-in Apify connector that handles the wiring for you:

PlatformHow to connect
Make.comSearch "Apify" → "Run Actor" → use Actor ID lentic_clockss/linkedin-jobs-scraper
n8nAdd Apify node → "Run Actor" → same Actor ID
ZapierApify integration → "Run Actor" trigger
ChatGPT / Claude / CursorConnect via Apify's MCP endpoint — your AI assistant calls this Actor directly inside a chat
LangChain, Python, custom codeVia Apify SDK or direct API call

The three most common setups in practice:

  • With ChatGPT, Claude, or Cursor: connect once via MCP (configuration in the developer section below), then just ask questions in plain English inside the chat — "find all senior product manager roles posted this week in Berlin and Amsterdam" — and your assistant runs this Actor and returns the results right in the conversation.
  • With Make or Zapier: set up a scheduled automation (for example: "every Monday at 8am, run this Actor with these filters, then write new jobs to Google Sheets / email me a diff / post any competitor's new roles to Slack"). Configure once, it runs forever.
  • With n8n: same idea as Make and Zapier, with a self-hosted option if you need your data to stay on your own infrastructure.

When to use something else

This Actor is built specifically for pulling public job postings off LinkedIn into a spreadsheet. For anything outside that scope, here are the tools that fit better:

If you need…Use this instead
To reach out to LinkedIn members via InMail / connectionsLinkedIn Recruiter or Sales Navigator — those are what the official product is for
Member profiles (not jobs) — titles, work history, skillsA dedicated LinkedIn profile scraper (this one is jobs-only)
Local business data (restaurants, dentists, shops)Google Maps Scraper
Company registry data (incorporation, officers, filings)Global Company Search
Scraping arbitrary websites behind anti-bot protectionStealth Web Scraper

FAQ

Q: Do I have to log in or give you my LinkedIn account? A: No — never. This Actor uses LinkedIn's public Guest API, which is the same endpoint a logged-out visitor hits when browsing jobs at linkedin.com/jobs. Your LinkedIn account stays completely untouched.

Q: Will this get my LinkedIn account banned? A: No. Since the Actor doesn't use your account at all, there's nothing tying the scrape to you. This is different from tools like PhantomBuster, which require your session cookie and do carry real ban risk.

Q: How fresh is the data? A: Every run is a live fetch at run time. The results reflect what LinkedIn is showing that moment — if a job went live an hour ago, you'll see it.

Q: Can I get 1,000+ jobs in one run? A: The input accepts up to 1,000. In practice LinkedIn's logged-out jobs UI usually exposes a few dozen to a couple hundred matches per query before it stops loading more. For large sweeps, split by city, seniority, or posted-date windows and merge datasets.

Q: Do all jobs have salary data? A: About 30% do — salary disclosure is required in several US states (NY, CA, WA, CO) and many EU countries, but not everywhere. When disclosed, you get the full range, currency, and period (yearly / monthly / hourly).

Q: Can I run this on a schedule? A: Yes. Apify has a built-in scheduler (set it in the Actor's Schedules tab) or you can trigger it from Make / Zapier / n8n on any cadence you want — hourly, daily, weekly.

Q: What filters does this Actor support? A: Keyword, free-text location, ~45-country geoId, company (ID or LinkedIn URL), industry, job function, employment type, seniority, date posted, workplace type (remote/on-site/hybrid), and Easy Apply only. Detail scraping can also return easyApply, applyUrl, and applicantsCount when LinkedIn shows them.

Q: How do I filter by a specific company? A: Put a LinkedIn company ID or company page URL in company (comma-separated for multiple). Example: 1441 or https://www.linkedin.com/company/google. Slug URLs are resolved via LinkedIn's guest typeahead when possible.

Q: Why is my search returning fewer results than I asked for? A: Common reasons: (1) LinkedIn itself returns fewer matches for narrow filters; (2) the logged-out UI may stop loading after a few dozen/hundred cards; (3) incomplete cards without a title/URL are skipped. Broaden location/date filters, or set scrapeDetails=false for a faster list-only pass. Standby /search also caps maxResults at 25 per request.

Q: Why are Easy Apply / apply URL sometimes empty? A: Those fields come from the job detail page. LinkedIn's guest view does not always expose the apply button or offsite URL. Applicant counts are more often available. Use scrapeDetails=true when you need apply signals.

Q: I'm on the free Apify plan — are there limits? A: Yes. Free Apify plan users get 10 runs of this Actor and up to 1,000 jobs per run. These limits are set by the Actor developer (not Apify). When you hit the run cap, the run finishes with a clear status message — it is not a platform bug. Upgrade to a paid Apify plan for unlimited runs.



All 77 public Actors from [lentic_clockss]. Click a name to open the Store detail page.

Jobs & Freelance

Real Estate

E-commerce

Travel & Stays

Social & Content

Ads Intelligence

Local & Maps

General Tools

→ Browse the full profile: apify.com/lentic_clockss


Also Available

  • Direct API: https://opendata.best/api/v1/data — use with any HTTP client and your API key
  • Postman Collection: Fork and test — pre-built requests with example responses
  • GitHub: Collection source files — import JSON into any API client

Live-view web server OpenAPI schema

This Actor includes a real Actor Standby / Live-view web server schema at:

.actor/openapi.json

The schema is published and validated through .actor/actor.json:

{
"usesStandbyMode": true,
"webServerSchema": "./openapi.json"
}

Documented Standby endpoints:

  • GET / - service information and Apify readiness-probe response
  • GET /health - health check
  • GET /input-example - quick LinkedIn jobs scraping request examples
  • GET /openapi.json - returns the OpenAPI document packaged with the Actor
  • POST /search - runs a bounded LinkedIn jobs search from an HTTP request body
  • POST /run - runs the Actor with the full LinkedIn Jobs Scraper input contract

For low-cost validation, use POST /search with a small maxResults value and scrapeDetails: false.