Skip to main content

Product Search and Enrich

product_search_and_enrich — search / discover / hydrate products & technologies from the HG Insights catalog. One tool, two actions. action='search' (free) returns a slim, paginated hit list of product_ids matching name/vendor/category/attribute filters — use it to disambiguate a fuzzy product name or browse products under a vendor/category. action='enrich' (1 credit per successful match) hydrates 1-50 known product_ids into full catalog records: product_details, category_info, vendor_info. Typical flow: search to find the id, then enrich the chosen id(s). Unmatched enrich ids are silently omitted and consume no credits. When filtering by category, prefer resolving the exact category first via get_product_category and passing category_id — category_name does a substring match that can silently pick the wrong category (e.g. 'CRM' can match a BPO/outsourcing category). Same guidance applies to attributes via get_product_attribute (use attribute_ids) and vendors via get_vendor_information (use vendor_id). Do NOT use for pricing, competitor narrative, or user reviews. This tool returns HG catalog taxonomy (category/vendor/attributes/install signals) only.

Credits​

1 — 1 per enriched product returned. See the full credit table for how AI Credits work.

Parameters​

NameTypeDefaultDescription
action Requiredstring-Required discriminator selecting the operation. 'search' = free, returns a paginated list of matching product_ids (use with filters/sort/limit/offset). 'enrich' = 1 credit per successful match, hydrates known product_ids into full catalog records (use with products[]).
filtersobject-search-only, all fields optional and AND-combined. Flat HG catalog filters: product_name, description, category_name, attribute_name, vendor_name (substring matches — imprecise), category_id (32-char uppercase hex, resolve via get_product_category), attribute_ids (resolve via get_product_attribute), vendor_id (resolve via get_vendor_information), has_install (true = only products with observed installs). Resolve category_id via get_product_category first and pass it here — category_name does a substring match that can silently pick the wrong category. Prefer id filters over the *_name substring filters. Unknown keys and legacy nested shapes are rejected.
filters.product_namestring-
filters.descriptionstring-
filters.category_namestring-
filters.attribute_namestring-
filters.vendor_namestring-
filters.category_idstring-
filters.attribute_idsarray-
filters.vendor_idinteger-
filters.has_installboolean-
sortarray-search-only. Ordered list of up to 3 sort specs (first is primary). Each: field ∈ {relevance, product_name, vendor_name, category_name, last_verified_at}, order ∈ {asc, desc}. Omit for the server's default relevance ranking.
sort[].field Requiredstring-
sort[].order Requiredstring-
limitinteger-search-only. Max results per page, 1-100. Server default: 50.
offsetinteger-search-only. Zero-based pagination offset (>=0) into the result set; page N = offset N*limit. Server default: 0.
productsarray-enrich-only, required for enrich. 1-50 product_ids to hydrate, each as {product_id}. Get ids from a prior action='search' call. Duplicates are deduped by upstream. Unmatched ids are silently omitted from the response and consume no credits (no per-row error is returned).
products[].product_id Requiredinteger-

Required Integrations​

This tool is only available when your organization has the following integration configured in the HG Insights Integrations settings:

  • HG Insights (Data API) (hginsights_v2_data_api)

Use Cases​

  • Resolve a fuzzy product name into a concrete product_id — action='search' with filters.product_name
  • List every product a vendor ships in the catalog — action='search' with filters.vendor_id (resolved via get_vendor_information)
  • Browse products within a category — action='search' with filters.category_id (resolved via get_product_category)
  • Fetch full catalog metadata (product/category/vendor details) for known ids — action='enrich' with products[]
  • Narrow a category to products that actually have installs — action='search' with filters.has_install:true

Example Usage​

Search products by name (free, returns product_ids)

{
"tool": "product_search_and_enrich",
"arguments": {
"action": "search",
"filters": {
"product_name": "Salesforce"
},
"limit": 10
}
}

Search a resolved category, installs only, sorted by name

{
"tool": "product_search_and_enrich",
"arguments": {
"action": "search",
"filters": {
"category_id": "1418B319B0BF64082F35286B055DDCC1",
"has_install": true
},
"sort": [
{
"field": "product_name",
"order": "asc"
}
]
}
}

Enrich two known product_ids with full catalog details

{
"tool": "product_search_and_enrich",
"arguments": {
"action": "enrich",
"products": [
{
"product_id": 43310
},
{
"product_id": 43311
}
]
}
}

Response Format​

FieldTypeDescription
productsarraysearch: slim product hit list ({product_id, product_name, ...}). enrich: one hydrated row per matched product_id.
products[].product_idnumber | null
products[].product_namestring | null
products[].product_descriptionstring | null
products[].vendor_idnumber | null
products[].vendor_namestring | null
products[].category_idstring | null
products[].category_namestring | null
products[].product_detailsobject | null
products[].category_infoobject | null
products[].vendor_infoobject | null
countnumbersearch only. Total matching products before pagination.

get_product_category, get_product_attribute, get_vendor_information, company_technographic