add_companies_to_list
ChatGPTAdd companies to an existing company list. Supports company URNs, IDs, or canonical identifiers (website URL, LinkedIn, Crunchbase, Pitchbook, etc.).
add_people_to_list
ChatGPTAdd people to an existing people list. Supports person URNs or canonical identifiers (LinkedIn URL, email). At least one of linkedin_url or email must be provided when using canonical identifiers.
create_company_list
ChatGPTCreate a new company list. Can optionally include companies using URNs, IDs, or canonical identifiers (website URL, LinkedIn, Crunchbase, Pitchbook, etc.). If companies are provided, they will be added to the list after creation. Returns a response with 'urn' field (e.g., 'urn:harmonic:company_watchlist:0f818bcf-...'). IMPORTANT: Use the full 'urn' value (not the 'id') to construct console links: https://console.harmonic.ai/dashboard/watchlist/{urn}
create_company_list_custom_field
ChatGPTCreate a custom field (column) for a company list. Custom fields allow you to add additional data points to companies in your list. Returns the created custom field with its URN, which you'll need when setting values on list entries.
create_global_custom_field
ChatGPTCreate a new global custom field for companies or people. Unlike list custom fields (columns on a specific list), global fields are properties on the company/person record itself, visible across all lists.
create_people_list
ChatGPTCreate a new people list. Can optionally include people using URNs or canonical identifiers (LinkedIn URL, email). If people are provided, they will be added to the list after creation. At least one of linkedin_url or email must be provided when using canonical identifiers. Returns a response with 'urn' field (e.g., 'urn:harmonic:people_watchlist:0f818bcf-...'). IMPORTANT: Use the full 'urn' value (not the 'id') to construct console links: https://console.harmonic.ai/dashboard/people_watchlist/{urn}
create_people_list_custom_field
ChatGPTCreate a custom field (column) for a people list. Custom fields allow you to add additional data points to people in your list. Returns the created custom field with its URN, which you'll need when setting values on list entries.
enrich_companies
ChatGPTGet detailed data for one or more companies by their identifiers (website URL, domain, LinkedIn, etc.). Accepts an array of company objects, each with at least one identifier. Use this for company lookups when you have specific identifiers. For company name searches, use typeahead_search with search_type=COMPANY first to get the URN. For multi-company searches with criteria, use search_companies_natural_language. REQUIRED: You must specify field_groups to control which fields are returned. Select only the smallest field group(s) needed for your question to avoid bloating the response and slowing down the request. Available field groups: 'name_id_description_headcount_website' (basic info), 'funding' (funding data), 'location' (location data), 'highlights' (company highlights), 'team_correspondence_and_connections' (team connections), 'notes_and_list_membership' (notes and lists), 'web_social_headcount_timeseries' (traction metrics), 'founders_and_execs' (founders and executives), 'founders_ceo' (founders and CEO only), 'synced_affinity_lists' (affinity lists), 'mergers_acquisitions_subsidiaries' (M&A data), 'competitor_research_fields' (competitor research), 'date_added_to_harmonic' (initialization date), 'contact' (contact info), 'all' (all fields - use sparingly).
enrich_people
ChatGPTEnrich one or more people by their LinkedIn URLs. Accepts an array of LinkedIn profile URLs. REQUIRED: You must specify field_groups to control which fields are returned. Select only the smallest field group(s) needed for your question to avoid bloating the response and slowing down the request. Available field groups: 'basic' (id, name, profile picture, headline), 'experience' (work experience with company details), 'education' (education history), 'location' (location data), 'socials' (social media links), 'all' (all fields - use sparingly).
entity_lookup
ChatGPTLook up a SINGLE company, person, or investor by a natural-language reference and return its canonical Harmonic record(s). Use for individual lookups: an exact name ('Anthropic', 'Max Ruderman'), a name plus descriptor ('John Smith at Stripe'), or a short description of one entity. Returns a best match plus a few alternatives when the reference is ambiguous, each with its Harmonic URN. DO NOT use for multi-entity criteria search (e.g. 'fintech companies in NY that raised Series B') — use a natural-language search tool for that. Resolves names, affiliations, descriptions, and typos.
get_companies
ChatGPTGet detailed data for one or more companies. Accepts Harmonic company IDs, URNs, or external identifiers (website URL, domain, LinkedIn, etc.). PREFERRED: When you already have a Harmonic ID or URN from a previous response, always use 'ids' or 'urns' — this is faster and guarantees the exact company. Use 'identifiers' only when you need to look up a company by its website, LinkedIn, etc. For company name searches, use typeahead_search with search_type=COMPANY first to get the URN. For multi-company searches with criteria, use search_companies_natural_language. REQUIRED: You must specify field_groups to control which fields are returned. Select only the smallest field group(s) needed for your question to avoid bloating the response and slowing down the request. Available field groups: 'name_id_description_headcount_website' (basic info), 'funding' (funding data), 'location' (location data), 'highlights' (company highlights), 'team_correspondence_and_connections' (team connections), 'notes_and_list_membership' (notes and lists), 'web_social_headcount_timeseries' (traction metrics), 'founders_and_execs' (founders and executives), 'founders_ceo' (founders and CEO only), 'synced_affinity_lists' (affinity lists), 'mergers_acquisitions_subsidiaries' (M&A data), 'competitor_research_fields' (competitor research), 'date_added_to_harmonic' (initialization date), 'contact' (contact info), 'external_profiles' (LinkedIn, Twitter, Crunchbase, Pitchbook URLs), 'founder_submissions' (founder-submitted data including fundraising status, founder story narrative, and file attachments like pitch decks), 'custom_fields' (the company's global custom field values; requires custom-field permission), 'all' (all fields - use sparingly). Limit of 50 companies per request. Note: If a company ID is -1, that means we don't yet have a canonical company record. Company profiles can be viewed in Harmonic console at: https://console.harmonic.ai/dashboard/company/<id or urn>
get_companies_by_id
ChatGPTGet companies by ID or URN using GraphQL. Pass in a list of company IDs or URNs. Use the 'fields' parameter to specify which fields to include for better performance. Limit of 50 companies per request. Note: If a company ID is -1, that means we don't yet have a canonical company record. The data in latest company snapshot might not match the current state for up to 14 days. Company profiles can be viewed in Harmonic console at: https://console.harmonic.ai/dashboard/company/<id or urn>
get_companies_user_connections
ChatGPTGet team network connections to multiple companies. Returns usersInNetwork (team members connected to company) and detailed userConnections including: targetPerson (person at company with full profile, LinkedIn, current role), connectionSources, latestEmail (title, timestamp, sender/receiver emails), and latestCalendarEvent (name, time, participants).
get_company_connections
ChatGPTGet network connections into one or more companies — the people your team knows at each company, and through whom. Pick a mode: • Whole team (default, no scoping param set): every team member's connections. E.g. 'who on the team knows someone at', 'team connections to'. • Just me (only_my_connections=true): only the caller's OWN connections, scoped server-side to the authenticated user — do not pass a URN. E.g. 'do I know anyone at', 'my connections to'. • A specific teammate (connected_to_user_urn=<their URN>): only that teammate's connections; resolve the name to a URN via get_team_members first. E.g. 'who does Tyler know at'. userConnections is grouped by connected person: one row per distinct target person (name, LinkedIn, current role) with a connectedVia list of the teammate(s) who know them and each one's connectionSources — enough to answer 'who do we know / who is connected'. Email-only connections to people not resolved in Harmonic are summarized as an unresolvedEmailConnections count per company. Use connection_fields to additively pull more ONLY when needed: 'contact' for the target person's emails (outreach), 'correspondence' for each teammate's latest email + calendar event (meeting prep, last touchpoint).
get_company_list_entries
ChatGPTGet company list entries. Pass the ID or URN of the list to get entries. Supports cursor pagination.
get_company_lists
ChatGPTGet all company lists that the requesting user has access to. Returns lists with 'entityUrn' (e.g., 'urn:harmonic:company_watchlist:0f818bcf-...'), name, and metadata. IMPORTANT: Use the full 'entityUrn' value (not 'id') to construct console links: https://console.harmonic.ai/dashboard/watchlist/{entityUrn}
get_investors
ChatGPTGet detailed investor data for one or more investors by URN or website URL. Accepts an array of investor identifier objects. Use URN if available (e.g., from typeahead_search with search_type=INVESTOR), otherwise use the investor's website URL. REQUIRED: You must specify field_groups to control which fields are returned. Select only the smallest field group(s) needed to avoid slow responses. Investor profiles can be viewed in Harmonic console at: https://console.harmonic.ai/dashboard/investor/<urn>
get_people
ChatGPTGet detailed data for one or more people. Accepts Harmonic person IDs, URNs, or LinkedIn profile URLs. PREFERRED: When you already have a Harmonic ID or URN from a previous response, always use 'ids' or 'urns' — this is faster and guarantees the exact person. Use 'linkedin_urls' only when you need to look up a person by their LinkedIn profile. REQUIRED: You must specify field_groups to control which fields are returned. Select only the smallest field group(s) needed for your question to avoid bloating the response and slowing down the request. Available field groups: 'basic' (id, name, profile picture, headline), 'experience' (work experience with company details), 'education' (education history), 'location' (location data), 'socials' (social media links), 'custom_fields' (the person's global custom field values; requires custom-field permission), 'all' (all fields - use sparingly). Limit of 50 people per request. Person profiles can be viewed in Harmonic console at: https://console.harmonic.ai/dashboard/person/<id or urn>
get_people_list_entries
ChatGPTGet people list entries. Pass the ID or URN of the list to get entries. Supports cursor pagination.
get_people_lists
ChatGPTGet all people lists that the requesting user has access to. Returns lists with 'entityUrn' (e.g., 'urn:harmonic:people_watchlist:0f818bcf-...'), name, and metadata. IMPORTANT: Use the full 'entityUrn' value (not 'id') to construct console links: https://console.harmonic.ai/dashboard/people_watchlist/{entityUrn}
get_people_user_connections
ChatGPTGet team network connections to multiple people. Returns each person's profile (name, LinkedIn, current role) and detailed userConnections including: which team member has the connection, connectionSources, latestEmail (title, timestamp, sender/receiver emails), and latestCalendarEvent (name, time, participants).
get_person_connections
ChatGPTGet network connections to one or more people by person ID. Returns all team members' connections by default. Pass a user URN in connected_to_user_urn to filter results to a single teammate's connections (either the caller themselves — e.g. 'my connections', 'do I know this person' — or a specific teammate, e.g. 'does Tyler know this person'). Leave connected_to_user_urn blank for general team-level queries (e.g. 'who on the team knows this person', 'team connections to'). Returns each person's profile (name, LinkedIn, current role) and userConnections. Each connection always includes the team member who has it and connectionSources — enough to answer 'do we know this person'. Add connection_fields=['correspondence'] to also include the latest email and calendar event, ONLY when the user needs correspondence/meeting context.
get_persons_by_id
ChatGPTGet persons by ID or URN using GraphQL. Pass in a list of person IDs. Use the 'fields' parameter to specify which fields to include for better performance. Limit of 50 people per request. Note: Currently only supports IDs (not URNs) via GraphQL. Person profiles can be viewed in Harmonic console at: https://console.harmonic.ai/dashboard/person/<id or urn>
get_saved_search_companies_net_new
ChatGPTGet net new company results for a subscribed saved search (cursor pagination). Requires the saved search to be subscribed in Harmonic console.
get_saved_search_companies_results
ChatGPTGet company saved search results with metadata (cursor pagination). Team API key can access only team-public saved searches. The saved search can be viewed in Harmonic console at: https://console.harmonic.ai/dashboard/companies/<urn>
get_saved_search_investors_net_new
ChatGPTGet net new investor results for a subscribed saved search (cursor pagination). Requires the saved search to be subscribed in Harmonic console.
get_saved_search_investors_results
ChatGPTGet investor saved search results with metadata (cursor pagination).
get_saved_search_people_net_new
ChatGPTGet net new people results for a subscribed saved search (cursor pagination). Requires the saved search to be subscribed in Harmonic console.
get_saved_search_people_results
ChatGPTGet people saved search results with metadata (cursor pagination). Team API key can access only team-public saved searches. The saved search can be viewed in Harmonic console at: https://console.harmonic.ai/dashboard/people/<urn>
get_team_members
ChatGPTGet all team members for the current customer account. Returns each team member's email, name, entityUrn, role (ADMIN, MEMBER), and status (ACTIVE, INVITED). Use this tool to find team member emails for PERSON-type custom fields on watchlists.
get_team_network_connection_count
ChatGPTGet the total number of network connections in the account's Team network. This uses the deterministic TEAM_CONNECTIONS singleton watchlist and returns its total_count as network_connection_count.
list_global_custom_fields
ChatGPTList all global custom fields for companies or people. Unlike list custom fields (columns on a specific list), global fields are properties on the company/person record itself, visible across all lists. Use this to discover available fields and their URNs before writing field values.
list_saved_searches
ChatGPTList all saved searches the user has access to. Returns saved searches with their query, type, name, creator, privacy status, and entity URN.
natural_language_search
ChatGPTNatural-language SEARCH tool for the Harmonic data warehouse. Use for search intents that return ranked lists of MULTIPLE entities matching a set of criteria (e.g. 'fintech companies in NY that raised Series B', 'AI startups with founders from OpenAI', 'investors active in robotics seed rounds'). DO NOT use to look up a single specific company, person, or investor by name or description — use entity_lookup for that. Typical latency 10-20s.
search_companies_natural_language
ChatGPTSearch for multiple companies matching criteria using natural language and return enriched company data. Use for queries with filters/criteria like 'fintech companies in NY that raised Series B in the last 6 months' or 'AI startups with founders from OpenAI'. DO NOT use for individual company lookups - use typeahead_search with search_type=COMPANY for company name/domain search, or enrich_company for detailed company data by website/domain. This tool returns enriched company information directly, so you don't need to make a separate call to get company details. REQUIRED: You must specify field_groups to control which fields are returned. Select only the smallest field group(s) needed for your question to avoid bloating the response and slowing down the request.
set_company_global_custom_fields
ChatGPTSet multiple global custom field values on a single company. Global fields are properties on the company record (not columns on a specific list). Use this when you need to update several fields at once on one company.
set_people_global_custom_fields
ChatGPTSet multiple global custom field values on a single person. Global fields are properties on the person record (not columns on a specific list). Use this when you need to update several fields at once on one person.
submit_data_report
ChatGPTSubmit a data issue report to Harmonic for a company or person. Use this to report incorrect, outdated, or missing data.
typeahead_search
ChatGPTFast typeahead search for companies, people, or investors by name. Use this for individual lookups when you have a name (e.g., 'Clay', 'Max Ruderman', 'Sequoia'). For companies and people, returns enriched data directly via GraphQL with configurable field_groups. For investors, returns limited fields (entityUrn, type, name, logo) - use get_investors for full enrichment. For multi-company searches with criteria, use search_companies_natural_language instead.
update_company_list
ChatGPTUpdate a company list's name or shared_with_team setting.
update_company_list_custom_field
ChatGPTUpdate a custom field's name or metadata on a company list. You can update the field name or modify metadata like select options. For SINGLE_SELECT/MULTI_SELECT/STATUS fields: the options array in selectMetadata fully replaces the existing list. To rename, recolor, or reorder options without wiping data, first fetch the current field and pass each existing option's urn back unchanged in your payload; omit urn only for brand-new options. Any option whose urn is missing from the payload is deleted, which NULLs that option's value on every entry in the list.
update_company_list_entries
ChatGPTUpdate custom field values on one or more companies in a company list. This tool uses an upsert operation - if the company exists in the list, its custom field values will be updated. If it doesn't exist, it will be added. Use this to set or update custom column values for companies already in a list. Field URNs (custom_field_urn) and option URNs (data.selectData.value, data.multiSelectData.value) must come from 'custom_field_definitions' returned by get_company_list_entries. Do not infer URNs from field names. Judge success by 'companies_found_count' (entries matched and written); 'total_companies_count' reflects only fully-enriched entries and LAGS the write, so a low value right after the upsert is expected.
update_global_custom_field
ChatGPTUpdate a global custom field's name or metadata (e.g., select options, number format). The field type cannot be changed after creation. For SINGLE_SELECT/MULTI_SELECT/STATUS fields: the options array in selectMetadata fully replaces the existing list. To rename, recolor, or reorder options without wiping data, first fetch the current field and pass each existing option's urn back unchanged in your payload; omit urn only for brand-new options. Any option whose urn is missing from the payload is deleted, which NULLs that option's value on every entity the field is set on.
update_people_list
ChatGPTUpdate a people list's name or shared_with_team setting.
update_people_list_custom_field
ChatGPTUpdate a custom field's name or metadata on a people list. You can update the field name or modify metadata like select options. For SINGLE_SELECT/MULTI_SELECT/STATUS fields: the options array in selectMetadata fully replaces the existing list. To rename, recolor, or reorder options without wiping data, first fetch the current field and pass each existing option's urn back unchanged in your payload; omit urn only for brand-new options. Any option whose urn is missing from the payload is deleted, which NULLs that option's value on every entry in the list.
update_people_list_entries
ChatGPTUpdate custom field values on one or more people in a people list. This tool uses an upsert operation - if the person exists in the list, their custom field values will be updated. If they don't exist, they will be added. Use this to set or update custom column values for people already in a list. Field URNs (custom_field_urn) and option URNs (data.selectData.value, data.multiSelectData.value) must come from 'custom_field_definitions' returned by get_people_list_entries. Do not infer URNs from field names. Judge success by 'people_found_count' (entries matched and written); 'total_people_count' reflects only fully-enriched entries and LAGS the write, so a low value right after the upsert is expected.
upsert_company_global_custom_field_values
ChatGPTSet a global custom field value on one or more companies. Global fields are properties on the company record (not columns on a specific list). Sets the same field and value across all specified companies. To set different values per company, call this multiple times.
upsert_people_global_custom_field_values
ChatGPTSet a global custom field value on one or more people. Global fields are properties on the person record (not columns on a specific list). Sets the same field and value across all specified people. To set different values per person, call this multiple times.
add_companies_to_list
Claudeadd_people_to_list
Claudecreate_company_list
Claudecreate_people_list
Claudeenrich_company
Claudeenrich_person
Claudeget_companies_by_id
Claudeget_company_list_entries
Claudeget_company_user_connections
Claudeget_investor_by_canonical
Claudeget_people_list_entries
Claudeget_persons_by_id
Claudeget_saved_search_companies_net_new
Claudeget_saved_search_companies_results
Claudeget_saved_search_investors_net_new
Claudeget_saved_search_investors_results
Claudeget_saved_search_people_net_new
Claudeget_saved_search_people_results
Claudelist_companies_in_team_network
Claudelist_people_in_team_network
Claudelist_saved_searches
Claudesearch_companies_natural_language
Claudetypeahead_company_name
Claude