LinkedIn Job Scraper | Job Search API, Counts & Autocomplete
Pricing
from $0.01 / 1,000 job listings
LinkedIn Job Scraper | Job Search API, Counts & Autocomplete
Search LinkedIn jobs with no login and no cookies. Get listings with the total results count, full job details with salary and applicants, plus title, company and location autocomplete for precise filters. Pay per row delivered: no start fee, filters run at the source.
Pricing
from $0.01 / 1,000 job listings
Rating
5.0
(2)
Developer
John
Maintained by CommunityActor stats
1
Bookmarked
46
Total users
31
Monthly active users
7 hours ago
Last modified
Categories
Share
LinkedIn Job Scraper
Search LinkedIn jobs with no account, no login, and no cookies. This LinkedIn job scraper reads LinkedIn's public guest pages, so it needs nothing from you but a query: search job listings with filters and get the total results count, scrape full job details from any job URL, and pull the same autocomplete suggestions the LinkedIn search box shows. It doubles as a LinkedIn job search API: every mode returns clean JSON you can read over the Apify API, export to CSV or Excel, or wire into an AI agent over MCP.
🧩 Part of the Alpha OSINT LinkedIn suite: no login, no cookies
Eight Actors that read only what LinkedIn shows to a signed-out visitor. None of them asks for your account, your password or an li_at session cookie, so none of them can get your LinkedIn account restricted. Each one takes what the previous one returns, so you can chain them into a full people-and-company workflow:
| Step | You want to | Use |
|---|---|---|
| 1 | Find people by name, job title, company, school or location, no profile URL needed | LinkedIn People Search API |
| 2 | Turn profile URLs into full structured profiles: experience, education, followers | LinkedIn Profile API |
| 3 | Enrich the employer: industry, size, headquarters, specialties, follower count | LinkedIn Company API |
| 4 | List the people who work at a company, each checked against their public profile | LinkedIn Company Employees API |
| 5 | See what a company is hiring for, with salary data where LinkedIn publishes it | LinkedIn Jobs API |
| 6 | Search jobs as a guest with filters, total result counts and autocomplete ids | LinkedIn Job Scraper (this Actor) |
| 7 | Read what a person or company posts, with reactions, comments and shares | LinkedIn Posts API |
| 8 | Map the skills people list to courses, learner reviews and full syllabi | LinkedIn Learning API |
A worked map of these chains, with live adoption and success-rate stats for every Actor, is at alphaosint.com/linkedin.
What this actor returns
- Job listings from a keyword plus location search: job title, company name, LinkedIn page and logo, location, posted date, and the canonical job URL, one row per unique job.
- The total results count, free with every search: LinkedIn's own caption such as
7,000+ Semiconductor Engineering Jobs in United States, both verbatim and parsed to a number with a capped flag. - Full job records from job URLs or ids: complete description (text and HTML), seniority level, employment type, job function, industries, applicant count, salary when published, company logo, whether you apply on LinkedIn or on the employer's site, similar jobs, and the people-also-viewed list.
- Typeahead suggestions: job titles, companies with the numeric ids the company filter takes, and locations with their
geoIdvalues for precision targeting. - Honest filters only: date posted, company, Easy Apply, and under-10-applicants filters run at the source, before billing. Filters LinkedIn's guest search does not reliably honor are not exposed at all.
Use cases
- Job market monitoring: run a daily search for a title and territory, use the free results-count row to track demand over time, and dedupe listings across runs by jobId.
- Recruiting intelligence: watch a competitor's openings by filtering to their company id, including roles with fewer than 10 applicants.
- Lead generation: turn fresh postings into signals; a company hiring semiconductor process engineers this week is buying tooling next quarter.
- Job board enrichment: feed job URLs into the job mode to hydrate your board with descriptions, salary, and applicant counts.
- AI agents: give an agent search, detail, and autocomplete tools over MCP; the suggestion modes return the exact ids that make follow-up searches precise.
Input parameters
| Field | Required | Default | What it does |
|---|---|---|---|
search_mode | yes | search | One of search, job, autocomplete, companySuggestions, locationSuggestions. |
keywords | search | - | What to search for, for example semiconductor engineer. |
location | search | - | Free-text place, for example United States or Philadelphia, PA. |
geoId | no | - | LinkedIn geo id from the locationSuggestions mode; use together with location. |
datePosted | no | any | past24h, pastWeek, or pastMonth. |
companyIds | no | [] | Numeric company ids from the companySuggestions mode; multiple ids combine as OR. |
easyApplyOnly | no | false | Only jobs with LinkedIn Easy Apply. |
under10Applicants | no | false | Only jobs with fewer than 10 applicants. |
jobUrls | job | - | linkedin.com/jobs/view/ URLs or bare numeric ids; duplicates of the same job collapse into one billed row. |
query | suggestions | - | The text to complete, for example semic. |
maxItems | no | 100 | Cap on billable rows. Free rows never count. |
Example output
A jobListing row from the search mode:
{"resultType": "jobListing","jobId": "4451264908","jobTitle": "Silicon Design Engineer","companyName": "AMD","companyLinkedinUrl": "https://www.linkedin.com/company/amd","location": "Austin, TX","jobUrl": "https://www.linkedin.com/jobs/view/silicon-design-engineer-at-amd-4451264908","postedDate": "2026-08-24","postedText": "3 days ago","position": 1,"searchKeywords": "semiconductor engineering","searchLocation": "United States","viaResidentialProxy": false,"fetchedAt": "2026-08-27T23:04:11Z","companyLogo": "https://media.licdn.com/dms/image/v2/C560BAQEX/company-logo_100_100/0/amd_logo","fromCache": false}
And the free searchMeta row that precedes it:
{"resultType": "searchMeta","searchKeywords": "semiconductor engineering","searchLocation": "United States","datePosted": "pastWeek","resultsCountCaption": "7,000+ Semiconductor Engineering Jobs in United States","resultsCountParsed": 7000,"resultsCountIsCapped": true,"searchUrl": "https://www.linkedin.com/jobs/search?keywords=semiconductor+engineering&location=United+States&f_TPR=r604800"}
A job row from the job mode adds the full description, seniorityLevel, employmentType, jobFunction, industries, numApplicants, parsed salary fields, companyLogo, applyType (external or linkedin), similarJobs, peopleAlsoViewed, and similarSearches.
Pricing
Pay per event, only for delivered rows. No start fee, no minimum.
| Event | When it is charged | Price |
|---|---|---|
| Job listing | per unique job returned by a search | $0.00001 ($0.01 per 1,000) |
| Full job record | per successfully scraped job page | $0.00001 ($0.01 per 1,000) |
| Suggestion row | per typeahead suggestion returned | $0.00001 ($0.01 per 1,000) |
| Residential fallback | only on the rare row that needed the residential proxy | $0.00001 ($0.01 per 1,000) |
The searchMeta row and any error rows are always free, and filtered or duplicate jobs are never billed. A typical 100-listing search costs a tenth of a cent, and hydrating those 100 jobs with full details costs the same again.
How to get started
- View on Apify Store and press Run.
- Pick a mode, enter keywords and a location (the defaults run a real search out of the box), and start the run.
- Read rows from the dataset tab, or export as JSON, CSV, or Excel. The run summary repeats the results caption and tells you exactly why the run stopped.
Need company ids or geoIds for precise filters? Run the companySuggestions or locationSuggestions mode once and feed the returned ids back into the search.
🔌 Use this API from Claude (MCP)
Add this actor as a tool in Claude Code (free trial), Claude Cowork (free trial), or any other MCP client through the hosted Apify MCP server:
https://mcp.apify.com/?tools=actors,docs,johnvc/linkedin-job-search-scraper
Setup details are in the Apify MCP integration docs.
💸 Pay per run with crypto (x402)
The LinkedIn Job Scraper supports agentic payments via the x402 protocol. AI agents and MCP clients can pay for runs in USDC (on Base) with no Apify account or API token needed: point your agent at the Apify MCP server and it can discover, pay for, and run this Actor autonomously. Read the Apify x402 announcement for details.
Works well with
- LinkedIn Jobs API - managed jobs feed with salary data at scale
- LinkedIn Profile API - enrich the people behind the postings
- LinkedIn Company API - firmographics for the companies you find hiring
- LinkedIn Posts API - what those companies and people are saying
- LinkedIn Learning API - course and skills data to match roles to the training that fills them
🤖 Ask an AI assistant about this API
Open a ready-to-send prompt about the LinkedIn Job Scraper in the AI of your choice:
- 💬 ChatGPT
- 🧠 Claude
- 🔍 Perplexity
- 🅒 Copilot
FAQ
Will this put my LinkedIn or LinkedIn Recruiter account at risk?
No. It reads public LinkedIn pages only, the ones anyone can open while signed out. It never logs in and never asks for your cookies: there is no input for an account, a password or an li_at session cookie. Nothing it does is tied to your LinkedIn account, your LinkedIn Recruiter seat or your Sales Navigator license. The requests run on Apify's servers, not in your browser, so nothing connects them to you, and you can keep working in Recruiter while a run is going.
Do I need to give you my LinkedIn cookies or login?
No, never. This Actor does not ask for, accept or store your LinkedIn cookies, your session cookie (li_at), your password or your account. There is no input field for any of them. It reads LinkedIn's public pages the way a signed-out visitor sees them. Any cookie involved is one LinkedIn's site hands to that anonymous visit, and it is used only inside that single run.
Does this need my LinkedIn login or cookies?
No. It only reads LinkedIn's public guest pages. There is no cookie input at all, and the client discards any cookie a response tries to set. Your LinkedIn account is never involved.
How deep can a search go?
LinkedIn's guest search stops serving results near 1,000 per query; the run then stops with stoppedReason: "depthCap". To go deeper, slice the query: run it per week with datePosted, per geoId, or per company id, and dedupe across runs by jobId.
Is the results count exact?
It is LinkedIn's own caption, and LinkedIn caps it (7,000+ means at least 7,000). The row carries the verbatim caption, the parsed number, and resultsCountIsCapped so you always know which case you have. The actor never uses the caption for pagination; end of results is detected from the result pages themselves.
Why does the apply link go through a LinkedIn sign-up page?
Guest pages route Apply through LinkedIn's sign-up interstitial, so most rows carry a null applyUrl. When the employer's own application site is embedded in the page, it is returned as externalApplyUrl. The jobUrl always opens the posting.
What happens if a job URL is dead or the page changes?
You get a free error row (not_found or parse_failed) with the source URL, and you are not charged for it. Only successfully delivered rows are billed.
Are results ever served from a cache?
Yes, when the same thing was fetched recently. Job records are reused for up to 7 days, search result pages for at most a few hours (each page belongs to a 6-hour window), and typeahead suggestions for up to 30 days. A cached row has fromCache: true, keeps the time it was originally fetched in fetchedAt, and is billed like a fresh row; the residential fallback charge is never applied to it.
Why did my filtered search return nothing?
LinkedIn serves guest searches from more than one backend, and one of them ignores classic filters. The actor detects an empty filtered result, rotates its session, and retries before believing it; a persistent zero means LinkedIn really has no matches for that filter combination right now.
💡 Example tasks
Ready-to-run configurations, each on its own landing page:
- Search LinkedIn Jobs Without an Account or Login - listings with no login, no cookies
- Look Up LinkedIn Company IDs for Job Filters - resolve a company name to the id the filter needs
- Find LinkedIn Jobs With Under 10 Applicants - surface quiet, fresh postings
- Get LinkedIn GeoIDs for Any City or Country - live location codes for precise targeting
- Track LinkedIn Job Counts by Keyword and Location - the free results-count row for market tracking
- 免登录搜索领英职位 - search LinkedIn jobs with no account
- 提取领英职位详情 - full job details from a URL
🌐 About Alpha OSINT
This Actor is part of Alpha OSINT, toolset of financial and operations data sources and APIs. See the LinkedIn Job Scraper source page for related tools and use cases. For support or requests for this actor, please start a ticket directly on our support page.
Last Updated: 2026.10.04