LinkedIn Profile Finder via Google
Pricing
from $2.40 / 1,000 leads
LinkedIn Profile Finder via Google
Find public LinkedIn profiles that match a plain-language description via Google search. Get profile URL, name, headline and snippet per lead, plus public location when shown. No login. Pay per lead.
Pricing
from $2.40 / 1,000 leads
Rating
0.0
(0)
Developer
AI_Builder
Maintained by CommunityActor stats
2
Bookmarked
52
Total users
1
Monthly active users
24 minutes ago
Last modified
Categories
Share
LinkedIn Profile Finder via Google searches Google for public LinkedIn profiles (site:linkedin.com/in) that match a plain-language profile description, such as marketing manager startup in Paris, France. It returns one row per lead with the profile URL, the name and headline from the search result and the search snippet, plus the public location when LinkedIn shows the profile. It is a lightweight LinkedIn lead search API alternative that needs no LinkedIn login.
It does not log in to LinkedIn, does not read private profile data, and does not find email addresses or phone numbers.
What does LinkedIn Profile Finder via Google do?
- Turns your profile description, optional location and exclude keywords into a
site:linkedin.com/inGoogle search. - Fetches Google over plain HTTP through the Apify
GOOGLE_SERPproxy, with no browser. Google through GOOGLE_SERP is the reliable source of leads. - Retries each Google page at least 5 times, each time on a new IP, when Google answers with a block, a timeout or an unreadable page.
- Fills name and headline from the search result title, so every lead has them even when LinkedIn hides the profile.
- Normalizes and de-duplicates LinkedIn profile URLs across pages.
- Optionally visits each public profile to add the location. If LinkedIn shows a login wall, the row keeps the data from the search result.
- Can also take a list of LinkedIn profile URLs directly instead of searching.
- Fails a run that finds no leads, and charges no leads for it.
Why use LinkedIn Profile Finder via Google?
- Prospect lists from one sentence: describe the role, industry and city, and get matching profiles.
- Every lead is one row and one charge: failed requests and diagnostics never reach the dataset.
- Light and fast: plain HTTP requests, no browser. A 10-lead run took about 20 to 50 seconds in our tests.
- Apify platform features: scheduling, API access, integrations and monitoring.
Who is LinkedIn Profile Finder via Google for?
- Sales and SDR teams building prospect lists by role, industry and city.
- Recruiters sourcing candidates from public profiles.
- Founders and marketers researching who holds a role at target companies.
Use cases for LinkedIn lead search
- Build a list of "Head of Growth, SaaS, Berlin" profiles for outreach.
- Find decision makers for an account list, then enrich them in your CRM.
- Source candidates for a role from public profiles.
What data can LinkedIn Profile Finder via Google extract?
| Field | Type | Description |
|---|---|---|
profileUrl | string | Normalized LinkedIn profile URL |
title | string | Search result title |
description | string | Search result snippet |
displayedUrl | string | Host of the profile URL (www.linkedin.com) |
name | string | Name from the search title, or from the public profile when it was visited. null only when the title can't be split into a name |
headline | string | Headline from the search title, or from the public profile when it was visited (see the FAQ about masked headlines) |
location | string | Public profile location (only when the profile was visited) |
profileScraped | boolean | Whether public profile data was extracted |
source | string | google_search or bing_search for search leads, linkedin_profile or direct_url for the direct URL mode |
sourceSearchEngine | string | google, bing, or null in the direct URL mode |
note | string | Processing note, for example LinkedIn login wall; search snippet only |
scrapedAt | string | ISO timestamp |
How to find LinkedIn leads with Google
- Open the Actor and go to the Input tab.
- Enter a Profile Description, for example
marketing manager startup. - Optionally add a Location and Exclude Keywords (for example
jobs,post). - Set Maximum Results (capped at 1,000 per run).
- Keep the default Start with Google, Fallback to Bing if Blocked strategy and leave Google Proxy Groups empty, click Start, and download the leads from the Output tab.
How much will it cost to find LinkedIn leads?
You pay per lead, with no subscription and no rental. One lead is one row saved to the dataset. Failed requests, retries and diagnostics go to the key-value store record FAILED_REQUESTS and are never billed. A run that finds no leads ends as failed and charges no leads. A small standard Actor start event applies to every run. See the Pricing tab for current prices, including discounts on higher Apify plans.
The run stops at Maximum Results or at your maximum cost per run, whichever comes first.
Input
See the Input tab for all options. Example input:
{"profile_description": "marketing manager startup","exclude_keywords": ["post", "jobs"],"max_results": 10,"scrape_profiles": true,"search_engine_strategy": "google_with_fallback"}
google_proxy_groups: leave it empty. Empty meansGOOGLE_SERP, the Apify proxy built for Google result pages. You don't need a residential proxy, and other groups are often rate-limited by Google (HTTP 429).search_engine_strategy: Google is the reliable source. Bing is currently unreliable: it answers automated requests with results unrelated to the query. Bing Only and Rotate therefore now start with Google and use Bing only as a fallback, like the default strategy. The option values are unchanged, so existing API calls keep working.exclude_keywords: page 1 uses Google's-keywordoperators. Google returns no later pages for such queries, so page 2 and later are fetched again without the operators, and results whose title, snippet or profile URL slug contains an excluded word are dropped and never charged. On those pages the exclusion checks only what the search result shows, and runs with exclusions may return somewhat fewer leads.max_captcha_retries: retries per search page, each on a new proxy IP. Google pages through GOOGLE_SERP get at least 5.use_direct_linkedin+linkedin_urls: skip search and process the given profile URLs.
When does the Actor fall back to Bing?
With the default strategy, the Actor switches to Bing only when Google still fails after all its retries, or when Google's first page has no LinkedIn profiles. It does not switch on the first HTTP 429 or CAPTCHA. Because Bing is currently unreliable, the fallback usually adds no leads. If no lead is found at all, the run fails and no leads are charged.
Output
You can download the dataset in various formats such as JSON, HTML, CSV, or Excel. The rows below come from a real run of the prefill input (build 0.20.4). Names, companies and profile URLs are replaced with placeholders. The first row is a lead behind a login wall, the second a visited public profile.
[{"title": "<Name> - Marketing Manager at <Company> | LinkedIn","profileUrl": "https://www.linkedin.com/in/<profile-slug>/","description": "Marketing Manager at <Company>. ...","displayedUrl": "www.linkedin.com","source": "google_search","sourceSearchEngine": "google","name": "<Name>","headline": "Marketing Manager at <Company>","location": null,"profileScraped": false,"note": "LinkedIn login wall; search snippet only","scrapedAt": "2026-10-16T20:38:21.417Z"},{"title": "<Name> - Product Marketing Manager | LinkedIn","profileUrl": "https://www.linkedin.com/in/<profile-slug>/","description": "2025 - Present 1 year 3 months. Startup Manager - Product Marketing. Internship in the business development department. Main activities : • Market studies • ...","displayedUrl": "www.linkedin.com","source": "google_search","sourceSearchEngine": "google","name": "<Name>","headline": "******* ********* *******","location": "Paris, Île-de-France, France","profileScraped": true,"note": "Profile scraped","scrapedAt": "2026-10-16T20:38:25.712Z"}]
Where to find the output
The run's Output tab lists these outputs, by the title it shows:
- Results: the default dataset, one row per LinkedIn profile lead (Overview view).
- Run state and failed requests: all key-value store records of the run (crawl state, failed requests, debug pages).
- Failed requests: the
FAILED_REQUESTSkey-value store record with requests that failed after all retries.
Key-value store records are not billed.
Tips for better LinkedIn lead results
- Use specific job titles plus an industry or city.
- Turn off Scrape LinkedIn Profiles for faster runs. You still get URL, title, snippet, and the name and headline from the search title. You lose only the location.
- Keep Google Proxy Groups empty so Google goes through
GOOGLE_SERP. - Keep the default Google strategy. Bing Only no longer searches Bing alone: Bing is currently unreliable, so that option also starts with Google.
Integrations: API, AI agents (MCP), Make, Zapier and n8n
- Apify API: run searches and fetch leads from Python, JavaScript or cURL. See the API tab.
- AI agents (MCP): add
quaking_pail/google-serp-scraper-lead-finderthrough the Apify MCP server so your sales agent can look up profiles by description. - No-code: send new leads to Google Sheets, HubSpot or another CRM with Make, Zapier, n8n or webhooks.
FAQ, disclaimers and support
Is it legal to scrape LinkedIn profiles from search results?
Our Actors are ethical and do not extract any private user data. This Actor does not extract email addresses, phone numbers or gender. It only reads what Google shows in public search results and what a LinkedIn member has chosen to show on their public profile. However, you should be aware that your results could contain personal data. Personal data is protected by the GDPR in the European Union and by other regulations around the world. You should not scrape personal data unless you have a legitimate reason to do so. If you're unsure whether your reason is legitimate, consult your lawyers.
Every lead is personal data. You are responsible for making sure that your scraping and your use of the results are legal, including LinkedIn's terms, GDPR and anti-spam rules for outreach.
Why is the headline masked with asterisks on some leads?
When the Actor visits a public profile, LinkedIn often hides the headline from anonymous visitors behind asterisks, and the profile value replaces the one from the search title. The headline is still readable in the title field. If you need clean headlines in the headline column, turn off Scrape LinkedIn Profiles.
Why do some leads have no location?
The location comes only from a visited public profile. Leads behind a LinkedIn login wall, and all leads when Scrape LinkedIn Profiles is off, have location: null.
Why did I get fewer leads than Maximum Results?
Google returned fewer matching profiles, or your exclude keywords removed some. The Actor also stops searching after about 200 seconds, so a run finishes in a few minutes and delivers what it found by then. Check the log and the FAILED_REQUESTS record in the key-value store.
Why did my run fail?
A run that finds no leads fails on purpose, so you can tell an empty search from a successful one, and no leads are charged. Try a broader profile description, keep the default Google strategy, or try again later.
How do I report a problem?
Open an issue in the Issues tab with the run ID. If the Actor saved you time, a rating on the Reviews tab helps other users find it.
Related actors by quaking_pail
- Google Search Scraper (SERP Results): Google organic results for a market, industry and city as structured rows.
- Website Contact Scraper: Emails & Phones: emails, phones and team names from company websites.
- LinkedIn Jobs Scraper: find companies that are hiring, with full job descriptions.
- Google Search Results to LLM Text: Google results for a market query as one LLM-ready text.
- Website to Markdown Scraper for AI & LLMs: turn company websites into clean Markdown.
- SEO Audit & Markdown Content Scraper: on-page SEO audit plus Markdown content for every page.
Changelog
0.20.9 (2026-10-25)
- Profile URLs are now also rebuilt from the result breadcrumb (for example
fr.linkedin.com › jane-doe) when Google hides the result link. Only rows with a reallinkedin.com/in/<profile>URL are returned. - A Google page whose results can't be read is re-requested once, then the Actor moves on to the next page instead of retrying the same page several times.
- The run stops searching after about 200 seconds and delivers the leads found so far. No change to input or output fields.
0.20 quality update (2026-10-25)
- Output tab now lists the dataset and run records; README name matches the Store title. No change to input or output fields.
0.20.5
- Bing Only now uses Google first. Bing Only runs ended with 0 leads, because Bing answers automated requests with results unrelated to the query. The option value
bing_onlyis kept so existing API calls and tasks keep working, but it now runs like Start with Google, Fallback to Bing if Blocked and logs the warning "Bing Only is currently unreliable; using Google first with Bing fallback." A run that finds no leads still fails and charges no leads.
0.20
- No browser. The Actor now uses plain HTTP requests (Crawlee CheerioCrawler) instead of Puppeteer. The Docker image is smaller, the default memory is lower (1024 MB, minimum 512 MB, maximum 2048 MB), and runs start faster.
- Google is the primary source through the Apify GOOGLE_SERP proxy (
google_proxy_groupsempty means GOOGLE_SERP). The query issite:linkedin.com/in <description> <location> <-excludes>. Google's/url?q=redirect links are decoded to the real LinkedIn profile URL. - Bing fallback, root cause of "0 LinkedIn profiles". The parser and the
ck/alink decoding were correct on real Bing pages. Bing itself answered the requests with results unrelated to the query (weather, shops, "what is marketing"). It dropped thesite:operator and most keywords for automated clients. This happened from datacenter, residential and direct IPs, with and without cookies, and with every query order tried.cc=USin the URL made it worse, so it was removed. Such pages are now detected, saved asDEBUG_BING_PAGE1_HTML, retried on a new IP and then counted as blocked. They are no longer read as "0 profiles". Bing remains a best-effort fallback. - Bing Only and Rotate are marked "currently unreliable" in the input. Rotate now starts with Google only and queries Bing only as a fallback after Google fails, like the default strategy. Before, it queried Bing in parallel, which added about 40 s and some platform cost per run without extra leads. The option value
rotationis unchanged. - Pagination with Exclude Keywords. For queries with
-keywordoperators, Google answers page 2 and later with "did not match any documents", so those runs stopped at about 10 leads. Page 1 hasn't changed. When a later page comes back empty, it is fetched again without the operators. Results whose title, snippet or profile URL slug contains an excluded word or phrase are then dropped (case-insensitive, whole words), and they are never saved or charged. On pages 2+ the exclusion therefore checks only what the search result shows, not the whole profile. Pagination stops at Maximum Results or when a page adds no new lead, and profiles are de-duplicated across pages. Known limitation: the operator-free list continues from the page that came back empty (for example page 2), so results that appear only on its first page are not fetched. A run with exclusions can therefore return somewhat fewer leads, or stop paging earlier, than the same query without exclusions. - Runs without leads now fail, and no leads are charged, instead of succeeding with an empty dataset.
nameandheadlineare filled from the search title when the profile isn't visited or shows a login wall. Previously they werenull.timezoneis ignored (browser only).- Output rows changed compared with 0.17.x:
- One row per lead. With Scrape LinkedIn Profiles on, 0.17.x saved two rows per lead: a search row (note "Profile queued for scraping") and a separate profile row with
source: "linkedin_profile"and aurlkey. 0.20 saves one row per lead. The profile name, headline and location are merged into that row (profileUrl,name,headline,location,profileScraped: true). Theurlkey and the note "Profile queued for scraping" no longer appear. If you filtered onsource === "linkedin_profile"or readurl, useprofileScrapedandprofileUrl. Each lead is billed once, not twice. - No failure rows. Rows with
status: "failed"anderrorare no longer written to the dataset, so they are never billed. Failed requests are listed in the key-value store recordFAILED_REQUESTS. - Each lead row has these 12 fields:
title,profileUrl,description,displayedUrl,name,headline,location,profileScraped,source,sourceSearchEngine,note,scrapedAt. Rows from 0.17.x search results had a subset of them, with the same names and types.
- One row per lead. With Scrape LinkedIn Profiles on, 0.17.x saved two rows per lead: a search row (note "Profile queued for scraping") and a separate profile row with