Enterprise-grade contact data, plus a signal that a company is already shopping.
ZoomInfo is a prospecting tool, and one of the 52 tools hyreflow connects to Claude, ChatGPT and other AI assistants. Through hyreflow, an AI agent can run 19 actions, all of which look something up. ZoomInfo runs on your own ZoomInfo account: hyreflow charges no credits for it, and ZoomInfo bills you as before.
Your agent searches ZoomInfo for people and companies, resolves emails and direct dials, and pulls intent signals on which accounts are in market. It costs more than the alternatives, and it covers more.
ZoomInfo can start a pipeline or rescue one. Use it to discover accounts, or to fill the gaps a cheaper enricher left behind.
With hyreflow connected, you ask for the outcome in plain language and the assistant runs ZoomInfo for you. For example:
In a hyreflow run, ZoomInfo is most often paired with TheirStack, BuiltWith, Apollo and Bullhorn.
confirm an intent signal against live job postings
qualify an account by the stack it actually runs
a cheaper first pass before you spend ZoomInfo credits
enterprise data belongs on the enterprise record
Through hyreflow, an AI agent can run 19 ZoomInfo actions, all of which look something up. ZoomInfo runs on your own ZoomInfo account: hyreflow charges no credits for it, and ZoomInfo bills you as before.
| ZoomInfo action | What it does | Cost through hyreflow |
|---|---|---|
| Enrich companies | Looks something up | no hyreflow credits |
| Enrich contacts | Looks something up | no hyreflow credits |
| Enrich corporate hierarchy | Looks something up | no hyreflow credits |
| Enrich hashtags | Looks something up | no hyreflow credits |
| Enrich intent | Looks something up | no hyreflow credits |
| Enrich news | Looks something up | no hyreflow credits |
| Enrich org charts | Looks something up | no hyreflow credits |
| Enrich scoops | Looks something up | no hyreflow credits |
| Enrich technologies | Looks something up | no hyreflow credits |
| Lookup | Looks something up | no hyreflow credits |
| ZoomInfo action | What it does | Cost through hyreflow |
|---|---|---|
| Search companies | Looks something up | no hyreflow credits |
| Search contacts | Looks something up | no hyreflow credits |
| Search intent | Looks something up | no hyreflow credits |
| Search news | Looks something up | no hyreflow credits |
| Search scoops | Looks something up | no hyreflow credits |
| Company insights | Looks something up | no hyreflow credits |
| Company lookalikes | Looks something up | no hyreflow credits |
| Contact lookalikes | Looks something up | no hyreflow credits |
| Contact recommendations | Looks something up | no hyreflow credits |
One credit is priced on the pricing page. The full price list for every tool is in the pricing tables.
One hyreflow skill calls ZoomInfo as part of the run. A skill is a whole pipeline your agent already knows, end to end.
hyreflow ships a written playbook for ZoomInfo, and the agent loads it before the first call. Auth, rate limits, what each call costs, which actions need your approval, and the mistakes worth avoiding. It is the difference between an agent that knows the tool and one that guesses at it.
Read the ZoomInfo docs →HOW in lib/zoominfo.py. Paths CONFIRMED from the live docs at docs.gtm.ai (2026-09); index: reference/docs/zoominfo/raw/endpoints.md.
https://api.zoominfo.com/gtm (families: oauth/v1, data/v1, copilot/v1).POST /gtm/oauth/v1/token — HTTP Basic client_id:client_secret, body grant_type=client_credentials (no scope, no refresh token), x-www-form-urlencoded → Bearer (expires_in ~1h). The adapter caches the token, refreshes before expiry, and re-auths once on a 401.ZOOMINFO_CLIENT_ID, ZOOMINFO_CLIENT_SECRET (DevPortal app — self-serve BYOK, pasted on the Integrations card as Client ID + Client Secret; connecting it needs the Essential plan or above). Never hardcode. Per-endpoint scopes (api:data:contact, api:data:company, api:insights:read, …) are granted to the app in DevPortal — the token request sends no scope. Data calls send Content-Type/Accept: application/vnd.api+json with JSON:API {"data":{"type":…,"attributes":{…}}} bodies.Enrich: enrich_contacts, enrich_companies (≤25 records), enrich_scoops, enrich_intent, enrich_news, enrich_technologies, enrich_org_charts, enrich_corporate_hierarchy, enrich_hashtags. Search: search_contacts, search_companies, search_intent, search_news, search_scoops (filters in data.attributes; page[number]/page[size] 1-100 + sort as query). Copilot: company_lookalikes, contact_lookalikes (filter[referencePersonId]), contact_recommendations (filter[useCaseType] + filter[ziCompanyId]), company_insights, account_summary. lookup(field_name) resolves valid field values; user_usage reports credits. Everything else (agent-teams, ICP/persona/competitor config, audiences, GTM-Studio columns/folders/rows, workflows, engagements) → generic request("POST"|"GET", "data/v1/…"|"copilot/v1/…", json=…).
user_usage, lookup and search_* calls are free on the ZoomInfo side; enrich_* charges per matched record (failed/no-match lookups are NOT charged). user_usage() to check balance. Pilot a 1-record enrich first; gate bulk behind approval. Enrich is capped at 25 records/call.Net-new sourcing + enrichment layer: search_companies/search_contacts (discover) → enrich_* (resolve emails/phones/firmographics) → signals (enrich_intent/enrich_scoops) for prioritization → hand to sequencers / ATS. Premium alternative/complement to [[apollo]] and the waterfall enrichers.
lib/zoominfo.pyImport: from lib.zoominfo import ZoomInfo → instantiate ZoomInfo() (reads key from env). Base: https://api.zoominfo.com/gtm. Generic passthrough: request(method, path, *, params, json).
account_summary(company_id) -> Any — GET /copilot/v1/companies/{companyId}/account-summary — Copilot account summary for one ZoomInfo company ID.company_insights(payload: dict) -> Any — POST /copilot/v1/companies/insights — type CompanyInsightsSearch, attributes {ziCompanyIds: [≤50], signalTypes?}. Sales-intelligence signals filtered by type; scope api:insights:read.company_lookalikes(**params) -> Any — GET /copilot/v1/companies/lookalikes — ranked similar companies (≤100, page[size]).contact_lookalikes(**params) -> Any — GET /copilot/v1/contacts/lookalikes — ranked contacts similar to a reference person.contact_recommendations(**params) -> Any — GET /copilot/v1/contacts/recommendations — ranked contacts at a target company for a sales motion. Requires filter[useCaseType] (e.g. PROSPECTING, DEAL_ACCELERATION) and filter[ziCompanyId].enrich_companies(payload: dict) -> Any — POST /data/v1/companies/enrich — type CompanyEnrich, attributes matchCompanyInput ≤25 (companyId|companyName|companyWebsite|…), outputFields, requiredFields.enrich_contacts(payload: dict) -> Any — POST /data/v1/contacts/enrich — type ContactEnrich, attributes matchPersonInput ≤25 (personId|emailAddress|phone|fullName|firstName+lastName+companyName|companyId|…), outputFields, requiredFields. 1 ZoomInfo credit per matched record; scope api:data:contact.enrich_corporate_hierarchy(payload: dict) -> Any — POST /data/v1/companies/corporate-hierarchy/enrich — type CorporateHierarchyEnrich; full corporate tree for the matched company.enrich_hashtags(payload: dict) -> Any — POST /data/v1/companies/hashtags/enrich — type HashtagEnrich; predefined categorical labels for the matched company.enrich_intent(payload: dict) -> Any — POST /data/v1/intent/enrich — type IntentEnrich; intent signals for a company.enrich_news(payload: dict) -> Any — POST /data/v1/news/enrich — type NewsEnrich; company identifier (companyId|companyName|companyWebsite) required. Charges per returned article.enrich_org_charts(payload: dict) -> Any — POST /data/v1/companies/org-chart/enrich — type OrgChartEnrich; a ZoomInfo company identifier + at least one ZoomInfo department identifier are required.enrich_scoops(payload: dict) -> Any — POST /data/v1/scoops/enrich — type ScoopEnrich; company identifier (companyId|companyName| companyWebsite) required. Charges per returned scoop.enrich_technologies(payload: dict) -> Any — POST /data/v1/companies/technologies/enrich — type TechnologyEnrich; technologies ZoomInfo has identified for the matched company.lookup(field_name: str, **filters) -> Any — GET /data/v1/lookup/{fieldName} — valid values for a search/enrich field (e.g. 'management-levels', 'company-rankings'); optional filter[category] for hashtag lookups.search_companies(payload: dict, *, page_number: int | None = None, page_size: int | None = None, sort: str | None = None) -> Any — POST /data/v1/companies/search — type CompanySearch, attributes are the filters (companyName, companyWebsite, industryCodes/Keywords, employeeRangeMin/Max, …).search_contacts(payload: dict, *, page_number: int | None = None, page_size: int | None = None, sort: str | None = None) -> Any — POST /data/v1/contacts/search — type ContactSearch, attributes are the filters (jobTitle, managementLevel, department, jobFunction, companyName, companyWebsite, state, country, industryKeywords, employeeRangeMin/Max, revenueMin/Max, …; valid values via lookup()). page[number]/page[size] (1-100, default 25) + sort are query params.search_intent(payload: dict, *, page_number: int | None = None, page_size: int | None = None) -> Any — POST /data/v1/intent/search — type IntentSearch; intent signals. Requires the Intent SKU.search_news(payload: dict, *, page_number: int | None = None, page_size: int | None = None) -> Any — POST /data/v1/news/search — type NewsSearch; at least one input required.search_scoops(payload: dict, *, page_number: int | None = None, page_size: int | None = None) -> Any — POST /data/v1/scoops/search — type ScoopSearch; real-time business intelligence signals.user_usage(**params) -> Any — GET /data/v1/users/usage — API usage/credits on the caller's own ZoomInfo account (ZoomInfo is BYOK-only). Free call.Yes. hyreflow is a connector for Claude, ChatGPT and other AI assistants. Once hyreflow is connected, you ask for the outcome in plain language and the assistant calls ZoomInfo for you. hyreflow exposes 19 ZoomInfo actions this way.
Yes. ZoomInfo runs on your own ZoomInfo account. You connect it to hyreflow once, hyreflow charges no credits for the calls, and ZoomInfo bills you as before.
ZoomInfo runs on your own ZoomInfo account: hyreflow charges no credits for it, and ZoomInfo bills you as before.
Add the hyreflow MCP server to your assistant and sign in. hyreflow calls the ZoomInfo API directly and exposes its actions as tools the assistant can run, so there is no separate ZoomInfo server to install.
Connect hyreflow to Claude or ChatGPT and ask for the outcome. It reads the playbook above before it makes a single call.