Fiber AI
Search & discovery

Search

Query 50M+ companies and 500M+ professional profiles with structured filters — count for free, then pull only the results you want.

Search

We index 50M+ companies and 500M+ professional profiles, and expose them through structured filters — Series B fintechs in Berlin under 200 people, or the VPs of Engineering who joined them in the last six months.

Counting matches is free; you pay only for the results you pull.

Prefer to describe your target in plain English? Agentic search resolves a sentence into these same filters and runs the same query — same accuracy, same credit model.

The four search surfaces

OperationWhat you searchReturns
companySearchCompanies by firmographics, funding, tech, locationCompany records
peopleSearchPeople by title, employer, tenure, location, keywordsProfile records
jobPostingSearchOpen job postingsJob records
paginatedCombinedSearchCompanies and the people who work at them, in one passBoth, linked

Every one has a free *Count sibling. Use it first. If you already hold LinkedIn URLs or domains, skip search entirely and resolve them directly.

Filtering companies

Company filters, by group:

Filter groupExamples
Identitydomains, linkedinSlugs, nameLike, exactCompanyV2, tlds
Size & moneyemployeeCountV2, revenueRangeUSD, totalFundingUSD, lastFundingUSD, stage
TimingfoundedOn, lastFundedOn, employeeTrendsV2
ClassificationindustriesV2, linkedinIndustries, naicsCodes, crunchbaseCategories, tags
LocationheadquartersCountryCode, headquartersStateName, headquartersLocation, officeLocationsV2
SignalstechnologiesV2, investorsV2, acceleratorsV2, jobPostingStats, fortuneRankings, status
Textkeywords with containsAll / containsAny / containsNone

Most filters take anyOf / allOf / noneOf, so include and exclude logic lives in the same request. Ranges name their own bounds (lowerBoundExclusive, upperBoundInclusive), so inclusivity is stated on the filter rather than buried in a reference table.

fortuneRankings filters to the Fortune 500 or Forbes Global 2000 by list and year — see Fortune & Forbes lists.

Filtering people

Filter groupExamples
RolejobTitleV2 (free terms, curated groups like founder or C-suite, or dynamic groups)
Employer & tenurejobs with anyOf / allOf / noneOf, each entry scoped current, past, or any
TimingstartedInRole, startedAtCompany — absolute dates or relative windows
Locationlocation (cities, coordinates with radius, polygons, preset regions), country3LetterCode
ReachnumConnections, numFollowers
TextkeywordsV2 with AND/OR/NOT, scoped by keywordSearchOptions to headline, skills, or experience
IdentityexactProfileV2 to pin or exclude specific profiles

Each jobs entry carries its own company and its own tenure status, so allOf expresses career paths a flat filter can't: worked at Stripe in the past and is a VP somewhere now. Naming a company in both anyOf and noneOf excludes anyone who ever held that role there.

People search also carries stealth status as a filter — see Stealth tracking.

Resolving identifiers you already have

When you already hold identifiers, skip the filters. Pass up to 100 per request and get back the same records search returns:

OperationAccepts
quickCompanyResolvelinkedinSlug, linkedinOrgId, linkedinUrl, domain
quickPersonResolvelinkedinSlug, linkedinUserId, linkedinUrl, entityUrn

Both allow 1,500 requests/minute, and you're charged only for the identifiers that resolve — misses are free.

For lookups by other identifiers, such as an email or a name plus a domain, use Kitchen Sink instead.

Count before you spend

Counts are free. Searches are not.

  • companyCount, peopleSearchCount, jobPostingSearchCount — count-only, no results, no credits.
  • includeCount: true on a search returns the estimate alongside the page. This charges one extra count credit, so it's for when you want both, not for iterating on filters.

Counts are estimates capped at 10,000. A response showing 10,000 means "10,000 or more", not exactly 10,000. Treat it as a signal that your filters are still broad, not as a total. Under the cap, use the estimate to budget the real run.

Iterate on filters against the count endpoint until the number looks right, then run the search once.

Ordering results

Pass sort when result order matters — clauses apply in the order you give them.

CompaniesPeople
totalFunding, lastRoundFunding, lastFundedAtcareerStartedAt, currentRoleStartedAt, currentCompanyStartedAt
foundedAt, employeeCount, revenueEstimatefollowerCount, connectionCount, jobCount
followerCount, jobPostingCountdataUpdatedAt

Both directions are supported, and records missing the sort value always land last regardless of direction — so a desc sort on totalFunding never buries funded companies behind unfunded ones.

A filter-only search has no inherent ranking. With no text query and no sort, the order you get back is arbitrary and shouldn't be read as relevance, recency, or size. If you're sampling — pulling 1,000 out of a 50,000-match set — set an explicit sort so the sample is defined rather than accidental.

Pagination

Pages are cursor-based. Ask for up to 1,000 results per page (pageSize, default 25), then pass the returned nextCursor to get the next one.

  • A cursor belongs to one query. Changing filters, sort, or exclusion lists mid-run invalidates it — start a fresh pagination run instead.
  • paginatedCombinedSearch cursors validate their parameters and return an error on mismatch. Company and people cursors do not, so a reused cursor there quietly gives you results for the query you started with. Don't recycle cursors.

When you want companies and the people who work at them together, paginatedCombinedSearch runs both in one pass and keeps them linked — so you skip the fan-out of searching companies, then querying people company by company.

OperationWhat it does
combinedSearchCountFree estimate of both sides before you commit
paginatedCombinedSearchCursor-paginated results, with an independent cursor per entity type

Independent cursors mean you page companies and people separately, at whatever rate each side needs.

Exclusion lists

Pass companyExclusionListIDs on a search and matching companies are filtered out before results come back — your existing customers, your do-not-contact list, whatever you've already worked. Exclusions apply to results; the estimated count does not account for them. Building and managing the lists themselves: Exclusion lists.

Using it effectively

  • Tune filters against the count endpoints before running the search; filter tuning is free until you pull results.
  • Set pageSize deliberately and stop paginating when you have enough — nothing caps how far you page.
  • Any run that pulls a fraction of the matches needs an explicit sort to be reproducible.
  • Use allOf on jobs for career-path criteria rather than keyword matching.
  • Company and people search allow 180 requests/minute; job posting search allows 120. Exceeding either returns HTTP 429, so back off and retry.

Use cases

  • Outbound sales: find companies matching your ICP, then pull the buying committee at each in a single combined search.
  • Recruiting: filter for people who held a specific role at a specific company and have been in their current job long enough to be open to a move.
  • Venture sourcing: companies founded in the last 18 months, seed stage, sorted by last funding date.
  • Competitive intel: companies running a competitor's technology, sliced by headcount and region.
  • Market sizing: count endpoints alone answer "how many X are there" without spending a credit.

Cost

Company and people search bill 1 credit per result returned, so a search that matches nothing costs nothing. Job posting search bills per job posting found. Count endpoints are free; includeCount adds one count credit per request.

The chargeInfo on every response is what you were actually charged — trust it over any published rate. See Billing & credits.

  • Agentic search — the same filters from a plain English prompt.
  • Typeaheads — resolve company names, locations, titles, and skills into the exact values these filters expect.
  • Google Maps search — local businesses that don't have a LinkedIn footprint.
  • Contact Reveal — turn search results into verified emails and phone numbers.

On this page