Kitchen Sink
Resolve a person or company from whatever partial data you already have — no need to know which field is "the right one."
Kitchen Sink Resolvers
The Kitchen Sink resolvers are named after the saying "everything but the kitchen sink." The idea: pass in whatever you know about a person or company — any mix of identifiers — and Fiber does its best to find the match across its databases and additional sources. You don't have to know which field is "the right one," and you don't have to worry about the fields you're missing.
Kitchen Sink returns the resolved, enriched entity (identity + firmographics + history). It does not reveal email/phone — for that, use Contact Reveal on the resolved LinkedIn URL.
There are two resolvers:
| Resolver | Operation | Resolves |
|---|---|---|
| Profile | KitchenSinkProfile | A person from any identifier |
| Company | kitchenSinkCompany | A company from any identifier |
Operation casing is inconsistent and case-sensitive: KitchenSinkProfile
(capital K) vs kitchenSinkCompany (lowercase k). Use them exactly as written.
The problem it solves
Sales teams and CRMs almost never have clean, uniform data. One record has a LinkedIn URL; the next has only an email; another has just a name and the company they work at; a company record might have only a domain, or only a brand name. Forcing the caller to pick the correct typed endpoint for each shape of data is brittle and slow.
Kitchen Sink collapses that into a single endpoint per entity type where you throw in whatever you have and get back a resolved, enriched record. This is why it's a favorite for:
- CRM enrichment / cleanup — normalize and complete records that each carry different fields.
- Lead intake — resolve inbound leads regardless of what the form captured.
- Data unification — merge partial records from multiple systems by resolving them all to the same canonical entity.
How it works
- Accepts any combination of identifiers. Provide one or several of the supported fields; Kitchen Sink uses whatever is present and ignores what's absent. More signals generally improve match accuracy.
- Auto-detect, don't pre-classify. You don't tell it "this is a slug" vs "this is a URL" — it figures out and normalizes the inputs.
- Finds matches wherever the signal lives. Kitchen Sink draws on Fiber's full identity graph — including resolving an email to the person behind it — so even sparse records land on the right entity.
- Fast and cost-effective by design. Lookups run against Fiber's continuously refreshed index and return quickly at low credit cost. When you need the freshest possible snapshot of an already-clean identifier, use Live Enrich instead.
Kitchen Sink Profile (KitchenSinkProfile)
Resolve a person from any one of:
- a LinkedIn URL,
- an email (uses reverse email lookup under the hood),
- a name + company, or
- a domain (e.g., to find people at that company).
It returns the same comprehensive profile shape as live profile enrichment — 44+ top-level fields by default, including:
- Experiences (full work history) and tenures (time in role / at company)
- Education (schools, degrees, fields, years)
- Skills
- Tags (system-assigned, e.g., founder, investor)
- Inferred location with coordinates and timezone
- Career-began date
- Follower count and connection count
- is-hiring and open-to-work status flags
- Identity basics (name, headline, LinkedIn URL/slug, profile image)
// Pass whatever you have — any subset of identifiers.
const person = await KitchenSinkProfile({
body: {
apiKey: process.env.FIBER_API_KEY!,
// any one (or several) of these:
linkedinUrl: "https://www.linkedin.com/in/example",
email: "jane@acme.com",
name: "Jane Doe",
company: "Acme Corp",
domain: "acme.com",
},
});
console.log(person.data?.output);Kitchen Sink Company (kitchenSinkCompany)
Resolve a company from any one of:
- a domain (e.g.,
acme.com), - a LinkedIn slug (e.g.,
stripe), - a LinkedIn organization ID (e.g.,
1441), or - a company name (brand name).
It returns rich company data in one call, including:
- Tech stack — technologies the company uses
- Funding — rounds, stages, amounts, investors
- Headcount history — employee count over time, not just the current number
- Social presence — follower count and LinkedIn activity
- Plus identity/firmographics: name, domain, slug, org ID, industry, HQ/location, founding date, operating status, logo.
const company = await kitchenSinkCompany({
body: {
apiKey: process.env.FIBER_API_KEY!,
// any one (or several) of these:
domain: "stripe.com",
slug: "stripe",
orgId: "1441",
name: "Stripe",
},
});
console.log(company.data?.output);kitchenSinkCompany vs companySearch. Use kitchenSinkCompany when you
already know the company and want a rich profile in one call. Use
companySearch when you need discovery/filtering across many companies —
not for fetching one known company. The same split applies on the people
side: KitchenSinkProfile resolves one known-but-messy person; peopleSearch
discovers many.
Bulk identifier-based lookup
The Kitchen Sink module supports bulk identifier-based company & profile lookup — resolve many messy identifiers in one pass rather than calling the single resolver in a loop.
Use bulk Kitchen Sink when you have a list of mixed-quality records (e.g., a CRM export where rows have different identifier types) and want them all resolved to canonical, enriched entities efficiently.
Kitchen Sink vs. Search vs. Live Enrich
| You have… | You want… | Use |
|---|---|---|
| A messy/ambiguous identifier (any type) | The resolved, enriched record | Kitchen Sink (KitchenSinkProfile / kitchenSinkCompany) |
| Filters (industry, title, size, …) | To discover many matching entities | Search (companySearch / peopleSearch) |
| A clean identifier (URL/slug/orgId) | The freshest real-time snapshot | Live Enrich |
| A resolved LinkedIn URL | Their email / phone | Contact Enrichment |
| An email | The person behind it | Reverse email lookup — or Kitchen Sink Profile with email |
Mental model:
- Search = discover many.
- Kitchen Sink = resolve one (or bulk) from whatever you have.
- Live Enrich = refresh one to "right now."
- Contact Enrichment = reveal how to reach them.
Credit costs
- Kitchen Sink charges per resolved entity (a resolution/lookup cost), and resolving from an email may incur the reverse-email-lookup path.
- It does not include contact reveal — emails/phones are billed separately via Contact Enrichment (work email 2, personal email 2, phone 3).
output.chargeInfois authoritative. Surface it verbatim, and checkGET /v1/get-org-credits?apiKey=xxx(free) before large bulk resolutions.