LinkedIn Profile Search – Leads & Recruiting (No Login)
Under maintenancePricing
from $0.70 / 1,000 results
LinkedIn Profile Search – Leads & Recruiting (No Login)
Under maintenanceFind public LinkedIn profile leads from keywords, titles, companies, schools, and locations. Returns normalized lead data without LinkedIn cookies or login.
Pricing
from $0.70 / 1,000 results
Rating
3.3
(5)
Developer
Yusuf Barış
Maintained by CommunityActor stats
10
Bookmarked
1.8K
Total users
364
Monthly active users
11 hours
Issues response
7 hours ago
Last modified
Categories
Share
LinkedIn Profile Search Scraper
LinkedIn people search scraper for lead generation, recruiting, and sales prospecting — no LinkedIn cookies or login required. Discover public /in/ profiles and /company/ pages and export structured JSON or CSV.
What does this Actor do?
This Actor finds public LinkedIn /in/ profile pages and /company/ pages from your search criteria and saves structured discovery rows to the Apify Dataset.
The Actor is useful when you need profile URLs, company URLs, names, headlines, locations, company and title hints, education and experience summaries from search snippets, and export-ready LinkedIn search data.
Features
- Search public LinkedIn profiles and companies without LinkedIn cookies or account login
- Find profiles and companies by keyword, job title, location, company, school, or industry ID
- Supports direct LinkedIn profile URLs, pasted URL lists, and CSV/TXT uploads
- Multiple
searchQueriesin one run for batch lead list building - Automatic fallback to a free built-in search when the paid search service is unavailable
- Deduplicates normalized LinkedIn profile and company URLs
- Returns result rank, page number, search query, and confidence score
- Structured Apify Dataset output for JSON, CSV, Excel, XML, RSS, HTML, or API usage
Use cases
- Build LinkedIn lead lists from job titles, companies, schools, or locations
- Source candidates and recruiter longlists
- Find founders, executives, engineers, salespeople, agencies, or creators
- Map employees, alumni, or professional segments
- Enrich CRM and prospecting workflows with public profile URLs
- Run market research on professional audiences
- Export public LinkedIn search results for manual review
Input
Give the Actor something to search for: a search query, a filter such as job title or location, or a list of profile URLs. Filters work on their own, so currentJobTitles: ["CEO"] with locations: ["Netherlands"] is a complete search and needs no searchQuery.
| Field | Type | Required | Description |
|---|---|---|---|
searchQuery | string | Yes* | Main search query, for example Founder, Marketing Manager, or John Doe. |
searchQueries | array | No | Additional keyword searches in the same run (each uses the same filters). |
keywords | string | No | Legacy alias for one extra search query. |
currentJobTitles | array | No | Current job titles to include in the profile search. |
pastJobTitles | array | No | Past job titles to include in the profile search. |
locations | array | No | Cities, regions, or countries to include in the profile search. |
currentCompanyUrls | array | No | LinkedIn company URLs, company slugs, or company names to include in the profile search. |
pastCompanyUrls | array | No | Past company URLs, company slugs, or company names to include in the profile search. |
schoolUrls | array | No | LinkedIn school URLs, school slugs, or school names to include in the profile search. |
industryIds | array | No | LinkedIn industry IDs accepted for compatibility. |
profileUrls | array | No | Direct LinkedIn /in/ profile URLs. |
profileUrlsText | string | No | Paste URLs (one per line, CSV, or comma-separated). |
profileUrlsFile | file | No | Upload TXT/CSV with LinkedIn /in/ URLs. |
maxItems | integer | No | How many unique profile or company results to return, from 1 to 100. Default: 25. |
maxItems is the only volume setting. The Actor works out how many search pages that needs and pages through the results on its own.
One run returns at most 100 results, which is the depth a single search reliably reaches before it starts repeating people. To build a larger list, run the Actor again with a different search query or a different filter — several focused searches return more unique people than one broad search taken deeper.
Legacy inputs such as profileScraperMode: "Full", startPage, takePages, useApifyProxy, or includeLinkedInPageParse are ignored. The Actor always exports Short discovery rows.
Example input
{"searchQuery": "machine learning engineer","currentJobTitles": ["Founder", "Chief Executive Officer"],"locations": ["Istanbul", "London"],"currentCompanyUrls": ["https://www.linkedin.com/company/example-company/"],"schoolUrls": ["https://www.linkedin.com/school/example-university/"],"maxItems": 50}
Filters alone are enough:
{"currentJobTitles": ["CEO", "Chief Executive Officer", "Founder"],"locations": ["Netherlands"],"maxItems": 50}
Output
The Actor stores results in the default Apify Dataset. Each dataset item is one LinkedIn profile row or one LinkedIn company row. Empty searches are logged in the run log only and are not saved as billable dataset rows.
| Field | Type | Description |
|---|---|---|
id | string/null | LinkedIn internal profile ID when available. |
resultType | string/null | profile, company, or null for diagnostic rows. |
publicIdentifier | string/null | LinkedIn public profile slug. |
linkedinUrl | string/null | Normalized LinkedIn profile or company URL. |
profileUrl | string/null | Profile URL for profile rows, otherwise null. |
url | string/null | Normalized LinkedIn profile or company URL. |
status | string | Row status: search_result, discovered, no_results, or failed. |
firstName | string/null | Parsed first name. |
lastName | string/null | Parsed last name. |
fullName | string/null | Full name from public search results. |
headline | string/null | LinkedIn headline or title-derived headline. |
jobTitle | string/null | Best-effort current title. |
company | string/null | Best-effort current company. |
currentCompany | string/null | Alias-style current company field. |
currentTitle | string/null | Alias-style current title field. |
locationText | string/null | Human-readable location text. |
location | object/null | Location object with linkedinText and parsed placeholders. |
about | string/null | Public summary text when available from search snippets. |
profileSummary | string/null | Best available profile summary. |
experienceSummary | string/null | Best available experience summary. |
educationSummary | string/null | Best available education summary. |
profilePicture | object/null | Profile image object when available. |
photo | string/null | Profile photo URL when available. |
currentPosition | array | Current position array. |
profileTopEducation | array | Top education array. |
experience | array | Experience rows parsed from search snippets when available. |
education | array | Education rows parsed from search snippets when available. |
skills | array | Skills array when available. |
searchQuery | string/null | User-facing query used to discover the profile. |
resultRank | integer/null | Result rank within the search page. |
sourceProvider | string/null | Source label for this row. |
dataSource | string/null | Main row source, for example search_result or direct_url. |
confidence | integer/null | 0-100 quality score based on populated useful fields. |
matchedFields | array | Fields used to calculate confidence. |
searchTitle | string/null | Original public result title. |
searchSnippet | string/null | Original public result snippet. |
_meta | object | Search query, result rank, source, and pagination details. |
checkedAt | string/null | ISO timestamp when the row was generated. |
error | string/null | Error message for failed or no-result rows. |
How to use
- Enter a
searchQuery, filters such ascurrentJobTitlesandlocations, directprofileUrls, or any combination. Any one of them is enough. - Set
maxItemsto control result volume. - Run the Actor.
- Export the dataset as JSON, CSV, Excel, XML, RSS, HTML, or consume it via API.
Pricing and total run cost
This Actor uses Apify pay-per-event pricing based on Actor start and saved dataset rows.
What you pay on this Actor
- Actor start event (if enabled in your pricing model).
- One event per profile or company row saved to the dataset.
- No charge for empty searches — when nothing is found, no dataset row is written.
Extra costs to plan for
| Cost | When | How to control it |
|---|---|---|
| Google SERP Actor | Every search run, to reach results reliably | Lower maxItems so fewer search pages are needed. |
| Compute time | Large maxItems | Lower maxItems. |
On run start, the log shows which search backend is used (serp:<actorId> or builtin).
Example pricing behavior:
- Each profile or company result is one dataset row.
- Higher
maxItemsvalues may create more dataset rows and increase runtime.
Limitations
- This Actor is independent and is not affiliated with, endorsed by, or sponsored by LinkedIn.
- Search filtering is text based and cannot perfectly reproduce LinkedIn internal filters.
- Results come from public search snippets and direct URLs, not private LinkedIn profile pages.
- Some fields may be missing depending on profile visibility, language, region, and source availability.
- Email search and hidden contact enrichment are not included.
- Very large runs may take longer depending on result count and platform usage.
FAQ
Why are some fields empty?
Some fields are not available in public search snippets. This Actor does not log into LinkedIn or open private profile pages.
Does this Actor require LinkedIn cookies?
No. It does not use LinkedIn cookies, LinkedIn login sessions, or private LinkedIn APIs.
Can I provide direct profile URLs?
Yes. Use profileUrls, paste a list into profileUrlsText, or upload profileUrlsFile (TXT/CSV). You can combine direct URLs with search queries.
Why was I charged by another Actor?
To find profiles, this Actor calls a Google SERP Actor. That is a separate Apify run with its own pricing.
Are empty searches billed?
No. If no profiles or companies are found, the run logs a warning and does not write a paid dataset row for that empty query.
How do I get more results?
Raise maxItems up to its maximum of 100. The Actor pages through as many search pages as that number needs, so there is no page setting to manage. For more than 100 people, run the Actor again with a different search query or filter — for example one run per job title, or one per city. If a single run returns fewer results than you asked for, the query itself has run out of public matches, so broaden it or drop a filter.
Can I export results to Excel?
Yes. Apify datasets can be exported as Excel, CSV, JSON, XML, RSS, HTML, or accessed via API.
Does this Actor support API usage?
Yes. You can run the Actor via Apify API and consume the default dataset programmatically.
Does this Actor find emails?
No. Email search is not included in this version.
Support
If you have questions, feature requests, or find a bug, open an issue on the Actor page.