AS
Apify Store
/harvestapi/linkedin-profile-search
Search LinkedIn Profiles
Search for LinkedIn profiles with filters and extract detailed profile information, including work experience, education history, location and more. No cookies or account required.
liveverifiedasyncdegraded · 186ms~30s typical
linkedinpeopleprofilesleads
$0.0020
per result + $0.01 call
plus $0.001 platform fee per run
Usage-based actor: event charges passed through at cost plus 25%
Bring your own Apify Store key: provider portion drops to $0.
$Set up https://cracked-ai-pearl.vercel.app/SKILL.md, then use Cracked to run apify /harvestapi/linkedin-profile-search for me.
Input
| Field | Type | Description |
|---|---|---|
| profileScraperMode | string (Short | Full | Full + email search) | Choose the mode for scraping LinkedIn profiles. The Short mode provides basic information, while the Full mode includes full detailed profile data. default "Full" |
| searchQuery | string | Query to search LinkedIn profiles. (e.g., `Founder`, `Marketing Manager`, `John Doe`). [The query supports search operators](https://www.linkedin.com/help/linkedin/answer/a524335) |
| maxItems | integer | Maximum number of profiles to scrape. The actor will stop scraping when this limit is reached. |
| locations | array | Filter Profiles by these LinkedIn locations. Example: `San Francisco`. LinkedIn does not always understand your text queries. For example for "UK" query it will apply "Ukraine" location, so you should use "United Kingdom" in this case. Try this out first in the location filter input of LinkedIn search at `https://www.linkedin.com/search/results/people/?geoUrn=%5B%22103644278%22%5D` - we will use the first suggestion from the autocomplete popup when you type your location |
| currentCompanies | array | Filter Profiles by these LinkedIn companies. Provide full LinkedIn URLs |
| pastCompanies | array | Filter Profiles by these LinkedIn past companies. Provide full LinkedIn URLs |
| schools | array | Filter Profiles by these LinkedIn schools. Example: `Stanford University`. |
| currentJobTitles | array | Filter Profiles by these LinkedIn current job titles. Example: `Software Engineer`. |
| pastJobTitles | array | Filter Profiles by these LinkedIn past job titles. Example: `Software Engineer`. |
| yearsOfExperienceIds | array | Filter Profiles by these LinkedIn years of experience IDs. Example: `3` for '3 to 5 years'. |
| yearsAtCurrentCompanyIds | array | Filter Profiles by these LinkedIn years at current company IDs. Example: `3` for '3 to 5 years'. |
| seniorityLevelIds | array | Filter Profiles by these LinkedIn seniority level IDs. Example: `120` for 'Senior'. |
| functionIds | array | Filter Profiles by these LinkedIn function IDs. Example: `8` for 'Engineering'. |
| industryIds | array | Filter Profiles by these LinkedIn industry IDs. Example: `4` for 'Software Development'. Full list: `https://github.com/HarvestAPI/linkedin-industry-codes-v2/blob/main/linkedin_industry_code_v2_all_eng_with_header.csv` |
| firstNames | array | Filter Profiles by these LinkedIn first names. We recommend using another actor for searches by name: https://apify.com/harvestapi/linkedin-profile-search-by-name |
| lastNames | array | Filter Profiles by these LinkedIn last names. We recommend using another actor for searches by name: https://apify.com/harvestapi/linkedin-profile-search-by-name |
| profileLanguages | array | Filter Profiles by these LinkedIn profile languages. |
| companyHeadcount | array | Filter Profiles by their current company's headcount. |
| companyHeadquarterLocations | array | Filter Profiles by their current company's headquarter location. |
| recentlyChangedJobs | boolean | Filter Profiles to only those who have changed jobs in the last 90 days. |
| recentlyPostedOnLinkedIn | boolean | Filter Profiles to only those who have posted on LinkedIn in the last 30 days. |
| excludeLocations | array | Exclude Profiles by these LinkedIn locations. Example: `San Francisco`. LinkedIn does not always understand your text queries. For example for "UK" query it will apply "Ukraine" location, so you should use "United Kingdom" in this case. Try this out first in the location filter input of LinkedIn search at `https://www.linkedin.com/search/results/people/?geoUrn=%5B%22103644278%22%5D` - we will use the first suggestion from the autocomplete popup when you type your location |
| excludeCurrentCompanies | array | Exclude Profiles by these LinkedIn companies. Provide full LinkedIn URLs |
| excludePastCompanies | array | Exclude Profiles by these LinkedIn past companies. Provide full LinkedIn URLs |
| excludeSchools | array | Exclude Profiles by these LinkedIn schools. Example: `Stanford University`. |
| excludeCurrentJobTitles | array | Exclude Profiles by these LinkedIn current job titles. Example: `Software Engineer`. |
| excludePastJobTitles | array | Exclude Profiles by these LinkedIn past job titles. Example: `Software Engineer`. |
| excludeIndustryIds | array | Exclude Profiles by these LinkedIn industry IDs. Example: `4` for 'Software Development'. Full list: `https://github.com/HarvestAPI/linkedin-industry-codes-v2/blob/main/linkedin_industry_code_v2_all_eng_with_header.csv` |
| excludeSeniorityLevelIds | array | Filter Profiles by these LinkedIn seniority level IDs. Example: `120` for 'Senior'. |
| excludeFunctionIds | array | Filter Profiles by these LinkedIn function IDs. Example: `8` for 'Engineering'. |
| excludeCompanyHeadquarterLocations | array | Exclude Profiles by their current company's headquarter location. |
| startPage | integer | The page number to start scraping from. default 1 |
| takePages | integer | The number of search pages to scrape. Each page contains 25 profiles. |
| autoQuerySegmentation | boolean | Enable automatic query segmentation to split broad search queries into smaller segments based on LinkedIn filters. This helps in scraping a larger number of unique profiles without hitting LinkedIn's search limits. |
| autoQuerySegmentationLevels | array | Select the segmentation levels to be used for automatic query segmentation. |
| autoQuerySegmentationTargetCountries | array | Select the target country to focus the automatic query segmentation. This helps in narrowing down the search results to a specific geographic location. |
| profileDeduplicationMode | string (off | insert_ids | insert_profiles | read_only) | Choose how the actor should handle deduplication of LinkedIn profiles across multiple runs using your MongoDB database. |
| mongoDbConnectionString | string | Your MongoDB connection string to the database where the actor will store and check scraped profile IDs for deduplication. Example: `mongodb+srv://<username>:<password>@cluster0.mongodb.net` |
| mongoDbDatabaseName | string | The name of the MongoDB database where the actor will store and check scraped profile IDs for deduplication. Default name is: `harvestapi` |
| postFilteringMongoDbQuery | object | A MongoDB query in JSON format to further filter the scraped profiles before saving them to the dataset. |
Call it
curl
curl https://cracked-ai-pearl.vercel.app/v1/run \
-H "Authorization: Bearer ck_live_..." -H "content-type: application/json" \
-d '{"provider":"apify","endpoint":"/harvestapi/linkedin-profile-search","input":{"searchQuery":"head of growth","locations":["United States"],"maxItems":20},"wait":false}'poll
curl "https://cracked-ai-pearl.vercel.app/v1/runs/<runId>?wait=30" -H "Authorization: Bearer ck_live_..."cli
npx cracked-ai run -p apify -e /harvestapi/linkedin-profile-search -i '{"searchQuery":"head of growth","locations":["United States"],"maxItems":20}' -w 120mcp
run_tool({ provider: "apify", endpoint: "/harvestapi/linkedin-profile-search", input: {"searchQuery":"head of growth","locations":["United States"],"maxItems":20}, wait: false })Try it
Runs against your signed-in workspace balance. Sign in if you have not.