Find prospects who fit an ICP: give LinkedIn search filters (job titles, seniority, function, location, industry, company size, companies, schools, keywords and their exclusions) and get back a list of people with profile URL, name, location, current title and company, a short "about", premium and Open Profile flags. No browser and no LinkedIn account is used; this reads public search results from a third-party provider. The results are scraped public data, not a verdict: deciding who actually fits, and why, is still your job.
COST: 1 enrichment lookup per person RETURNED, from the same shared pool as li_enrich_profiles. Results come in LinkedIn pages of 25, so maxResults is rounded UP to whole pages and the whole window is reserved first; a short last page costs only the people on it. Pass estimateOnly=true first for a free preview of the most it would charge and what is left. At most 100 per call; continue with startPage (`nextStartPage` in the reply). LinkedIn shows at most 100 pages (2500 people) for one search, so narrow the filters to reach past that.
Each person is marked against YOUR team: `alreadyContact` (in your contacts, with status and campaigns) and `doNotContact` (on your team's or the install's do-not-contact list). Each is an object (yes), false (checked, not found) or null (could not check). A false is only "not under this URL": search results name people by LinkedIn's search id (`/in/ACwAA…`, case-sensitive), not their public profile URL, so someone you hold under their vanity URL can still read false here. `truncated` true means more people match than this call returned. `unreadable` counts rows the provider sent that could not be read; they are left out and never charged. Always relay `message`.
Each lead carries `publicProfileUrl` when the person was looked up before (free), else null. Pass the search-id profileUrl to any tool as it is: every tool that takes a profile URL resolves it to the public profile URL first (cache, then a provider lookup from the same pool, then the account's browser) and reports how in `searchIds`; imports store the vanity URL with the member id. li_resolve_profile_url does the same resolution on its own, read-only.
Siblings: li_enrich_profiles for the full profile of the people you pick (headline, experience, employer page; each row also carries publicProfileUrl, memberId and searchId); li_fetch_posts for their latest posts to write a personal opener; li_check_targets to see who is already in your pipeline; li_ingest_prospects to import the ones you choose with their prefilled copy.