LinkedIn Jobs Scraper (Public Guest Search, No Login) avatar

LinkedIn Jobs Scraper (Public Guest Search, No Login)

Pricing

$2.50 / 1,000 job scrapeds

Go to Apify Store
LinkedIn Jobs Scraper (Public Guest Search, No Login)

LinkedIn Jobs Scraper (Public Guest Search, No Login)

Scrapes LinkedIn job postings (title, company, location, description, posted date, apply link) from LinkedIn's public guest job-search pages. No login, no cookies, no account-ban risk — only data LinkedIn already serves to logged-out visitors.

Pricing

$2.50 / 1,000 job scrapeds

Rating

0.0

(0)

Developer

Mikkel Bech-Hansen

Mikkel Bech-Hansen

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

a day ago

Last modified

Share

Searches LinkedIn job postings and returns title, company, location, full description, posted date, and the apply link — using only the pages LinkedIn already serves to logged-out visitors. There is no login field, no cookie input, and no session state anywhere in this actor: it calls LinkedIn's public guest job-search endpoint (linkedin.com/jobs-guest/jobs/api/seeMoreJobPostings/search), the same one LinkedIn's own logged-out job search page uses. That means no account-ban risk and nothing to configure before your first run — but it also means it can't return anything LinkedIn hides from logged-out visitors (see Known limitations).

Input

FieldTypeDefaultNotes
keywordsstring"software engineer"Job title, skill, or company. Leave blank to browse all listings for the location.
locationstring"United States"City, state, country, or region. Leave blank to search worldwide.
datePostedenum"any"any, past24Hours, pastWeek, pastMonth, past6Months, past12Months. The 6/12-month windows aren't exposed in LinkedIn's own UI but work on the guest endpoint - verified against live results.
workplaceTypeenum"any"any, onSite, remote, hybrid.
maxItemsinteger50Stop after this many job listings (1-2000). Each listing is one billable unit.
fetchFullDescriptionbooleantrueVisit each job's detail page for the full description, seniority level, employment type, job function, industries, and salary (when listed). Off = search-result fields only (title, company, location, posted date, apply link) — fewer requests, same price per listing.
proxyConfigurationobjectno proxyThe guest endpoint works without a proxy at the throttled request rate this actor uses by default. Turn on Apify Proxy if you plan to run many searches back to back.

Output

One dataset record per job listing:

{
"jobId": "4446240091",
"title": "Software Engineer",
"companyName": "Aroghia Group, LLC",
"companyUrl": "https://www.linkedin.com/company/aroghia-group-llc",
"location": "Beaverton, OR",
"postedAt": "2026-08-03",
"postedAgo": "1 week ago",
"applyUrl": "https://www.linkedin.com/jobs/view/software-engineer-at-aroghia-group-llc-4446240091",
"companyLogoUrl": "https://media.licdn.com/dms/image/v2/.../aroghia_group_llc_logo?...",
"description": "2+ years software engineering experience (level dependent).\nStrong proficiency in Python, TypeScript or React...",
"seniorityLevel": "Associate",
"employmentType": "Contract",
"jobFunction": "Information Technology",
"industries": "IT Services and IT Consulting",
"salary": null,
"applicantCount": "Over 200 applicants",
"searchKeywords": "software engineer",
"searchLocation": "United States"
}

description, seniorityLevel, employmentType, jobFunction, industries, salary, and applicantCount are null when fetchFullDescription is off, or when the poster didn't provide that field (salary in particular is only present on a minority of listings — LinkedIn doesn't require it).

Cost guidance

Pay-per-event: $0.005 per job listing delivered (see MONETIZATION.md). A typical run of 50 listings (the default maxItems) costs about $0.25. A 1,000-listing run costs about $5.00. There is no charge for searches that match nothing.

How it works

keywords + location are sent to LinkedIn's guest search endpoint, which returns an HTML fragment of job cards (no JSON API, no auth). The actor paginates through result pages, and — when fetchFullDescription is on — follows each card's own guest-accessible detail page for the full description and criteria. Requests are deliberately throttled to one at a time with a 2-second delay between requests to the same domain, which is what keeps the default (no-proxy) configuration reliable — verified directly: an earlier, un-throttled version of this actor hit LinkedIn's rate limit (HTTP 429) within the first ~15 requests, while the throttled version completed 55/55 requests successfully in testing. This makes runs slower (roughly one job listing every 1-2 seconds with fetchFullDescription on) but keeps them working without a proxy.

Known limitations

  • No cookie-gated data, by design. This actor never asks for or uses a LinkedIn session. It cannot return applicant lists, recruiter contact details, "people you may know," or any other field LinkedIn only shows to logged-in users. If you need those, you need a different (cookie-based) actor and accept the account-risk tradeoff that comes with it — this actor exists specifically so you don't have to.
  • Pagination is capped. LinkedIn's guest endpoint itself stops returning results past a certain offset (observed around start=1000-2000 depending on the query, returning HTTP 400) regardless of how many listings actually exist. In practice this means very broad searches (e.g. blank keywords in a huge market) won't surface every listing on LinkedIn, only the first page or so of them.
  • Low-signal queries can return loosely-related "filler" listings. When a search matches very few or no real postings, LinkedIn's guest search sometimes fills the page with generic/unrelated listings rather than an empty result — this is LinkedIn's own behavior, not a bug in this actor. It's more common with obscure keyword/location combinations than with normal job searches.
  • No proxy is required by default, but heavy use may still get rate-limited. Testing showed the default throttling (1 request at a time, 2s apart) runs cleanly for at least ~50-100 requests in a row. If you run this actor very frequently or in parallel, enable Apify Proxy in the proxyConfiguration input to reduce the chance of temporary blocks.
  • Undocumented endpoint. jobs-guest/jobs/api/seeMoreJobPostings/search is LinkedIn's own internal endpoint, not a published API — its response shape or availability could change without notice.
  • Salary is rarely present. Most listings don't include one; salary is null far more often than not (16 of 50 in one representative test run).

This Actor is an independent, third-party tool. It is not affiliated with, endorsed by, or sponsored by LinkedIn Corporation.

It retrieves data from LinkedIn's public, logged-out guest job-search pages, never from a login-gated surface and never using a session cookie. Despite that, LinkedIn's User Agreement (Section 8.2) restricts automated data collection from the site regardless of whether the page requires login, and LinkedIn has pursued this in practice - a well-known public-data-only LinkedIn scraping API (Proxycurl) shut down in 2025 citing the cost of LinkedIn/ Microsoft's legal pressure. Using this Actor may not comply with LinkedIn's terms. You are responsible for reviewing LinkedIn's terms and applicable law before using this Actor, and for how you use the data it returns.