๐ฅ Linkedin Profile Scraper [Cheapst+ Fastest]
Pricing
$19.99/month + usage
๐ฅ Linkedin Profile Scraper [Cheapst+ Fastest]
LinkedIn Profile Scraper extracts public profile data at scale, including names, headlines, experiences, skills, education, and connections. Perfect for lead generation, recruitment, and market research. Get structured, reliable LinkedIn data quickly with customizable scraping options.
Pricing
$19.99/month + usage
Rating
3.2
(9)
Developer
Scraper Engine
Maintained by CommunityActor stats
3
Bookmarked
275
Total users
4
Monthly active users
33 days
Issues response
7 days ago
Last modified
Categories
Share
LinkedIn Profile Scraper โ Credibility Score and Recommendation Data
Paste a public linkedin.com/in/ URL and get back structured JSON: name, location, experience and education, followers, connectionsCount, written recommendations, and a transparent 0-100 credibilityScore with a credibilityBand and full per-signal credibilityBreakdown. No LinkedIn login or session cookie is required โ everything comes from the public profile page. Start a run on Apify to see the fields on your own profile URLs.
What is LinkedIn Profile & Credibility Analysis Scraper?
LinkedIn Profile & Credibility Analysis Scraper is an Apify Actor that scrapes public LinkedIn profiles and layers a documented credibility score and recommendation analysis on top of the raw profile data. It runs anonymously โ no LinkedIn account, password, or li_at session cookie is needed, since it fetches the logged-out public page rather than the authenticated LinkedIn app. It's built for recruiters and candidate-vetting teams, sales and lead-qualification teams, trust-and-safety reviewers, and developers building enrichment or RAG pipelines around people data.
What LinkedIn profile data is publicly available to scrape?
A logged-out visitor to a linkedin.com/in/ page already sees a person's name, headline, location, photo, follower count, experience, education, projects, and rendered recommendations. A few things stay gated behind a login, sometimes a connection:
| Data category | Publicly available | Restricted (login required) |
|---|---|---|
| Name, about, location, photo | Yes | โ |
| Experience & education history | Yes | โ |
| Follower count | Yes | โ |
| Recommendations received | Yes, when rendered | โ |
| Recommendations given | โ | Not distinguishable anonymously |
| Full connections list | โ | Login + connection |
| Contact info (email, phone) | โ | Login required |
| Verified-identity badge | โ | Login required |
LinkedIn Profile & Credibility Analysis Scraper only returns publicly visible data โ nothing behind a login wall.
What data can I extract with LinkedIn Profile & Credibility Analysis Scraper?
The Actor returns identity and career data for the profile, plus a credibility score, recommendation analytics, and secondary sections like projects and similar profiles.
| Field | Description |
|---|---|
name | Full name on the profile |
image | Profile photo URL |
location | City/region shown on the profile |
about | Bio / summary text |
experience | Roles: organization name, URL, location, role description |
education | Schools: name, URL, start/end dates |
projects | Name, date range, description, contributors |
followers | Follower count |
connections | Raw connections text, e.g. "500+ connections" |
connectionsCount | Connections parsed to an integer (or null) |
credibilityScore | Composite 0-100 score |
credibilityBand | Minimal / Low / Moderate / High / Very High |
credibilityBreakdown | Points per signal: recommendations, network, experience, education, content, completeness |
recommendations | Written recommendations: recommender name, link, photo, text |
recommendationAnalytics | count, matchedCount, hasRecommendations, averageLength, distinctRecommenders, received, given, keywordsMatched |
recentPosts / activity | Recent posts/activity: title, type, link, image |
articles | Published articles: headline, author, date, body excerpt |
publications | Publication name and URL |
similarProfiles | "People also viewed" profiles: name, link, location, image |
scrapedAt | ISO-8601 UTC scrape timestamp |
success | Whether the profile was retrieved and parsed |
๐ค Add-on: Need additional LinkedIn data?
This Actor covers people profiles. For the companies those people work at, pair it with LinkedIn Company Scraper & Open Jobs Finder or LinkedIn Company About Scraper. To go from a company to its staff and their contact details, see LinkedIn Company Employees : AI & Lead Enrichment Scraper and LinkedIn B2B Emails Scraper: Verified Email Finder. For a person's public posts instead of their profile, use LinkedIn Post Scraper.
How does LinkedIn Profile & Credibility Analysis Scraper differ from the official LinkedIn API?
LinkedIn's official API does not offer a general-purpose "look up any member's profile" endpoint to third parties. Per LinkedIn's own developer documentation, marketing-API access requires a developer app approved into LinkedIn's Marketing Developer Program, every call needs 3-legged OAuth consent from the specific member involved, and the closest profile-read permission (r_basicprofile) returns only the authenticated, consenting member's own name, photo, headline, and public URL โ not arbitrary third-party profiles (source: learn.microsoft.com/en-us/linkedin/marketing/getting-started, checked 2026-07-25).
| Feature | LinkedIn official API | LinkedIn Profile & Credibility Analysis Scraper |
|---|---|---|
| Access approval | Requires an app approved into LinkedIn's Partner/Marketing Developer Program | No approval โ runs directly on Apify |
| Whose profile you can read | Only the authenticated, consenting member (r_basicprofile) | Any public linkedin.com/in/ profile by URL |
| Authentication | 3-legged OAuth, per-member consent | None โ no login, no session cookie |
| Access model | 3-legged only; 2-legged/client-credentials not available for these scopes | Simple array-of-URLs input |
| Credibility / recommendation scoring | Not provided | Built-in credibilityScore, credibilityBand, recommendationAnalytics |
Use the official API when you already have an approved partner app and only need data for members who've explicitly authorized it. Use this Actor when you need public profile and credibility data for people who haven't authorized your app.
How to use LinkedIn Profile & Credibility Analysis Scraper
Run it directly from its Apify Console listing โ no separate signup or API key beyond your Apify account.
- Open the Actor's page on Apify and click Start.
- Paste one or more public LinkedIn profile URLs into
profileUrlsโ this is the only field you need; everything else has a working default. - Optionally set
recommendationKeywordsto keep only matching recommendations, or turn offincludePeopleAlsoViewed/includeProjectsto skip sections you don't need. - Start the run.
- Download results as JSON, CSV, or Excel from the dataset, or read them via the API while the run is still in progress โ each profile is pushed as its own row in real time.
How to scale to bulk LinkedIn profile credibility analysis
profileUrls is a list field โ add every target profile to the same array and they're processed in order in one run; there's no separate "bulk mode" to enable. The schema places no hard cap on list length, but each profile that falls back to enableWaybackSaveFallback costs 30-60 seconds and that fallback is rate-limited to roughly 15 requests per minute per IP, so for large lists it's worth disabling that fallback or splitting the list across a few runs.
What can you do with LinkedIn profile credibility data?
- A recruiter vetting a shortlist uses
credibilityScoreand therecommendationsbehind it to see which candidates have real written social proof before scheduling interviews. - A sales rep qualifying inbound leads uses
connectionsCountandfollowersto prioritize outreach toward well-networked prospects. - A trust-and-safety reviewer screening inbound applications uses
credibilityBandand thecompletenesssignal (photo, about, location, at least one role) to flag thin, low-signal profiles for manual review. - A researcher studying a niche uses
recommendationKeywordswithrecommendationAnalytics.matchedCountto find profiles specifically praised for a trait like "leadership" or "reliable." - An AI engineer builds a candidate-summarization agent that feeds
about,experience, andrecommendationstext into a RAG pipeline or LLM prompt, usingcredibilityScoreas structured context rather than free text the model has to interpret.
How does LinkedIn Profile & Credibility Analysis Scraper handle rate limits and blocking?
Each profile fetch runs through Apify Proxy, with the proxyConfiguration input defaulting to the RESIDENTIAL group (recommended for LinkedIn); if the configured proxy fails to initialize, the Actor automatically retries with a RESIDENTIAL proxy configuration. Every request uses a fresh proxy session per attempt and retries up to maxRetries times with exponential backoff plus random jitter between attempts. The Actor treats a defined set of LinkedIn response codes (401, 403, 404, 407, 408, 409, 410, 418, 429, 451, 503, and LinkedIn's anti-bot 999) as blocking signals, and also inspects the response URL and body for login-wall indicators. If direct fetches are still blocked after all retries, it falls through an optional fallback ladder: your own customFetcherUrlTemplate (a paid scraping API you supply), then an existing Wayback Machine snapshot, then a freshly triggered Wayback Save Page Now capture. If every path fails for a given profile, that profile produces no dataset row and is not charged โ it does not return fabricated data.
โฌ๏ธ Input
All 13 parameters are optional โ the Actor runs with profileUrls alone.
| Parameter | Required | Type | Description | Example Value |
|---|---|---|---|---|
profileUrls | No | array | Public LinkedIn profile links to scan (linkedin.com/in/...), one per line, processed in order. The base key urls is also accepted. | ["https://www.linkedin.com/in/timbakke/"] |
computeCredibilityScore | No | boolean | Add credibilityScore (0-100) and credibilityBand to every profile. Default true. | true |
includeCredibilityBreakdown | No | boolean | Include credibilityBreakdown โ the per-signal points behind the score. Default true. | true |
includeRecommendations | No | boolean | Extract written recommendations and compute recommendationAnalytics. Default true. | true |
recommendationKeywords | No | array | Keep only recommendations whose text contains any of these keywords (case-insensitive). Empty = keep all. | ["leadership", "reliable"] |
includePeopleAlsoViewed | No | boolean | Include the "People also viewed" similar-profiles list. Default true. | true |
includeProjects | No | boolean | Extract the Projects section (name, dates, description, contributors). Default true. | true |
maxRetries | No | integer | Direct-fetch attempts before falling back (1-15). Default 5. | 5 |
requestTimeoutSecs | No | integer | Per-request timeout in seconds (5-180). Default 30. | 30 |
customFetcherUrlTemplate | No | string | Optional 3rd-party scraping API URL template with a literal {url} placeholder. Leave empty to skip. | "" |
enableWaybackFallback | No | boolean | Look up an existing Wayback Machine snapshot if direct fetches are blocked. Default true. | true |
enableWaybackSaveFallback | No | boolean | Trigger a fresh Wayback Save Page Now capture if no snapshot exists. Slow (30-60s) and rate-limited (~15/min); disable for large bulk runs. Default true. | true |
proxyConfiguration | No | object | Apify Proxy (RESIDENTIAL recommended) or custom proxy URLs. | {"useApifyProxy": true, "apifyProxyGroups": ["RESIDENTIAL"]} |
Example input
{"profileUrls": ["https://www.linkedin.com/in/williamhgates/","https://www.linkedin.com/in/timbakke/"],"computeCredibilityScore": true,"includeCredibilityBreakdown": true,"includeRecommendations": true,"recommendationKeywords": ["leadership", "reliable"],"includePeopleAlsoViewed": true,"includeProjects": true,"maxRetries": 5,"requestTimeoutSecs": 30,"customFetcherUrlTemplate": "","enableWaybackFallback": true,"enableWaybackSaveFallback": true,"proxyConfiguration": { "useApifyProxy": true, "apifyProxyGroups": ["RESIDENTIAL"] }}
โฌ๏ธ Output
Every scraped profile is pushed as one typed, normalized JSON dataset row, downloadable as JSON, CSV, or Excel. The dataset's default "Credibility overview" table view surfaces a curated 12-column subset (name, credibilityScore, credibilityBand, location, followers, connectionsCount, recommendationAnalytics.count, recommendationAnalytics.hasRecommendations, about, image, scrapedAt, success) โ the full row, documented below, carries every field the Actor writes.
| Field | Description |
|---|---|
success | Whether the profile was retrieved and parsed |
partial | true if no structured Person data was found and only meta-tag fallback fields were recovered |
name | Full name |
image | Profile photo URL |
location | City/region |
followers | Follower count |
connections | Raw connections text (e.g. "500+ connections") |
connectionsCount | Connections parsed to an integer, or null |
about | Bio / summary text |
experience | Array of roles: name, url, location, member.description |
education | Array of schools: name, url, member.startDate, member.endDate |
projects | Array: name, url, dateRange, description, contributors |
recentPosts | Array of recent posts: title, activityType, link, image |
articles | Array of published articles: headline, author, datePublished, image, articleBody |
activity | Array of activity-feed items: title, activityType, link, image |
publications | Array: name, url |
similarProfiles | "People also viewed": link, name, location, image |
recommendations | Array of written recommendations: name, link, image, text (keyword-filtered if recommendationKeywords is set) |
recommendationAnalytics | count, matchedCount, hasRecommendations, averageLength, distinctRecommenders, received, given, keywordsMatched |
credibilityScore | Composite 0-100 score, or null if scoring is off |
credibilityBand | Minimal / Low / Moderate / High / Very High, or null |
credibilityBreakdown | Points and raw counts per signal: recommendations, network, experience, education, content, completeness |
scrapedAt | ISO-8601 UTC timestamp of the scrape |
error | Present only when success is false; explains why (e.g. login wall) |
source | Present only when a fallback path was used: custom_fetcher, wayback, or wayback_spn |
Example output
{"success": true,"partial": false,"name": "Jane Doe","image": "https://media.licdn.com/dms/image/example.jpg","location": "Austin, Texas, United States","followers": 12400,"connections": "500+ connections","connectionsCount": 500,"about": "Product leader focused on B2B SaaS growth.","experience": [{ "name": "Acme Corp", "url": "https://www.linkedin.com/company/acme/", "location": "Austin, TX", "member": { "description": "VP of Product" } }],"education": [{ "name": "University of Texas at Austin", "url": "https://www.linkedin.com/school/ut-austin/", "member": { "startDate": "2010", "endDate": "2014" } }],"projects": [],"recentPosts": [],"articles": [],"activity": [],"publications": [],"similarProfiles": [{ "link": "https://www.linkedin.com/in/johnsmith/", "name": "John Smith", "location": "Dallas, TX", "image": "https://media.licdn.com/dms/image/example2.jpg" }],"recommendations": [{ "name": "Alex Rivera", "link": "https://www.linkedin.com/in/alexrivera/", "image": "https://media.licdn.com/dms/image/example3.jpg", "text": "Jane's leadership on our launch was exceptional." }],"recommendationAnalytics": {"count": 3,"matchedCount": 1,"hasRecommendations": true,"averageLength": 142,"distinctRecommenders": 3,"received": 1,"given": null,"keywordsMatched": ["leadership"]},"credibilityScore": 74,"credibilityBand": "High","credibilityBreakdown": {"recommendations": { "points": 15.0, "max": 25, "count": 3 },"network": { "points": 20.0, "max": 20, "followers": 12400, "connections": 500 },"experience": { "points": 20.0, "max": 20, "roles": 4 },"education": { "points": 10.0, "max": 10, "schools": 1 },"content": { "points": 3.0, "max": 15, "items": 1 },"completeness": { "points": 10.0, "max": 10, "signals": 4 }},"scrapedAt": "2026-07-25T09:14:22Z"}
How does it work?
The Actor requests each profile URL through Apify Proxy (residential IPs recommended), rotating a fresh session per attempt and retrying with exponential backoff and jitter if LinkedIn responds with a blocking status code or serves a login-wall page instead of the profile. It parses the returned HTML's embedded JSON-LD structured data (with an OpenGraph/meta-tag fallback when JSON-LD is missing) rather than relying on brittle CSS selectors tied to LinkedIn's current page markup, so the output schema stays stable across LinkedIn UI changes. If direct fetches keep failing, it can route through a scraping API you supply, or recover an archived copy of the page from the Wayback Machine. Only what's visible on the public, logged-out profile page is ever extracted or scored โ nothing behind LinkedIn's login wall is accessed or guessed at.
Integrations
LinkedIn Profile & Credibility Analysis Scraper runs on Apify, so it works with anything that can call the Apify API, plus Apify's no-code and AI-agent integrations.
Calling LinkedIn Profile & Credibility Analysis Scraper programmatically
from apify_client import ApifyClientclient = ApifyClient("<YOUR_APIFY_API_TOKEN>")run_input = {"profileUrls": ["https://www.linkedin.com/in/williamhgates/"],"computeCredibilityScore": True,}run = client.actor("scraper-engine/linkedin-profile-credibility-analysis-scraper").call(run_input=run_input)for profile in client.dataset(run["defaultDatasetId"]).iterate_items():print(profile["name"], profile["credibilityScore"], profile["credibilityBand"])
Works in Go, Ruby, Node.js, cURL โ any language that can make an HTTP request.
MCP integration for AI agents
LinkedIn Profile & Credibility Analysis Scraper is reachable through Apify's hosted Actors MCP Server at https://mcp.apify.com. Add it as a remote MCP connector in Claude, Cursor, or another MCP-compatible client, authenticate with your Apify account, and select this Actor as an available tool. Once connected, an agent can pass in profileUrls, start a scoring run, and read the resulting credibility rows directly inside the conversation, without writing any custom integration code.
No-code tools (n8n, Make, LangChain)
In n8n, use the Apify node (or an HTTP Request node against the Apify API) pointed at this Actor's run endpoint. In Make, the Apify app's "Run an Actor" module accepts the same input JSON shown above. In LangChain or LlamaIndex, wrap the Apify API call in a custom tool so an agent can request a profile's credibility data and use the returned JSON as context.
Is it legal to scrape LinkedIn profiles?
Scraping publicly accessible LinkedIn profile data is generally lawful โ in the U.S., courts (including hiQ Labs v. LinkedIn) have found that accessing data a website makes publicly available, without logging in, does not by itself violate the Computer Fraud and Abuse Act. LinkedIn Profile & Credibility Analysis Scraper only returns data visible on the public, logged-out profile page. Because that data is personal data about identifiable individuals, storing or reusing it โ especially at scale โ brings it within the scope of the GDPR (if you or the data subjects are in the EU/UK) or the CCPA (for California residents), both of which require a lawful basis for processing and give individuals rights over their data. Consult legal counsel if your use case involves bulk storage of personal data.
Frequently asked questions
What LinkedIn profile fields does this scraper return?
The top fields are name, location, about, experience, and credibilityScore โ see What data can I extract for the full list.
Does this scraper require a LinkedIn account or login?
No. It fetches the public, logged-out linkedin.com/in/ page through Apify Proxy โ no LinkedIn account, password, or session cookie is used anywhere in the Actor.
Can I scrape multiple LinkedIn profiles in one run?
Yes. profileUrls accepts a list of URLs processed in order in a single run; the schema places no hard cap on how many you add, though very large lists take longer if the slower Wayback fallbacks are enabled.
What happens if a profile is private, deleted, or behind a login wall?
The Actor retries and works through its fallback ladder (custom fetcher, Wayback snapshot, Wayback Save Page Now); if none can recover a real profile page, that URL produces no dataset row at all and is not charged, rather than a row full of empty or guessed fields.
How is the credibility score actually calculated?
It's a deterministic, documented formula, not a black box: credibilityScore sums points from six weighted signals โ recommendations (25 max), network reach from followers and connections (20), experience/role count (20), education count (10), content/thought-leadership volume (15), and profile completeness (10) โ each computed directly from the fields in the output, visible in full via credibilityBreakdown. It's a transparency-first proxy for social proof and profile depth, not an identity-verification check: LinkedIn's own verified-identity badge isn't exposed on the public page and is never faked, and a heavily-populated fake profile could still score well since the formula scores data completeness and volume, not truthfulness.
What makes this different from a generic LinkedIn profile scraper?
Beyond raw profile fields, it adds the transparent credibilityScore/credibilityBreakdown, keyword-filterable recommendation extraction with recommendationAnalytics, and a fetch ladder (proxy โ custom fetcher โ Wayback snapshot โ Wayback Save Page Now) that keeps returning results when LinkedIn blocks a direct request.
Does this scraper work with Claude, ChatGPT, and other AI agent tools?
Yes. It's reachable through Apify's hosted Actors MCP Server (https://mcp.apify.com) for MCP-compatible clients like Claude, and it's callable as a standard HTTP endpoint by any agent framework via the Apify API.
Does this scraper return data in a format LLMs can use directly?
Yes. Output is typed, normalized JSON with consistent field names across runs โ no HTML parsing or CSS selectors required. Pass it directly to an LLM prompt, index it into a vector store, or feed it to an agent tool.
What happens when LinkedIn changes its layout or anti-bot defenses?
The Actor parses JSON-LD structured data rather than brittle page selectors where possible, and is maintained to keep the output schema stable as LinkedIn's page changes; no specific update turnaround time is promised.
Can I use this without managing proxies or browser infrastructure?
Yes. Apify Proxy (with automatic RESIDENTIAL fallback) and the Wayback fallback ladder are built in โ you don't need to bring your own proxy pool unless you want a custom scraping API via customFetcherUrlTemplate.
Which fields work best for AI training data and RAG indexing?
For RAG, index the free-text fields โ about, experience[].member.description, and recommendations[].text โ for semantic search. For structured training data, credibilityScore, credibilityBand, connectionsCount, and recommendationAnalytics.count return as consistent typed primitives across every profile.
Related scrapers
| Scraper | What it extracts |
|---|---|
| LinkedIn Company Scraper & Open Jobs Finder | Company firmographics, posts, employees, and open job postings |
| LinkedIn Company About Scraper | Company "About" page details |
| LinkedIn Company Employees : AI & Lead Enrichment Scraper | Employee lists with AI sentiment and lead enrichment |
| LinkedIn B2B Emails Scraper: Verified Email Finder | Verified business emails grouped by company domain |
| LinkedIn Post Scraper | LinkedIn post content and engagement data |
Your feedback
Found a bug or a field missing? Let us know through the Actor's Issues tab on its Apify Store page, or message Scraper Engine support directly โ reports get reviewed and the Actor is updated accordingly.