← Back to all apps

CB Insights

Financial Servicesby CB Insights
Launched Aug 20, 2026 on ChatGPTLaunched Mar 25, 2026 on Claude

Unleash Claude as your private markets research agent. Source companies, build market maps, draft investment memos, and monitor competitors — all powered by CB Insights' predictive intelligence. Tap into 11M+ double-validated company profiles, leading coverage of recent equity deals, proprietary taxonomies, unique scores, hidden signals, and over 20 years of bleeding-edge technology research to identify and analyze relevant, high-potential companies ahead of your competition. Built for corporate strategists seeking acquisition targets, VCs screening deal flow, and business development teams hunting new partners. If your work involves private companies, CB Insights delivers the insight you need to make your next move first.

38ChatGPT Tools
15Claude Tools
CB InsightsDeveloper
Financial ServicesCategory

Use Cases

financial-services

Available Tools

Add Watchlist Column or Funnel Option

add_watchlist_column
Full Description

Add a column to a watchlist's table, or reconfigure one already there.

Every add reports one entry per column under added, each with a status saying what happened to it. Pass a custom column's reported name to set_watchlist_cell_values to fill in values — that name is always one this watchlist resolves, so use it as reported rather than the name you asked for: where the watchlist already had a column of that name, it comes back as Name (#7), which is the form every column tool accepts.

This is also how you edit an existing column's options or format. Pass the column's existing name and matching type, and it is edited in place rather than duplicated, reported as status: updated:

  • type='select' + options — adds those labels to the ones it already

offers (pass only the new ones). added_options lists the new labels and options the resulting full set.

  • type='number' + number_format and/or decimal_places — changes how its

values are displayed, e.g. currency to percentage.

  • type='date' + date_format — changes how its dates are displayed.

None of these touch stored values: added options leave existing ones (and their cells) alone, and a format change is display-only. Never delete and recreate a column to change its options or format — that wipes every value in it. A column's resulting settings come back on a create too, since unspecified ones take the type's defaults.

type has to match the existing column for the edit to land. If this watchlist has a select/number/date column of that name and you pass a different one of those types, the call is refused rather than adding a second column under the same name; read the column's real type from get_watchlist_contents (preset='table') and pass that.

A 'cbi' column is an existing CB Insights data column (Total Funding, Mosaic, Sector, HQ Country) or an audit column (Added date, Added by). Call get_watchlist_column_catalog first for its id_column_type. Its values are filled in by CB Insights and cannot be set here, so its entry carries no column_id. Adding one that is already on the watchlist is a no-op reported as status: already_present; re-adding a deleted audit column restores its previous values and reports status: restored.

Several 'cbi' columns may be added in one call. Each outcome is reported under added, and an id the watchlist doesn't offer is listed under errors — the rest are still added. The watchlist must already contain at least one company.

Type-specific arguments must match type — passing options for a text column, say, is an error rather than being ignored.

Parameters (1 required, 8 optional)
Required
typestring

Column type. 'text', 'select' (a set of labeled options), 'number' and 'date' create a custom column you fill in yourself with set_watchlist_cell_values. 'cbi' adds an existing CB Insights data column, whose values are filled in automatically.

Options:textselectnumberdatecbi
Optional
columnsarray

Only for type='cbi': the columns to add, one entry each — get the ids from get_watchlist_column_catalog. Several may be given to add them in one call. An id the watchlist doesn't offer is reported under errors and skipped; the rest are still added.

Default: []
date_formatstring

Only for a 'date' column: 'MM_DD_YYYY' (default, MM/DD/YYYY) or 'DD_MM_YYYY' (DD/MM/YYYY). Changes the format of a date column called `name` if one already exists. Cell values are always entered as YYYY-MM-DD whatever the column displays.

Default: null
decimal_placesinteger

Only for a 'number' column: decimal places to display (0-6). Changes an existing number column called `name`, independently of `number_format` — pass either or both.

Default: null
id_listinteger

ID of the watchlist to add the column to (from get_watchlists). Provide this or list_name.

Default: null
list_namestring

Name of the watchlist, matched case-insensitively; ambiguous or unknown names return alternates.

Default: null
namestring

The name to give a new custom column, or the name of an existing select/number/date column to reconfigure. Required for 'text', 'select', 'number' and 'date'; not accepted for 'cbi', which names columns by id. Accepts the 'Name (#7)' form get_watchlist_contents reports for duplicated column names.

Default: null
number_formatstring

Only for a 'number' column: 'number' (default), 'currency', or 'percentage'. If a number column called `name` already exists, this changes its format — that is how you reformat a column after creating it. Display only; no stored value is changed.

Default: null
optionsarray

Only for a 'select' column: the option labels (required for select). If this watchlist already has a select column called `name`, these are added to the options it already offers rather than creating a second column — so pass only the new labels. Adding one it already has is an error; read the current set from get_watchlist_contents (preset='table').

Default: null

Add Orgs To Watchlist

add_watchlist_orgs
Full Description

Add organizations to an existing watchlist (by id_list or name).

Orgs already in the watchlist are effectively a no-op, and still come back in added. Unresolved inputs (e.g. ambiguous names) come back in errors and don't fail the rest. Resolved orgs that ListService's list-size cap silently dropped come back in not_added instead of added, with a not_added_note explaining it.

Parameters (0 required, 3 optional)
Optional
id_listinteger

ID of the watchlist to add to (from get_watchlists). Provide this or list_name.

Default: null
list_namestring

Name of the watchlist to add to, matched case-insensitively; ambiguous or unknown names return alternates.

Default: null
selectorobject

Set of orgs to add to the watchlist. Accepts org_ids, org_names, competitors_of (ids or names), market_ids, and watchlist targeting (watchlist_ids, my_watchlists, my_competitors); the union is deduped. Every org the set resolves to is acted on — the set isn't capped. Inputs that don't resolve come back in `errors` without failing the rest.

ChatCBI

api_chatcbi
Full Description

Ask CB Insights' AI chatbot (ChatCBI) a question and receive a conversational, natural-language answer grounded in CB Insights data. Returns a formatted response with source citations, related content links, and suggested follow-up questions. Supports multi-turn conversations by passing the returned 'chatID' back in subsequent requests. Use this when the user wants a synthesized, human-readable answer rather than raw structured data. This tool takes longer than the RAG tool - if you're going to generate your own answer anyway, consider using the RAG tool instead.

Parameters (0 required, 2 optional)
Optional
chatIDstring

A unique id for the conversation, for use with multi-turn conversations. A chatID is returned in the initial response.

messagestring

The message to send.

CB Insights RAG

api_rag
Full Description

Retrieve structured data from CB Insights in response to a natural-language query. Returns raw data objects spanning companies, deals, funding, markets, research, earnings call insights, business relationships, hiring trends, key developments, and more. Use this when you need factual, structured CB Insights data to analyze or reference — not when you need a conversational answer. The response includes a 'data' field with JSON-encoded results keyed by data source (e.g. companySearch, dealSearch, cbiResearch, markets) and a 'guidance' field describing what each source contains.

Parameters (0 required, 1 optional)
Optional
messagestring

The message to send. The total length of the message must be under 10,000 characters.

Company Advanced Search

company_advanced_search
Full Description

Search for companies using natural language. Automatically extracts keyword, industry, market, and attribute filters from the query, crosses them into search combinations, and executes the search.

Returns JSON with search_id, search_url, total_results, filter_summary, and companies.

Parameters (1 required, 1 optional)
Required
querystring

Natural language query describing companies to find

Optional
limitinteger

Maximum number of results to return

Default: 25

Create Watchlist

create_watchlist
Full Description

Create a new custom watchlist for the current user, optionally seeded with organizations.

The new watchlist is automatically pinned for the user.

Returns the new id_list and the orgs added; unresolved seed inputs (e.g. ambiguous names) come back in errors without failing the creation. Resolved seed orgs that ListService reported success for but didn't create come back in not_added instead of added, with a not_added_note explaining it.

Parameters (1 required, 1 optional)
Required
namestring

Name for the new watchlist.

Optional
selectorobject

Set of orgs to seed the new watchlist with. Accepts org_ids, org_names, competitors_of (ids or names), market_ids, and watchlist targeting (watchlist_ids, my_watchlists, my_competitors); the union is deduped. Every org the set resolves to is acted on — the set isn't capped. Inputs that don't resolve come back in `errors` without failing the rest. Omit to create an empty watchlist.

Get Company Acquisitions

get_company_acquisitions
Full Description

For each of the requested companies or investors, returns acquisitions, M&A deals, mergers, buyouts, and takeovers, ordered by recency.

Use search_deals for M&A deal filtering capabilities, including 50+ attribute filters.

Parameters (0 required, 8 optional)
Optional
id_orginteger

DEPRECATED — use selector.org_ids=[id] instead. Single CBI entity ID.

Default: null
limitinteger

Maximum number of acquisitions to return per company

Default: 20
offsetinteger

Offset for pagination (applied per company)

Default: 0
org_namestring

DEPRECATED — use selector.org_names=[name] instead. Single company or investor name.

Default: null
presetstring

Field preset: 'concise' (default — omits the heavy per-deal `mentions` detail) or 'full' (includes it).

Default: null
query_contextstring

Optional. Only needed when an entry in org_names/competitors_of is generic or ambiguous. Include only details that help identify the company (industry, product, location, domain, e.g. 'fintech banking startup' for 'Mercury'). Do not pass the user's message or any unrelated details. Used solely to pick the right company for those names. Has no effect on org_ids or other id-based dimensions.

selectorobject

Set of orgs to fetch acquisitions for. Accepts org_ids, org_names, competitors_of (ids or names), market_ids, and watchlist targeting (watchlist_ids, my_watchlists, my_competitors); the union is deduped. The set is capped to bound fan-out. Returns a list of results plus any unresolved inputs in `errors`.

verboseboolean

DEPRECATED — use preset='full' instead. When true, includes the full per-deal `mentions` detail.

Default: False

Get Company Analyst Ratings

get_company_analyst_ratings
Full Description

For each of the requested companies, returns its CB Insights analyst rating (optimistic, neutral, or cautious) — the verdict CBI's analysts publish on a company's outlook — plus the analyst's written rationale.

Analyst ratings cover a curated subset of companies, so many companies have no rating; those come back with an error saying so rather than an empty payload.

Fields returned:

  • analyst_rating: the company's current rating. Every field below is omitted

when the analysts have not set it, so a sparse object is expected.

  • rating: the verdict — optimistic, neutral, or cautious.
  • status: how live the verdict is — live (actively maintained),

under_review (being revisited), coming_soon (rating in progress, no verdict yet), or no_longer_rating (coverage dropped; the verdict is historical). Treat anything other than live as stale.

  • ts_rating: when the rating was last set.
  • description: a short summary blurb about the rating.
  • note: the analyst's written rationale, with title, thesis (the core

argument), signals (a list of {name, content} evidence points backing the thesis), and what_analysts_are_watching_for (what would change their mind).

  • rating_history: every recorded change to the rating, newest first. Only

present when preset='full'; an empty list means no changes were recorded. Each entry has change_type (initiated, reaffirmed, upgraded, or downgraded), rating (the verdict as of that change), and ts_rating (when the change was made).

Guidance: The rating and its note are written by human CB Insights analysts, not generated.

  • ALWAYS state the rating and attribute it to the analysts: "CB Insights analysts

rate X optimistic", "the CB Insights analyst thesis is...", "CB Insights analysts are watching for...". NEVER restate any of it as your own view ("my thesis", "I'm cautious on", "what I'm watching for").

  • Quote the note verbatim inside quotation marks: the thesis as one unbroken

quotation, never fragments stitched together with your own connecting words, and each signal's content quoted too - a bold label followed by unquoted text is not enough. Do not paraphrase, summarize, or restyle it, and do not close with your own restatement of what you just quoted.

  • NEVER infer a rating, thesis, or rating change from other data (Mosaic score,

funding, commercial maturity, sentiment, third-party analysts). When a company comes back with the no-coverage error, say CB Insights has no published rating for it rather than substituting your own assessment.

  • The full note is title + thesis + signals + what_analysts_are_watching_for

together. Quote all of it for a direct question about the rating, the company's outlook, its investment / partnership / acquisition merit, or its competitive positioning. For a general company overview, quote the thesis only. For a broad analytical question (the risks and opportunities for X), the note alone is not the answer - build it from the wider data and use verbatim extracts from the note as supporting evidence.

  • When you quote only an extract, point the user to the rest of it and link this

result's citation.url. Word that pointer as part of the sentence you are already writing rather than a boilerplate tagline. NEVER offer the full note when you have already quoted it in full - there is nothing left to send them to.

Parameters (0 required, 3 optional)
Optional
presetstring

Detail preset: 'concise' (the current rating — the default) or 'full' (also fetches and includes the rating change history).

Default: null
query_contextstring

Optional. Only needed when an entry in org_names/competitors_of is generic or ambiguous. Include only details that help identify the company (industry, product, location, domain, e.g. 'fintech banking startup' for 'Mercury'). Do not pass the user's message or any unrelated details. Used solely to pick the right company for those names. Has no effect on org_ids or other id-based dimensions.

selectorobject

Set of orgs to fetch analyst ratings for. Accepts org_ids, org_names, competitors_of (ids or names), market_ids, and watchlist targeting (watchlist_ids, my_watchlists, my_competitors); the union is deduped. The set is capped to bound fan-out. Returns a list of results plus any unresolved inputs in `errors`.

Get Company Buyer Transcripts

get_company_buyer_transcripts
Full Description

Return buyer/customer interview transcripts about a company — interviews with software buyers describing their evaluation, purchase, and experience with the company's products. Use when the user asks for qualitative buyer feedback, customer interviews, voice-of-customer content, or firsthand accounts of a company's products.

Returns up to limit transcripts (default 20). Pass limit=null to return every available transcript — useful when the user asks for "all" buyer interviews or wants comprehensive voice-of-customer coverage.

Fields returned:

  • transcripts: list of buyer interview transcripts. Each transcript has:
    • transcript_id: stable identifier for the transcript.
    • title: title of the interview transcript.
    • event_date: date the interview took place (ISO format, may be empty).
    • content: full body of the interview transcript.
Parameters (0 required, 4 optional)
Optional
id_orginteger

CBI entity ID (id_org/id_cbi_entity, if known). Provide this OR org_name.

Default: null
limitinteger

Max transcripts to return. Default 20. Pass null to return all.

Default: 20
org_namestring

Company name to look up. Provide this OR id_org.

Default: null
query_contextstring

Optional. Only needed when org_name is generic or ambiguous. Include only details that help identify the company (industry, product, location, domain, e.g. 'fintech banking startup' for 'Mercury'). Do not pass the user's message or any unrelated details. Used solely to pick the right company for org_name. Has no effect on id_org.

Get Company Cap Table

get_company_cap_table
Full Description

For each of the requested companies, returns its cap table history: per-round share class terms sourced from state incorporation filings (certificate of incorporation), sorted by round. Includes shares authorized, par value, issuance price, liquidation preference and amount, conversion price, dividend terms, participation rights, anti-dilution provisions, voting rights, and percent owned when available. Primarily covers private US companies; many companies have no cap table data.

Parameters (0 required, 6 optional)
Optional
id_orginteger

DEPRECATED — use selector.org_ids=[id] instead. Single CBI entity ID.

Default: null
limitinteger

Maximum number of cap table rounds to return per company

Default: 20
offsetinteger

Offset for pagination (applied per company)

Default: 0
org_namestring

DEPRECATED — use selector.org_names=[name] instead. Single company name.

Default: null
query_contextstring

Optional. Only needed when an entry in org_names/competitors_of is generic or ambiguous. Include only details that help identify the company (industry, product, location, domain, e.g. 'fintech banking startup' for 'Mercury'). Do not pass the user's message or any unrelated details. Used solely to pick the right company for those names. Has no effect on org_ids or other id-based dimensions.

selectorobject

Set of orgs to fetch cap table history for. Accepts org_ids, org_names, competitors_of (ids or names), market_ids, and watchlist targeting (watchlist_ids, my_watchlists, my_competitors); the union is deduped. The set is capped to bound fan-out. Returns a list of results plus any unresolved inputs in `errors`.

Get Company Competitors

get_company_competitors
Full Description

For each of the requested companies, returns its competitors, similar companies, peers, challengers, and incumbents.

To filter competitors by product type and 50+ attributes, use search_companies tool.

Parameters (0 required, 8 optional)
Optional
id_orginteger

DEPRECATED — use selector.org_ids=[id] instead. Single CBI entity ID.

Default: null
include_guidanceboolean

Include explanatory guidance for score fields

Default: True
limitinteger

Maximum number of competitors to return per company

Default: 25
offsetinteger

Offset for pagination (applied per company)

Default: 0
org_namestring

DEPRECATED — use selector.org_names=[name] instead. Single company or investor name.

Default: null
presetstring

Field preset: 'concise' (default — each competitor's identity, url, stage, Mosaic score, relevancy, and rank) or 'full' (also includes description, funding, and logo).

Default: null
query_contextstring

Optional. Only needed when an entry in org_names/competitors_of is generic or ambiguous. Include only details that help identify the company (industry, product, location, domain, e.g. 'fintech banking startup' for 'Mercury'). Do not pass the user's message or any unrelated details. Used solely to pick the right company for those names. Has no effect on org_ids or other id-based dimensions.

selectorobject

Set of orgs to fetch competitors for. Accepts org_ids, org_names, competitors_of (ids or names), market_ids, and watchlist targeting (watchlist_ids, my_watchlists, my_competitors); the union is deduped. The set is capped to bound fan-out. Returns a list of results plus any unresolved inputs in `errors`.

Get Company Exits

get_company_exits
Full Description

For each of the requested companies or investors, returns its exits (e.g. IPOs, mergers, acquisitions, going public, dissolutions, SPACs, buyouts, and other liquidity events).

To search exits across companies with 50+ filters, use the search_companies tool.

Parameters (0 required, 10 optional)
Optional
end_datestring

End date filter (inclusive), format YYYY-MM-DD

Default: null
id_orginteger

DEPRECATED — use selector.org_ids=[id] instead. Single CBI entity ID.

Default: null
limitinteger

Maximum number of exits to return per company

Default: 20
offsetinteger

Offset for pagination (applied per company)

Default: 0
org_namestring

DEPRECATED — use selector.org_names=[name] instead. Single company or investor name.

Default: null
presetstring

Field preset: 'concise' (default — omits the heavy per-exit `mentions` detail) or 'full' (includes it).

Default: null
query_contextstring

Optional. Only needed when an entry in org_names/competitors_of is generic or ambiguous. Include only details that help identify the company (industry, product, location, domain, e.g. 'fintech banking startup' for 'Mercury'). Do not pass the user's message or any unrelated details. Used solely to pick the right company for those names. Has no effect on org_ids or other id-based dimensions.

selectorobject

Set of orgs to fetch exits for. Accepts org_ids, org_names, competitors_of (ids or names), market_ids, and watchlist targeting (watchlist_ids, my_watchlists, my_competitors); the union is deduped. The set is capped to bound fan-out. Returns a list of results plus any unresolved inputs in `errors`.

start_datestring

Start date filter (inclusive), format YYYY-MM-DD

Default: null
verboseboolean

DEPRECATED — use preset='full' instead. When true, includes the full per-exit `mentions` detail.

Default: False

Get Company Funding

get_company_funding
Full Description

For each of the requested companies or investors, returns its funding rounds (e.g. pre-seed, seed, Series A-F, growth, late-stage), including round dates, amounts, lead and participating investors, and valuation ranges when available.

For multi-company searches with 50+ attribute filters, use search_deals tool.

Parameters (0 required, 8 optional)
Optional
id_orginteger

DEPRECATED — use selector.org_ids=[id] instead. Single CBI entity ID.

Default: null
limitinteger

Maximum number of funding rounds to return per company

Default: 20
offsetinteger

Offset for pagination (applied per company)

Default: 0
org_namestring

DEPRECATED — use selector.org_names=[name] instead. Single company or investor name.

Default: null
presetstring

Field preset: 'concise' (default — omits the heavy per-round `mentions` detail) or 'full' (includes it).

Default: null
query_contextstring

Optional. Only needed when an entry in org_names/competitors_of is generic or ambiguous. Include only details that help identify the company (industry, product, location, domain, e.g. 'fintech banking startup' for 'Mercury'). Do not pass the user's message or any unrelated details. Used solely to pick the right company for those names. Has no effect on org_ids or other id-based dimensions.

selectorobject

Set of orgs to fetch funding rounds for. Accepts org_ids, org_names, competitors_of (ids or names), market_ids, and watchlist targeting (watchlist_ids, my_watchlists, my_competitors); the union is deduped. The set is capped to bound fan-out. Returns a list of results plus any unresolved inputs in `errors`.

verboseboolean

DEPRECATED — use preset='full' instead. When true, includes the full per-round `mentions` detail.

Default: False

Get Company Funding Window

get_company_funding_window
Full Description

Predict when companies will raise their next funding round (funding window, fundraise timing, likelihood to raise, next round prediction).

Returns the predicted fundraising window (start and end date), the company's current phase relative to that window (pre/in/post), the peer cohort of similar companies used to derive the prediction, the percentage of peer companies that historically raised a next round, and the median days to next funding. Use preset='full' to also include the time-to-funding histogram.

Parameters (0 required, 6 optional)
Optional
id_orginteger

DEPRECATED — use selector.org_ids=[id] instead.

Default: null
org_namestring

DEPRECATED — use selector.org_names=[name] instead.

Default: null
presetstring

Field preset: 'concise' (phase, predicted window, last funding, peer cohort — the default) or 'full' (also fetches and includes the time-to-funding histogram).

Default: null
query_contextstring

Optional. Only needed when an entry in org_names/competitors_of is generic or ambiguous. Include only details that help identify the company (industry, product, location, domain, e.g. 'fintech banking startup' for 'Mercury'). Do not pass the user's message or any unrelated details. Used solely to pick the right company for those names. Has no effect on org_ids or other id-based dimensions.

selectorobject

Set of orgs to predict funding windows for. Accepts org_ids, org_names, competitors_of (ids or names), market_ids, and watchlist targeting (watchlist_ids, my_watchlists, my_competitors); the union is deduped. The set is capped to bound fan-out. Returns a list of results plus any unresolved inputs in `errors`.

verboseboolean

DEPRECATED — use preset='full' instead. When true, includes the time-to-funding histogram.

Default: False

Get Company Headcount

get_company_headcount
Full Description

Return structured quantitative metrics about a company's employee count and open job postings. Use when the user asks for specific numbers such as headcount, headcount growth rates, number of open positions, or momentum score. Do NOT use for questions about hiring strategy, workforce strategy, talent philosophy, workforce trends, or hiring outlook — use get_company_hiring_insights for those.

Fields returned:

  • total_headcount, total_headcount_as_of: most recent total employee count and

the date it was measured.

  • six_month_growth_pct, one_year_growth_pct, two_year_growth_pct: headcount

growth over the trailing 6 months / 1 year / 2 years, as a percentage.

  • headcount_history: monthly total headcount over the past 2 years

(oldest to newest). Each point has as_of_date, headcount, and percent_change_pct (change from the prior data point, when available).

  • department_distribution, country_distribution: object with as_of_date

and a points list. Each point has name, headcount, and pct_of_total (the headcount as a percentage of the sum of all categorized headcounts in that distribution; sums to ~100). Sorted by headcount descending.

  • open_positions: count of open job postings for the most recent target month.
  • target_month: month that hiring stats (open positions, momentum) were

captured.

  • hiring_intensity: percentage of open job positions to total headcount,

indicating the company's hiring rate relative to its current workforce size.

  • momentum_score: a CBI proprietary index used to compare hiring activity

across companies, accounting for company size. A larger company hiring at the same rate of job openings as a percentage of total headcount will have a higher momentum score than a smaller company with the same rate. The average momentum score is around 5 out of 100.

  • momentum_score_percentile: the percentile ranking of a company's momentum

score compared to all other companies in the dataset, indicating what percentage of companies have lower momentum scores. For example, a company in the 99th percentile means 99% of other companies have lower momentum scores, placing it in the top 1% of hiring momentum.

Parameters (0 required, 5 optional)
Optional
id_orginteger

DEPRECATED — use selector.org_ids=[id] instead.

Default: null
org_namestring

DEPRECATED — use selector.org_names=[name] instead.

Default: null
presetstring

Field preset: 'concise' (current + growth + momentum scalars — the default, and best for comparing across a large set) or 'full' (everything, including the bulky headcount history and department / country distribution lists).

Default: null
query_contextstring

Optional. Only needed when an entry in org_names/competitors_of is generic or ambiguous. Include only details that help identify the company (industry, product, location, domain, e.g. 'fintech banking startup' for 'Mercury'). Do not pass the user's message or any unrelated details. Used solely to pick the right company for those names. Has no effect on org_ids or other id-based dimensions.

selectorobject

Set of orgs to fetch headcount metrics for. Accepts org_ids, org_names, competitors_of (ids or names), market_ids, and watchlist targeting (watchlist_ids, my_watchlists, my_competitors); the union is deduped. The set is capped to bound fan-out. Returns a list of results plus any unresolved inputs in `errors`.

Get Company Hiring Insights

get_company_hiring_insights
Full Description

Return AI-generated narratives about companies' hiring activity, talent strategy, workforce trends, and hiring outlook, based on CB Insights analysis.

Parameters (0 required, 4 optional)
Optional
id_orginteger

DEPRECATED — use selector.org_ids=[id] instead.

Default: null
org_namestring

DEPRECATED — use selector.org_names=[name] instead.

Default: null
query_contextstring

Optional. Only needed when an entry in org_names/competitors_of is generic or ambiguous. Include only details that help identify the company (industry, product, location, domain, e.g. 'fintech banking startup' for 'Mercury'). Do not pass the user's message or any unrelated details. Used solely to pick the right company for those names. Has no effect on org_ids or other id-based dimensions.

selectorobject

Set of orgs to fetch hiring insights for. Accepts org_ids, org_names, competitors_of (ids or names), market_ids, and watchlist targeting (watchlist_ids, my_watchlists, my_competitors); the union is deduped. The set is capped to bound fan-out. Returns a list of results plus any unresolved inputs in `errors`.

Get Company Investments

get_company_investments
Full Description

For each of the requested companies or investors, returns its investments (rounds it has backed, led, or co-invested in), including the portfolio company, round type, date, and amount.

To filter investments across investors with 50+ attribute filters, use the search_deals tool.

Parameters (0 required, 8 optional)
Optional
id_orginteger

DEPRECATED — use selector.org_ids=[id] instead. Single CBI entity ID.

Default: null
limitinteger

Maximum number of investments to return per company

Default: 20
offsetinteger

Offset for pagination (applied per company)

Default: 0
org_namestring

DEPRECATED — use selector.org_names=[name] instead. Single company or investor name.

Default: null
presetstring

Field preset: 'concise' (default — omits the heavy per-investment `mentions` detail) or 'full' (includes it).

Default: null
query_contextstring

Optional. Only needed when an entry in org_names/competitors_of is generic or ambiguous. Include only details that help identify the company (industry, product, location, domain, e.g. 'fintech banking startup' for 'Mercury'). Do not pass the user's message or any unrelated details. Used solely to pick the right company for those names. Has no effect on org_ids or other id-based dimensions.

selectorobject

Set of orgs to fetch investments for. Accepts org_ids, org_names, competitors_of (ids or names), market_ids, and watchlist targeting (watchlist_ids, my_watchlists, my_competitors); the union is deduped. The set is capped to bound fan-out. Returns a list of results plus any unresolved inputs in `errors`.

verboseboolean

DEPRECATED — use preset='full' instead. When true, includes the full per-investment `mentions` detail.

Default: False

Get Company Investors

get_company_investors
Full Description

For each of the requested companies, returns the investors (e.g. VCs, angels, lead investors, participating investors, backers) who have funded it, including round participation details and lead investor status.

To filter investors by type, geography, fund size, or 50+ other attributes, use search_investors instead.

Parameters (0 required, 6 optional)
Optional
id_orginteger

DEPRECATED — use selector.org_ids=[id] instead. Single CBI entity ID.

Default: null
limitinteger

Maximum number of investors to return per company

Default: 20
offsetinteger

Offset for pagination (applied per company)

Default: 0
org_namestring

DEPRECATED — use selector.org_names=[name] instead. Single company or investor name.

Default: null
query_contextstring

Optional. Only needed when an entry in org_names/competitors_of is generic or ambiguous. Include only details that help identify the company (industry, product, location, domain, e.g. 'fintech banking startup' for 'Mercury'). Do not pass the user's message or any unrelated details. Used solely to pick the right company for those names. Has no effect on org_ids or other id-based dimensions.

selectorobject

Set of orgs to fetch investors for. Accepts org_ids, org_names, competitors_of (ids or names), market_ids, and watchlist targeting (watchlist_ids, my_watchlists, my_competitors); the union is deduped. The set is capped to bound fan-out. Returns a list of results plus any unresolved inputs in `errors`.

Get Company Markets

get_company_markets
Full Description

For each of the requested companies, returns the market maps (e.g. industry landscapes, sectors, ESP categories, verticals, segments) that include it, with the market name, description, and associated industries.

Parameters (0 required, 4 optional)
Optional
id_orginteger

DEPRECATED — use selector.org_ids=[id] instead. Single CBI entity ID.

Default: null
org_namestring

DEPRECATED — use selector.org_names=[name] instead. Single company or investor name.

Default: null
query_contextstring

Optional. Only needed when an entry in org_names/competitors_of is generic or ambiguous. Include only details that help identify the company (industry, product, location, domain, e.g. 'fintech banking startup' for 'Mercury'). Do not pass the user's message or any unrelated details. Used solely to pick the right company for those names. Has no effect on org_ids or other id-based dimensions.

selectorobject

Set of orgs to fetch market maps for. Accepts org_ids, org_names, competitors_of (ids or names), market_ids, and watchlist targeting (watchlist_ids, my_watchlists, my_competitors); the union is deduped. The set is capped to bound fan-out. Returns a list of results plus any unresolved inputs in `errors`.

Get Company News

get_company_news
Full Description

For each of the requested companies or investors, returns recent news articles (e.g. press releases, announcements, headlines, media coverage, mentions), including dates, titles, content snippets, source URLs, and other organizations mentioned in the same articles.

Parameters (0 required, 9 optional)
Optional
end_datestring

End date filter (inclusive), format YYYY-MM-DD

Default: null
id_orginteger

DEPRECATED — use selector.org_ids=[id] instead. Single CBI entity ID.

Default: null
limitinteger

Maximum number of news articles to return per company

Default: 10
max_content_lengthinteger

Maximum character length for article content. Set to null for full text.

Default: 500
offsetinteger

Offset for pagination (applied per company)

Default: 0
org_namestring

DEPRECATED — use selector.org_names=[name] instead. Single company or investor name.

Default: null
query_contextstring

Optional. Only needed when an entry in org_names/competitors_of is generic or ambiguous. Include only details that help identify the company (industry, product, location, domain, e.g. 'fintech banking startup' for 'Mercury'). Do not pass the user's message or any unrelated details. Used solely to pick the right company for those names. Has no effect on org_ids or other id-based dimensions.

selectorobject

Set of orgs to fetch news for. Accepts org_ids, org_names, competitors_of (ids or names), market_ids, and watchlist targeting (watchlist_ids, my_watchlists, my_competitors); the union is deduped. The set is capped to bound fan-out. Returns a list of results plus any unresolved inputs in `errors`.

start_datestring

Start date filter (inclusive), format YYYY-MM-DD

Default: null

Get Company Outlook

get_company_outlook
Full Description

For each of the requested companies, returns forward-looking outlook data: Mosaic scores (with insights, percentiles, and 1-year deltas), exit probability (IPO/M&A) with contributing signals, and commercial maturity / technology readiness levels (TRL).

Mosaic is a 0-1000 health/growth score for private companies (>600 signals a higher likelihood of IPO, unicorn status, or favorable exit).

Parameters (0 required, 7 optional)
Optional
id_orginteger

DEPRECATED — use selector.org_ids=[id] instead. Single CBI entity ID.

Default: null
include_guidanceboolean

Include explanatory guidance for score fields

Default: True
org_namestring

DEPRECATED — use selector.org_names=[name] instead. Single company or investor name.

Default: null
presetstring

Field preset: 'mosaic_only' (just Mosaic scores across the set), 'concise' (mosaic + exit_probability + maturity, the default), or 'full' (also includes the full Mosaic score history per company). Score guidance is controlled separately by `include_guidance`.

Default: null
query_contextstring

Optional. Only needed when an entry in org_names/competitors_of is generic or ambiguous. Include only details that help identify the company (industry, product, location, domain, e.g. 'fintech banking startup' for 'Mercury'). Do not pass the user's message or any unrelated details. Used solely to pick the right company for those names. Has no effect on org_ids or other id-based dimensions.

selectorobject

Set of orgs to fetch outlook data for. Accepts org_ids, org_names, competitors_of (ids or names), market_ids, and watchlist targeting (watchlist_ids, my_watchlists, my_competitors); the union is deduped. The set is capped to bound fan-out. Returns a list of results plus any unresolved inputs in `errors`.

verboseboolean

DEPRECATED — use preset='full' instead. When true, includes the full Mosaic score history.

Default: False

Get Company Profile

get_company_profile
Full Description

Return profile overviews for companies or investors: name, description, website, HQ location, founded year, status (e.g. alive, acquired, IPO, dead), total funding, Mosaic score, headcount, sector/industry classification, market maps, and the CB Insights analyst rating when available.

Use this to look up a single company/investor, or to fetch many at once — e.g. to populate a table or compare a set of companies side by side.

To find or filter companies and investors by 50+ attributes (rather than look up ones you can already name or identify), use search_companies or search_investors.

Guidance:

  • profile.analyst_rating is written by human CB Insights analysts. Attribute it to

them, never as your own view; quote its text verbatim rather than paraphrasing; and when you surface only part of the note, point to the rest at citation.url in your own words. Call get_company_analyst_ratings for the rating change history.

Parameters (0 required, 6 optional)
Optional
fieldsarray

DEPRECATED and ignored — use `preset` instead. Accepted for backward compatibility with cached tool manifests; it has no effect, so the response may include more sections than requested.

Default: null
id_orginteger

DEPRECATED — use selector.org_ids=[id] instead. Single CBI entity ID; folded into the selector when provided.

Default: null
include_guidanceboolean

Include explanatory guidance for score fields

Default: True
org_namestring

DEPRECATED — use selector.org_names=[name] instead. Single company or investor name; folded into the selector when provided.

Default: null
presetstring

Field preset controlling how much of each profile to return — strongly recommended for large selections to stay under response-size limits. One of: 'scores_only' (mosaic + funding), 'concise' (overview + mosaic + funding, where overview covers identity fields like name, description, url, founded year, status, and taxonomy), or 'full' (everything, the default). Score guidance is controlled separately by `include_guidance`.

Default: null
selectorobject

Set of orgs to fetch profiles for. Accepts org_ids, org_names, competitors_of (ids or names), market_ids, and watchlist targeting (watchlist_ids, my_watchlists, my_competitors); the union is deduped. The set is capped to bound fan-out. Returns a list of results plus any unresolved inputs in `errors`.

Get Company Relationships

get_company_relationships
Full Description

For each of the requested companies, returns its business relationships (e.g. partnerships, suppliers, customers, vendors, licensees), ordered by recency.

To filter by relationship type (i.e. client of company, integration partners), industry, or 50+ attributes to find connections between specific companies, use search_partnerships instead.

Parameters (0 required, 8 optional)
Optional
id_orginteger

DEPRECATED — use selector.org_ids=[id] instead. Single CBI entity ID.

Default: null
limitinteger

Maximum number of relationships to return per company

Default: 20
offsetinteger

Offset for pagination (applied per company)

Default: 0
org_namestring

DEPRECATED — use selector.org_names=[name] instead. Single company or investor name.

Default: null
presetstring

Field preset: 'concise' (default — omits the heavy per-relationship `sources` detail) or 'full' (includes it).

Default: null
query_contextstring

Optional. Only needed when an entry in org_names/competitors_of is generic or ambiguous. Include only details that help identify the company (industry, product, location, domain, e.g. 'fintech banking startup' for 'Mercury'). Do not pass the user's message or any unrelated details. Used solely to pick the right company for those names. Has no effect on org_ids or other id-based dimensions.

selectorobject

Set of orgs to fetch business relationships for. Accepts org_ids, org_names, competitors_of (ids or names), market_ids, and watchlist targeting (watchlist_ids, my_watchlists, my_competitors); the union is deduped. The set is capped to bound fan-out. Returns a list of results plus any unresolved inputs in `errors`.

verboseboolean

DEPRECATED — use preset='full' instead. When true, includes the full per-relationship `sources` detail.

Default: False

Get Company Revenue

get_company_revenue
Full Description

For each of the requested companies, returns revenue data, including estimated and reported revenue figures, revenue ranges, and historical revenue when available.

Parameters (0 required, 5 optional)
Optional
id_orginteger

DEPRECATED — use selector.org_ids=[id] instead.

Default: null
org_namestring

DEPRECATED — use selector.org_names=[name] instead.

Default: null
presetstring

Field preset: 'concise' (just the revenue KPIs across the set) or 'full' (revenue_by_year + kpis, the default).

Default: null
query_contextstring

Optional. Only needed when an entry in org_names/competitors_of is generic or ambiguous. Include only details that help identify the company (industry, product, location, domain, e.g. 'fintech banking startup' for 'Mercury'). Do not pass the user's message or any unrelated details. Used solely to pick the right company for those names. Has no effect on org_ids or other id-based dimensions.

selectorobject

Set of orgs to fetch revenue data for. Accepts org_ids, org_names, competitors_of (ids or names), market_ids, and watchlist targeting (watchlist_ids, my_watchlists, my_competitors); the union is deduped. The set is capped to bound fan-out. Returns a list of results plus any unresolved inputs in `errors`.

Get Company Strategy Map

get_company_strategy_map
Full Description

Get a strategy map showing a company's partnerships, investments, and acquisitions.

Returns the company's strategic relationships grouped into AI-generated categories. Each company in the map includes relationship type (acquisition, investment, or partnership), connection date, headline, and details.

The companion MCP App renders this as an interactive visual map with the anchor company on the left and categories branching to the right, with color-coded chips for each relationship type.

Examples: get_company_strategy_map(id_org=12345) get_company_strategy_map(org_name="Menlo Ventures") get_company_strategy_map(org_name="Stripe")

Keywords: strategy map, strategic, ecosystem, themes, categories, relationships, partnerships, investments, acquisitions, M&A, portfolio, alliances, deals, business development, positioning, focus areas.

Parameters (0 required, 3 optional)
Optional
id_orginteger

CBI entity ID (id_org/id_cbi_entity). Provide this OR org_name.

Default: null
org_namestring

Company or investor name to look up. Provide this OR id_org.

Default: null
query_contextstring

Optional. Only needed when org_name is generic or ambiguous. Include only details that help identify the company (industry, product, location, domain, e.g. 'fintech banking startup' for 'Mercury'). Do not pass the user's message or any unrelated details. Used solely to pick the right company for org_name. Has no effect on id_org.

Get Earnings Call Transcript

get_earnings_call_transcript
Full Description

Return the full transcript for a single earnings call (quarterly results, analyst call, investor call) for a public company, including all speaker paragraphs in order. Defaults to the most recent earnings call.

To compare multiple earnings periods, call this tool in parallel once per period.

Parameters (0 required, 5 optional)
Optional
id_orginteger

CBI entity ID (id_org/id_cbi_entity, if known). Provide this OR org_name.

Default: null
org_namestring

Company or investor name to look up. Provide this OR id_org.

Default: null
periodstring

Fiscal period of the earnings call. When omitted, defaults to the most recent period.

Default: null
query_contextstring

Optional. Only needed when org_name is generic or ambiguous. Include only details that help identify the company (industry, product, location, domain, e.g. 'fintech banking startup' for 'Mercury'). Do not pass the user's message or any unrelated details. Used solely to pick the right company for org_name. Has no effect on id_org.

yearinteger

Fiscal year of the earnings call (e.g. 2024). When omitted, defaults to the most recent year.

Default: null

Get Market

get_market
Full Description

Returns an overview of a technology market or industry sector: market name, description, and key features; the list of companies / competitors in the market ranked by CBI Mosaic score (company health/momentum), each with CBI's scorecard analysis (competitive analysis, customer outcomes, etc.); and market trends including industry and sub-industry classification, equity funding totals and deal counts over 1-year and 2-year windows, average Mosaic score, commercial maturity stage, average employee headcount and headcount growth, a multi-year equity-funding-and-deals time series, and recent exit activity (IPOs / acquisitions).

Use this to research a market's size, funding activity, competitive landscape, top startups, and growth trends. Accepts either a known market id or a market name (resolved against the CBI market taxonomy).

Parameters (0 required, 3 optional)
Optional
id_marketinteger

CBI market ID (if known). Provide this OR market_name.

Default: null
market_namestring

A market name or description of a market (i.e. 'generative AI', 'digital lending'). Provide this OR id_market.

Default: null
max_companiesinteger

Maximum number of companies to return in the companies list. Defaults to 50 and is hard-capped at 100.

Default: null

Get RAG Data

get_rag_data
Full Description

Retrieve structured data from CB Insights in response to a natural-language query. Returns raw data objects spanning companies, deals, funding, markets, research, earnings call insights, business relationships, hiring trends, key developments, and more. Use this when you need factual, structured CB Insights data to analyze or reference — not when you need a conversational answer. The response includes a 'data' field with JSON-encoded results keyed by data source (e.g. companySearch, dealSearch, cbiResearch, markets) and a 'guidance' field describing what each source contains.

Keywords: RAG, data, structured, retrieval, facts, companies, deals, earnings, hiring, developments, chart, graph, metrics, table, knowledge base.

Parameters (1 required)
Required
messagestring

Natural language query (max 10,000 chars)

Get MCP Usage

get_usage
Full Description

Report how many CB Insights MCP tool calls the current user has made and how many their plan allows.

Use this when asked about usage, remaining tool calls, quotas, limits, or after a call is rejected for exceeding an allowance. Returns a daily per-user figure and an annual figure for the user's team (or, for an account with no team, an annual figure for the account itself), each with the number of calls used, the limit, and the window it applies to.

Keywords: usage, quota, limit, allowance, remaining calls, rate limit, how many calls, over limit, exceeded.

Get Watchlist Column Catalog

get_watchlist_column_catalog
Full Description

The CB Insights data columns that can be added to a watchlist.

Use this to find the id_column_type to pass to add_watchlist_column with type='cbi'. Columns are grouped by category, and a column is identified by its id, not its name.

already_added marks the columns the watchlist already shows. Adding one again is a safe no-op rather than an error.

A search that matches nothing returns no categories and says so in note.

Covers CB Insights data columns and the audit columns (Added date, Added by). Custom columns you fill in yourself are not listed here; create those with add_watchlist_column and type 'text', 'select', 'number' or 'date'.

Readable for any watchlist, but add_watchlist_column refuses a watchlist with no companies in it.

Parameters (0 required, 3 optional)
Optional
id_listinteger

ID of the watchlist (from get_watchlists). Provide this or list_name.

Default: null
list_namestring

Name of the watchlist, matched case-insensitively; ambiguous or unknown names return alternates.

Default: null
searchstring

Only return columns whose name or category contains this.

Default: null

Get Watchlist Contents

get_watchlist_contents
Full Description

Fetch the organizations in a specific watchlist, by id_list or name.

The default 'orgs' preset returns lightweight org records (id_org, name, url, status, latest funding) for the requested page plus the total member count. The 'table' preset adds columns (the watchlist columns) and a cells map of values per row. Pass the id_orgs to the get_company_* tools for full data.

Only approved members are returned — the same set the user sees when they open the watchlist in the app. Both removed (rejected/deleted) entries and pending suggestions (not yet approved or rejected) are excluded.

Parameters (0 required, 5 optional)
Optional
id_listinteger

ID of the watchlist to fetch (from `get_watchlists`). Provide this or `list_name`.

Default: null
limitinteger

Max organizations (rows) to return (1-100).

Default: 25
list_namestring

Name of the watchlist to fetch, matched against your watchlists (case-insensitive). Ambiguous or unknown names return alternates.

Default: null
offsetinteger

Pagination offset over the members.

Default: 0
presetstring

'orgs' (default) returns the member organizations. 'table' additionally includes each member's custom-column values (the watchlist's Notes, Funnel stage, etc.).

Options:orgstable
Default: orgs

Get Watchlists

get_watchlists
Full Description

Return the current user's watchlists, selected by a ListSet.

Each watchlist comes back as {id_list, name, type (custom/competitors), item_count, is_pinned, permission_level, can_rename}. With no selector (or an empty one) this lists all of your watchlists; with containing_orgs it finds which of your watchlists contain those orgs. Use a returned id_list with get_watchlist_contents to see its members, or with the get_company_* tools' selector.watchlist_ids.

item_count counts approved orgs, pending suggestions (not yet approved or rejected), and non-org rows such as people — so it can be larger than get_watchlist_contents's total for the same watchlist, which counts approved orgs only: the same set the user sees when they open the watchlist in the app. Removed orgs count toward neither.

permission_level is your access to the list — owner for your own lists, read_write or read for one shared with you. can_rename tells you whether rename_watchlist will accept it: false for a read-only share and for the auto-generated competitors list. The two can_rename: false cases differ for membership edits, though: the competitors list still accepts add_watchlist_orgs / remove_watchlist_orgs, but a read-only share (permission_level: "read") refuses those too — only permission_level: "read_write" or "owner" can edit a list's members.

Unresolvable watchlist references (list_names, list_ids) or org references (containing_orgs) are reported in errors with near-matches where available and don't fail the rest. An id_list you don't own comes back as an error, not as an empty result — so an empty watchlists with no errors genuinely means the selection matched nothing.

Parameters (0 required, 1 optional)
Optional
selectorobject

Which watchlists to return; dimensions are ORed. Accepts list_ids, list_names, my_watchlists, my_competitors, and containing_orgs (an OrgSet — return the watchlists containing any of those orgs). Omit or leave empty to get all of your watchlists.

Paginate and sort Company Search Results for a given search id

paginate_and_sort_search
Full Description

Fetch a page of results from an existing company search.

Use this after the initial search to page through results beyond the initial limit, or to re-sort without re-running the search. Pass the search_id returned by the initial search along with limit and offset. Only pass a sort_field to re-sort; omit it and pagination keeps the search's default (relevance) order.

Parameters (1 required, 4 optional)
Required
search_idstring

UUID of an existing search, returned by search_companies

Optional
limitinteger

Maximum number of results to return, minimum is 10

Default: 50
offsetinteger

Number of results to skip (for pagination)

Default: 0
sort_directionstring

Sort direction: ASC or DESC. Defaults to ASC when sort_field is set.

Default: null
sort_fieldinteger

idColumnType to sort by (e.g. 1 = Company, 10079 = Revenue). Omit to preserve the search's default (relevance) ordering.

Default: null

Rename Watchlist

rename_watchlist
Full Description

Rename a watchlist (targeted by id_list or its current name).

Requires that you own the watchlist or hold write permission on it. The auto-generated competitors watchlist can't be renamed.

Parameters (1 required, 2 optional)
Required
namestring

New name for the watchlist.

Optional
id_listinteger

ID of the watchlist to rename (from get_watchlists). Provide this or list_name.

Default: null
list_namestring

Current name of the watchlist to rename, matched case-insensitively; ambiguous or unknown names return alternates.

Default: null

Rename Watchlist Column or Funnel Option

rename_watchlist_column
Full Description

Rename a custom column on a watchlist, or one of its funnel options.

This is how you rename an option in a select/funnel column. Pass the column in column, the option's current label in option, and its new label in new_name. The option keeps its identity, so every org that had it selected keeps that value and simply shows the new label.

Do NOT rename an option by removing it and adding a replacement — that looks equivalent and isn't. Removing an option destroys the cells that used it, and the replacement is created fresh, so those values do not come back.

renamed reports whether the column or an option changed; for an option, previous_option, option and the column's resulting options come back too. Without option, the column itself is renamed (only columns you added).

Parameters (2 required, 3 optional)
Required
columnstring

Current name of the custom column (case-insensitive).

new_namestring

The new label. Renames the column, unless `option` is given — then it renames that option and the column's own name is untouched.

Optional
id_listinteger

ID of the watchlist (from get_watchlists). Provide this or list_name.

Default: null
list_namestring

Name of the watchlist, matched case-insensitively; ambiguous or unknown names return alternates.

Default: null
optionstring

Only for a 'select' (funnel) column: the current label of the option to rename (case-insensitive). This is how you rename a single option.

Default: null

Search Companies

search_companies
Full Description

Find a population of companies matching criteria described in natural language. Industry, market, and technology concepts are matched as keyterms; the attributes below become structured filters. Returns filtered (not ranked) results, so ranking asks such as "top 10 by revenue" come back unsorted — sort them yourself if order matters.

Use it for discovery: "AI drug discovery startups in Boston that raised a Series B", "companies acquired by Walmart in logistics", "B2B SaaS companies with 20%+ headcount growth".

Do NOT use it to look up or verify one specific named company, or to check attributes of a list of named companies ("Klarna", "AWS ProServe", "company named Evergrow", "are X, Y and Z based in India") — those are rejected; use get_company_profile or another get_company_* tool. Naming a company as a criterion is fine ("backed by Sequoia", "acquired by Walmart"). For competitors of a named company prefer get_company_competitors; company search can be used but is weaker for large multi-segment companies (Apple, ExxonMobil).

Available filter attributes (mention any of these in query and they are applied automatically, as inclusions or exclusions): geography (headquarters), business model (B2B, B2C, B2G, SaaS, marketplace, freemium, usage-based, etc. — only when the query names one explicitly), company status, commercial maturity, headcount, headcount growth 6m, headcount growth 12m, headcount growth 24m, revenue, revenue growth latest, revenue growth future, revenue multiple, revenue per headcount, stock price, market cap, mosaic overall, mosaic momentum, mosaic money, mosaic market, mosaic management, M&A probability, IPO probability, founded year, total funding, latest funding amount, latest valuation, deal size, exit valuation, historical investment stages, funding round, funding date, deal date, exit date, funding window, VC backed, analyst briefing, exit type, investor, lead investor, acquirer, company name.

Guidance: REPORTING RESULTS TO THE USER — read before writing any summary: The rendered result view already gives the user full, independent access to every matched company (all total_results of them), with their own pagination — this is not limited by how many rows you retrieved into this conversation. Never describe your own retrieval as if it were the user's view. Do NOT say "showing the first 50" or "pulled 50 companies" — the user isn't limited to 50 of anything; they can browse the entire matched set themselves right now.

  • State total_results as the headline number: "matched 5,488 companies" — full stop,

that's what the user has.

  • If you personally read some rows into your own context to reason, summarize, or answer

a follow-up question, describe that as your own review, separate from what the user can see — e.g. "I looked at a sample of these to summarize common themes" or "I reviewed 150 of the 2,971 matches to answer your ranking question." Never phrase your own retrieval count as if it were the size or limit of the result set itself.

  • If total_results is large and the user's request implies judgment/ranking over the

whole set (e.g. "who's the best X", "find the top candidate for Y", "which of these is most Z") rather than a structured filter: don't answer from just your first tool call's rows. Page through more of the result set in batches using paginate_and_sort_search, scoring/filtering each batch against the user's rubric yourself, keeping only the survivors. State explicitly how many rows you personally evaluated (e.g. "evaluated 300 of 2,971 matches") — as a description of your own analysis depth, never as a description of what the user has access to.

Caveats:

  • Results may include some off-target companies — that is the nature of search over

keyterm matching. Review the returned companies and drop rows that don't fit the intent before presenting them. Or run post processing logic to further filter or validate the list against additional custom filters.

  • Geography is headquarters location only. There is no filter for operations, presence,

expansion into, or adoption of something in a place, so such criteria go unsearched.

  • Highly specific criteria — niche sub-sectors, several stacked quantitative constraints,

obscure investor portfolios — can return very few or zero companies. When results are thin, drop or loosen the narrowest criteria, or split the query, instead of stacking more.

  • Criteria are AND-combined. Genuinely alternative conditions ("funded OR acquired by X",

"raised in the last 90 days OR grew headcount 20%+") need one search each.

  • Prefer several narrow searches over one sprawling multi-sector search.

Always show the citation source URL in your answer - the results must be cited.

Parameters (1 required, 2 optional)
Required
querystring

Describe the population of companies to find in natural language: the business they are in plus any attribute criteria (i.e. geography, funding, size, financials, investor, acquirer, status). Run one search per distinct vertical or theme — a query naming several unrelated sectors dilutes or drops some of them. Keep truly alternative conditions (A or B) in separate searches; everything in one query is combined with AND. Exclusions are supported: say what to exclude ("excluding wealth management firms").

Optional
extended_thinkingboolean

Refine the filters against live search results before returning. Slower (allow a minute; the whole call is capped at 2 minutes) but more precise. Recommended when the query has exclusions or other negative constraints, or when precision matters more than latency.

Default: null
limitinteger

Maximum number of results to return, minimum is 25

Default: 50

Search Deals

search_deals
Full Description

Find funding deals (financing rounds and investments) matching criteria described in natural language. Industry, market, and technology concepts are matched as keyterms; the attributes below become structured filters. Each result is a deal: the company that raised, the round, amount, date, and participating investors. Results are filtered, not ranked.

Use search_companies to get companies rather than individual rounds, search_investors for a list of firms, and search_partnerships for non-financing deals (licensing, partnerships, supply agreements). search_companies is also more effective in seeing which companies a particular company invested in or acquired.

Available filter attributes (mention any of these in query and they are applied automatically): geography, deal size, deal date, investment stage (funding round), investor, lead investor.

Caveats:

  • Geography is the raising company's headquarters; there is no filter for where it operates.
  • Anything outside the attribute list above (deal rationale, use of proceeds, valuation

multiples) cannot be filtered on and goes unsearched.

  • Highly specific criteria (a niche sub-sector plus a narrow date window plus a specific

investor) can return very few or zero deals. When results are thin, loosen or drop the narrowest criteria rather than adding more.

Always show the citation source URL in your answer — the results must be cited.

Parameters (1 required, 1 optional)
Required
querystring

Describe the funding deals to find in natural language: i.e. round/stage, deal size, date range, geography (company headquarters), and the investors or industries involved. Run one search per distinct sector or theme rather than naming many at once. Criteria are AND-combined, so run truly alternative conditions ("Series A or Series B led by X" where the sets differ) as separate searches.

Optional
limitinteger

Maximum number of results to return, minimum is 25

Default: 25

Search Investors

search_investors
Full Description

Find a population of investors — venture capital firms (VCs), private equity funds (PE), angel investors, family offices, corporate venture arms, hedge funds — matching criteria described in natural language. Portfolio-company industry, market, and technology concepts are matched as keyterms; the attributes below become structured filters. Each result is an investor with their type, location, and investment activity. Results are filtered, not ranked.

Use search_companies to find the portfolio companies themselves, search_deals for individual financing rounds, and get_company_investors / get_company_profile to look up one named firm rather than discovering a set. A query that is just a firm's name, or a list of named firms to check facts against, is rejected — name investors only as criteria ("co-investors with Sequoia").

Available filter attributes (mention any of these in query and they are applied automatically): investor name, investor geography, investor type, investor founded year, investment stage, total funding, deal size, valuation, deal date, co-investor, deals last 12 months, total deals, exit valuation, exits last 12 months, portfolio company name, portfolio company status, portfolio company founded year, portfolio company location.

Caveats:

  • Geography is headquarters location only; there is no filter for where a firm operates or

is expanding.

  • Highly specific criteria (narrow sub-sectors plus several stacked constraints) can return

very few or zero investors. When results are thin, loosen or drop the narrowest criteria.

Always show the citation source URL in your answer — the results must be cited.

Parameters (1 required, 1 optional)
Required
querystring

Describe the population of investors to find in natural language: type (i.e. VC, PE, angel, CVC, family office, hedge fund), location, investment stage and activity, and the portfolio companies or industries they back. Run one search per distinct sector or theme — naming several unrelated sectors dilutes them.

Optional
limitinteger

Maximum number of results to return, minimum is 25

Default: 25

Search Partnerships

search_partnerships
Full Description

Find existing business relationships between companies — partnerships, alliances, collaborations, vendor/client arrangements, licensing, supply/distribution, sponsorships — matching criteria described in natural language. Results are filtered, not ranked.

Use it for: partnerships between two industries, cross-sector collaborations, vendor relationships in a market, licensing deals, supply chain connections, sponsorships, strategic alliances. Named companies are expected here as the partner sides.

Use get_company_relationships for every business connection of one named company without criteria, search_deals for financing rounds, and search_companies for hypothetical partners ("companies that could partner with X") — this tool only returns relationships that already exist.

Relationship-level filters: relationship type (partnership, vendor/client, licensor/licensee, supplier/distributor, sponsorship), relationship keywords, time period, and one or two specific companies or described company populations as the partner sides.

When a partner side is described rather than named, it supports the full company filter set (mention any of these in query and they are applied automatically): geography (headquarters), business model (B2B, B2C, B2G, SaaS, marketplace, etc. — only when named explicitly), company status, commercial maturity, headcount, headcount growth 6m, headcount growth 12m, headcount growth 24m, revenue, revenue growth latest, revenue growth future, revenue multiple, revenue per headcount, stock price, market cap, mosaic overall, mosaic momentum, mosaic money, mosaic market, mosaic management, M&A probability, IPO probability, founded year, total funding, latest funding amount, latest valuation, deal size, exit valuation, historical investment stages, funding round, funding date, deal date, exit date, funding window, VC backed, analyst briefing, exit type, investor, lead investor, acquirer, company name.

Caveats:

  • Geography is headquarters location only; there is no filter for where a company operates.
  • Relationship coverage is sparser than company coverage: a specific relationship type plus

a niche sector on both sides plus a short time window often returns very few or zero rows. When results are thin, widen the time period, drop the relationship type, or describe only one side.

Always show the citation source URL in your answer — the results must be cited.

Parameters (1 required, 1 optional)
Required
querystring

Describe the business relationships to find in natural language: the relationship type, the activity or topic of the relationship, a time period, and the two partner sides — each either named companies or a described population ('healthcare companies'). Run one search per distinct relationship theme; criteria are AND-combined, so truly alternative conditions need separate searches.

Optional
limitinteger

Maximum number of results to return, minimum is 25

Default: 25

Search People

search_people
Full Description

Find people (executives, founders, engineers, etc.) by their role and background. Filters are extracted automatically from the natural-language query. Results are filtered, not ranked.

Use it when the answer should be a list of PEOPLE ("Heads of Marketing at AI startups", "ex-Salesforce executives now at seed-stage companies"). Use search_companies when the answer should be COMPANIES, even if selected by their team ("which AI companies have founders from Salesforce").

The search supports four optional, AND-combined sections:

  • Person Details: name, location (the person's location), contact availability

(email / LinkedIn), education degree, and leadership signals (below).

  • Current Role: job title, seniority level, department, time in current role,

plus the company/industry the role is at.

  • Past Role: the same job attributes (no time-in-role) for a role the person

previously held.

  • Current or Past Role: a role the person holds OR has held.

Available leadership signals (career-spanning achievements; mention any in query): repeat founder, technical founder, Y Combinator founder, gave an executive interview to CB Insights, top university alum, founder money raised, valuation achieved, revenue achieved, has IPO'd, has M&A'd, has acquired companies, investment stage experience (Series A, B, C, etc.), and early employee at a top private or recently public company.

The company/industry side of any role reuses the full company filter set (industry, market, technology, geography, headcount, revenue, funding, status, etc.) — describe the company in natural language.

Available company filter attributes (mention any of these in query and they are applied automatically): geography (headquarters), business model (B2B, B2C, B2G, SaaS, marketplace, etc. — only when named explicitly), company status, commercial maturity, headcount, headcount growth 6m, headcount growth 12m, headcount growth 24m, revenue, revenue growth latest, revenue growth future, revenue multiple, revenue per headcount, stock price, market cap, mosaic overall, mosaic momentum, mosaic money, mosaic market, mosaic management, M&A probability, IPO probability, founded year, total funding, latest funding amount, latest valuation, deal size, exit valuation, historical investment stages, funding round, funding date, deal date, exit date, funding window, VC backed, analyst briefing, exit type, investor, lead investor, acquirer, company name.

Each result is a person with their CB Insights profile URL (`profile_url), location, contact info, and roles (job title, seniority, tenure, plus a company object carrying the org's name, id_org, website url, logo_url, and CBI profile_url`).

Caveats:

  • Person location and company geography are headquarters/home locations, not where someone

operates or is relocating to.

  • Stacking a narrow job title, a niche company population, and a tight tenure window often

returns very few or zero people. When results are thin, loosen the title or drop the narrowest constraint instead of adding more.

Always show the citation source URL in your answer — the results must be cited.

Parameters (0 required, 2 optional)
Optional
limitinteger

Maximum number of results to return, minimum is 25

Default: 25
querystring

Describe the people to find in natural language: role (job title, seniority, department, tenure), whether it is a current or past role, the company or company population the role is at, and personal attributes (name, location, contact availability, degree). Sections are AND-combined, so run genuinely alternative conditions as separate searches, and keep one distinct role or sector per search.

Search Partnerships

search_relationships
Full Description

Search for business partnerships, alliances, collaborations, agreements, and other ongoing business connections between companies or across industries. Supports filters for relationship type (partnership, vendor/client, licensing agreement, licensor/licensee, supplier/distributor, sponsorship), partner attributes (industry, geography, size, 50+ others), time period, and connections involving one or two specific companies or industries.

Use this tool for queries like: partnerships between two industries, cross-sector collaborations, vendor relationships in a market, licensing deals between companies, supply chain connections, sponsorship deals, and strategic alliances.

Use get_company_relationships instead for an unfiltered list of every business connection a single named company has.

Parameters (1 required, 1 optional)
Required
querystring

Natural language query describing business relationships to find

Optional
limitinteger

Maximum number of results to return

Default: 25

Search Research

search_research
Full Description

Find CB Insights proprietary research (analyst content) matching a topic and criteria described in natural language. Topics, industries, and keywords are matched as keyterms; the attributes below become structured filters. Results are filtered, not ranked.

Use it for analyst research only — for company, deal, or investor data use search_companies, search_deals, or search_investors respectively.

Available filter attributes (mention any of these in query and they are applied automatically): research topic / keywords, industry, specific organization, research type, publish date.

Research types: market maps, research briefs, state of reports, future of reports, competitor analysis, top company lists, big tech reports, buyer perspective reports, investment thesis maps, customer sentiment, webinars, markets.

Caveats:

  • Without an explicit date in the query, results are limited to the last two years.
  • Research coverage is a finite analyst library: a narrow topic combined with a specific

research type, organization, and date window often returns very few or zero reports. When results are thin, broaden the topic or drop the research type rather than adding criteria.

Always show the citation source URL in your answer — the results must be cited.

Parameters (1 required, 1 optional)
Required
querystring

Describe the research to find in natural language: topic or keywords, research type (e.g. market map, state of report), organizations covered, and publish-date range. State the date range explicitly when you want anything older than the last two years. Search one topic at a time; criteria are AND-combined.

Optional
limitinteger

Maximum number of results to return, minimum is 25

Default: 25

Set Watchlist Cell Values

set_watchlist_cell_values
Full Description

Set values in a watchlist's custom columns for one or more orgs.

Unresolved orgs, orgs that aren't in the watchlist, unknown columns, values that don't fit a column's type, and two keys landing on the same cell are reported in errors (with alternates) and don't fail the rest. set lists only what was written — trust it over assuming a value survived, since a failure partway through a select column leaves that cell empty.

Parameters (1 required, 2 optional)
Required
valuesobject

Values to set, keyed by org then column: {org: {column: value}}. The org key is a CBI entity id or a company name; the inner key is a custom column name. Value types: text→string, number→number, date→'YYYY-MM-DD', select→an option label (or list of labels), which replaces whatever was selected before. A null value clears the cell. One call can span multiple orgs and columns, up to 200 orgs and 1000 values (a list of select labels counts once per label) — split larger edits into several calls. Orgs must already be in the watchlist. Prefer entity ids over names: each distinct name costs a resolution, and two keys naming the same org conflict on the same cell.

Optional
id_listinteger

ID of the watchlist (from get_watchlists). Provide this or list_name.

Default: null
list_namestring

Name of the watchlist, matched case-insensitively; ambiguous or unknown names return alternates.

Default: null