LinkedIn Jobs Scraper (No Login) + Direct Apply Links avatar

LinkedIn Jobs Scraper (No Login) + Direct Apply Links

Pricing

from $0.22 / 1,000 job with full details

Go to Apify Store
LinkedIn Jobs Scraper (No Login) + Direct Apply Links

LinkedIn Jobs Scraper (No Login) + Direct Apply Links

Scrape public LinkedIn job listings without login or cookies: title, company, location, salary min/max, remote/hybrid, applicants, seniority, full description and the employer's direct apply link (Greenhouse, Lever, Ashby, Workable, Workday). Only-new-jobs mode for daily alerts.

Pricing

from $0.22 / 1,000 job with full details

Rating

0.0

(0)

Developer

Hydrocore Data

Hydrocore Data

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

20 hours ago

Last modified

Security

Limited permissions

Share

Turn any LinkedIn job search into a clean spreadsheet. Type a job title and a place, for example data analyst in United States. You get every matching job with the company, location, salary, remote/hybrid/on-site, number of applicants, the full description and, where we can find it, the direct link to apply on the employer's own website instead of LinkedIn.

You don't need a LinkedIn account, cookies or a login. The scraper only reads the public job pages that LinkedIn shows to anyone who isn't logged in.

Sample result (real row from a test run for remote software engineer jobs in the US, trimmed):

{ "title": "Software Engineer Full Stack / Backend I (Full Time) - United States", "company": "Cisco",
"location": "Boise, ID", "workplaceType": "remote", "postedDate": "2026-11-05", "applicantsCount": 26,
"employmentType": "Full-time", "jobUrl": "https://www.linkedin.com/jobs/view/4487715416" }

What is this, in plain words?

A "scraper" is a small robot that visits web pages for you and copies the useful parts into a table. This one does the same job search you would do on linkedin.com/jobs and opens every job for you. It then gives you the results as Excel, CSV, JSON or Google Sheets (through Apify integrations). You can run it once, or schedule it daily as your own job alert.

What data do I get?

For every job:

  • Job: LinkedIn job ID, title, link, posted date ("2026-11-03") and "23 hours ago" text
  • Company: name, LinkedIn company page and logo
  • Location and workplace type: remote, hybrid or on-site (plus a simple isRemote true/false)
  • Salary: salaryMin, salaryMax, salaryCurrency, salaryPeriod (year/hour/month) and the original text. We take it from LinkedIn's pay box or, when LinkedIn has none, from the description (salarySource tells you which).
  • Applicants: for example 55 ("55 applicants")
  • Seniority, employment type, job function and industries
  • Full description as plain text, HTML or both
  • Direct apply link (applyUrl): the job's page on the employer's own careers site, when the company uses a public job board we can check (Greenhouse, Lever, Ashby, Workable, Workday or Personio), or an apply link written in the description. applyUrlMatch says how sure we are (exact-title, similar-title or in-description).

Switch Full job details off for a much cheaper "card" version: title, company, location, date and salary if shown in the list are filled, the detail columns are null and detailsScraped is false. It's useful when you only need volume.

What can I use it for?

  • Job hunting: a daily list of new jobs that match you, with the link to apply directly with the employer (often faster, and you skip LinkedIn's "Easy Apply" crowd).
  • Recruiting and staffing agencies: find which companies are hiring for the roles you fill, right now. Lead lists with the company, role and location.
  • Sales prospecting: a company that hires 10 "data engineers" probably needs data tools. Hiring is one of the strongest buying signals.
  • Salary research: collect pay ranges for one role across cities or countries.
  • Labour-market and academic research: track how many remote jobs, which skills and which industries over time.
  • Job boards and newsletters: feed a niche job board (for example "remote Python jobs in Europe") with fresh postings and direct apply links.

How do I use it?

  1. Click Try for free (or Start).
  2. In Search keywords, type one or more job titles or skills, one per line, for example marketing manager.
  3. In Locations, type a city, state or country, for example Austin, Texas or Germany. Leave it empty for worldwide.
  4. Optional filters: Posted within (past 24 hours, week...), Workplace type (remote, hybrid, on-site), Job type, Experience level.
  5. Set Max jobs per search low for your first run, for example 20.
  6. Click Start. 15 jobs with full details take about 25 seconds. Then click Export to download the table.

Tip: you can also run any search on linkedin.com/jobs with all the filters you like, copy the address from your browser, and paste it into LinkedIn job search URLs.

Daily job alert in 3 steps

  1. Choose Posted within: Past 24 hours, Sort by: Most recent, and switch on Only new jobs since the last run.
  2. Save the task and click Schedule to run it once a day.
  3. Optional: add an Apify integration (email, Slack, Google Sheets) to get the new jobs sent to you.

Each run then saves, and charges for, only jobs you haven't received before.

Input

FieldWhat it doesExample
Search keywordsJob titles or skills, one per linepython developer
LocationsCities, states, countries or Remote. Empty = worldwide.London
LinkedIn job search URLsOptional. Paste a search link from linkedin.com/jobs.https://www.linkedin.com/jobs/search/?keywords=nurse&location=Texas
Posted withinAny time, past hour, 24 hours, week or monthweek
Workplace typeOn-site, remote, hybrid (each one searched separately, so every job gets an exact type)["remote"]
Job type / Experience levelLinkedIn's own filters["full-time"]
Sort byMost recent (best for alerts) or most relevantrecent
Distance (miles)Radius around the location25
Title must contain / Exclude words / Exclude companiesYour own filters. Skipped jobs are free.["senior"]
Only jobs with a salaryKeep only jobs where a pay range was foundtrue
Max jobs per search / in totalStop after this many jobs (default 100 per search)50
Full job detailsOn (default) = full record. Off = cheap card only.true
Find the direct employer apply linkOn by default, costs nothing extratrue
Description formatPlain text, HTML, both or nonetext
Only new jobs since the last runMonitoring mode, see the FAQtrue
Monitoring list nameOptional name to keep one memory for several searches or tasksnurses-texas
Max spend for this run (USD)The run stops before it costs more2
ProxyOptional. Not needed for normal runs.off

Example input:

{
"keywords": ["software engineer"],
"locations": ["San Francisco, CA"],
"postedWithin": "week",
"maxJobsPerSearch": 15
}

Output example

Every row has the same columns in the same order (null when LinkedIn doesn't show a value; dates are ISO, salaries and counts are numbers). A real row from a test run on 2026-11-05 (default input; the description and logo link are shortened):

{
"recordType": "job",
"jobId": "4478595713",
"title": "Sr. Data Analyst",
"company": "Accenture Federal Services",
"location": "Washington, DC",
"workplaceType": null,
"isRemote": false,
"postedDate": "2026-10-20",
"postedAgo": "2 weeks ago",
"salaryMin": 103200,
"salaryMax": 196400,
"salaryCurrency": "USD",
"salaryPeriod": "year",
"applicantsCount": 200,
"seniority": "Mid-Senior level",
"employmentType": "Full-time",
"applyType": "offsite",
"applyUrl": "https://boards.greenhouse.io/accenturefederalservices/jobs/4721318006?gh_jid=4721318006",
"jobUrl": "https://www.linkedin.com/jobs/view/4478595713",
"companyLinkedinUrl": "https://www.linkedin.com/company/accenturefederalservices",
"companyLogoUrl": "https://media.licdn.com/dms/image/v2/D560BAQFeC7XvJhgEZg/company-logo_100_100/company-logo_100_100/0/1689352061532?e=2147483647&v=beta&t=...",
"salaryText": "$103,200—$196,400 USD",
"salarySource": "description",
"applicantsText": "Over 200 applicants",
"jobFunction": null,
"industries": "IT Services and IT Consulting",
"benefits": "Actively Hiring",
"workplaceTypeSource": null,
"applyUrlSource": "greenhouse",
"applyUrlMatch": "exact-title",
"atsBoard": "greenhouse:accenturefederalservices",
"detailsScraped": true,
"descriptionText": "At Accenture Federal Services, nothing matters more than helping the US federal government make the nation stronger and safer and life be...",
"descriptionHtml": null,
"isNew": null,
"searchKeywords": "data analyst",
"searchLocation": "United States",
"searchUrl": null,
"scrapedAt": "2026-11-05T04:34:44.719Z"
}

Views. The Output tab opens in Overview (logo, title, company, location, workplace, date, salary, applicants, seniority, links). There are also Salary, Apply links, Descriptions and Detailed (all fields) views.

Changed in v1.1: recordType is now always job (it was details or card); the new detailsScraped column says whether the job page was opened. companyLogo → companyLogoUrl. Every row has a fixed column order with null for missing values (card-only rows now have the detail columns as null instead of leaving them out).

In an earlier run (software engineer, San Francisco), 8 of 15 jobs came back with a direct employer apply link. The run also saves a RUN_SUMMARY record in the key-value store, with each search, how many jobs were found and saved, and any warnings in plain English.

How much does it cost?

You pay per job saved (pay-per-event). Apify platform usage is included, so there are no extra compute costs. Paid Apify plans get a lower price automatically.

EventApify Free planPaid plans (Starter and up)
Actor start (once per run)$0.0005$0.0005
Job with full details$0.00034 ($0.34 per 1,000)$0.00022 ($0.22 per 1,000)
Job card only (details off)$0.00016$0.00010 (Starter), $0.00008–0.00009 (higher plans)

The direct apply link, salary parsing and filters cost nothing extra. Jobs you skip with filters, duplicates and jobs you already got in "only new" mode are free.

Worked examples (Free plan):

RunCalculationTotal
15 jobs with details$0.0005 + 15 × $0.00034$0.0056
100 jobs with details$0.0005 + 100 × $0.00034$0.0345
500 jobs with details$0.0005 + 500 × $0.00034$0.1705
1,000 job cards$0.0005 + 1,000 × $0.00016$0.1605
Daily alert, 0 new jobs todaystart fee only$0.0005

Set Max spend for this run (or Apify's "Maximum cost per run") and the scraper stops cleanly before it goes over. Set a Max spend limit and the run stops cleanly before going over.

Why this Actor?

Prices below are from the public Apify Store listings, as of Nov 2026 (checked on 4 November 2026). Prices change, so check the listings for current figures.

ActorPer job, Free planPer job, paid plansStart fee
This Actor (full details)$0.00034$0.00022$0.0005
curious_coder/linkedin-jobs-scraper$0.002$0.001$0.00005
bebity/linkedin-jobs-scraper$0.0015$0.00125–0.001—
cheap_scraper/linkedin-job-scraper$0.0007$0.0006–0.00035$0.005
valig/linkedin-jobs-scraper$0.0004$0.00036–0.00028$0.001

What you get here for the price:

  • Competitive pricing with pay-only-for-useful-results — filtered-out, duplicate and already-seen jobs in "only new" mode are free.
  • Direct employer apply links: we check the company's public job board (Greenhouse, Lever, Ashby, Workable, Workday, Personio) and match the job, at no extra cost. We didn't find this feature in the listings above.
  • Clean salary fields: min, max, currency and period as separate columns, also when the pay is only written in the description.
  • Exact remote/hybrid/on-site for every job, using LinkedIn's own filter.
  • "Only new jobs" mode that never charges twice for the same job, which makes daily alerts cost cents.
  • Fails softly and honestly: a search that LinkedIn answers with unrelated "suggested" jobs is skipped (not charged), and every problem is explained in the log and the RUN_SUMMARY.
  • Hard spending limit respected to the cent.

FAQ

How do I scrape LinkedIn jobs without logging in? Type a job title in Keywords and a place in Locations, then click Start. The scraper reads LinkedIn's public job pages, so you never share a password or cookies.

How do I export LinkedIn job search results to Excel or Google Sheets? After the run, open the Output tab and download Excel or CSV, or connect Google Sheets under Integrations. Schedule the run daily with Only new jobs on to get a fresh list every morning.

Do I need a LinkedIn account? No. The scraper never logs in. It reads only the public job pages anyone can see without an account. Never give a scraper your LinkedIn password.

Is it legal? The scraper reads only public job postings, without logging in, solving captchas or getting around any access control. Job postings are business information. It doesn't collect profiles of people. You are still responsible for how you use the data. Respect LinkedIn's terms, copyright in job descriptions and privacy laws such as the GDPR. If you are unsure, ask a lawyer.

Why don't all jobs have a direct apply link? LinkedIn hides the employer's apply link from logged-out visitors. We find it when the company uses a public job board we can check, or writes the link in the description. Tech companies and start-ups often use these boards (30–60% of jobs in our tests). Large corporations and staffing agencies often use their own systems, so for broad searches the share can be much lower (about 4% in one 500-job test). When there is no link, applyUrl is empty and you can still apply through jobUrl.

How does "Only new jobs" work? The scraper remembers the job IDs it delivered for the same search (in a named storage in your Apify account called linkedin-jobs-monitor). Next time it saves only jobs you haven't had yet, and you pay only for those. If several tasks should share one memory, or you change the filters but want to keep the memory, give them the same Monitoring list name. To start fresh, use a new name.

Do I need a proxy? No, not for normal runs. LinkedIn sometimes slows down very large runs ("too many requests"). The scraper waits and slows down automatically. If you run very large searches often and they get slow:

  1. Open the Proxy field in the input.
  2. Choose Apify Proxy (datacenter is enough).
  3. Start the run. Proxy usage is billed by Apify separately on your account.

How many jobs can I get? LinkedIn shows logged-out visitors at most about 1,000 jobs per search. To get more, split the search, for example by city, by "Posted within" or by experience level, and put several keywords or locations into one run.

How fast is it? In our tests: 15 jobs with details in about 25 seconds, 60 job cards in under 5 seconds, 500 jobs with details in about 10–12 minutes. The scraper paces itself to stay polite to LinkedIn.

My search returned 0 jobs. Why? Either no job matches (check the spelling, or try a wider location or date range), or LinkedIn answered with unrelated "suggested" jobs. In that case the scraper skips them on purpose so you don't pay for junk. The log and RUN_SUMMARY say which one it was. You only pay the $0.0005 start fee.

How do I limit my spending? Set Max spend for this run (USD). The scraper stops before going over it and tells you in the log.

Limits

  • At most about 1,000 jobs per search (LinkedIn's limit for logged-out visitors).
  • Very large runs can be slowed by LinkedIn's rate limits. The scraper backs off rather than retrying forever, and never tries to solve captchas.
  • Direct apply links are only found for companies on public job boards (see the FAQ). The scraper never applies for you.
  • Salary appears only when the employer publishes it. Some descriptions give it in unusual formats we can't read, and then the salary fields are empty.
  • applicantsCount is LinkedIn's rounded public number (for example "over 200 applicants" gives 200).
  • LinkedIn can change its public pages at any time. If something breaks, open an issue and we'll fix it quickly.

Ready-made examples

Open one, click Try for free and change the inputs to your own:

Support

Found a bug or missing a field? Open an issue on the Issues tab, and please include the run link.