Skip to main content

Company Operating Signals

Retrieve operating signals derived from media mentions and GenAI maturity signals for a company.

Overview

company_operating_signals returns two stable field groups:

  • mentions: six mentions-derived GTM attributes
    • work_model
    • cloud_posture
    • esg_commitment
    • iot_posture
    • network_modernization
    • automation_stage
  • genai_maturity: four derived GenAI GTM attributes
    • ai_trajectory
    • cloud_depth
    • genai_readiness
    • intent_adoption_gap

Each group includes data_available and no_data_reason. Mention attributes include stage, intensity, last_verified_at, and signals. GenAI attributes include stage, intensity, and signals.

Understanding the values

A response contains numbers on two different scales and stage labels that are not self-explanatory. This section explains how to read them.

The two intensity scales

intensity appears in two places and means two different things:

WhereScaleWhat it is
genai_maturity.*.intensity (ai_trajectory, cloud_depth, genai_readiness, intent_adoption_gap)0–100 index (normal range)A Phoenix-computed score that rolls several raw inputs into one comparable number.
genai_maturity.*.signals.*_intensity (e.g. aws_intensity)UnboundedRaw HG detection volume, passed straight through.
mentions.*.intensity and mentions.*.signals.*UnboundedSummed detection volume across every product contributing to that attribute.

These scales are not comparable. In this response, the top-level 100 is a bounded index while aws_intensity: 4921 is a detection count:

"cloud_depth": {
"stage": "cloud-native",
"intensity": 100,
"signals": { "gcp_intensity": 20, "aws_intensity": 4921, "azure_intensity": 3937 }
}

Unbounded values routinely run into the thousands or tens of thousands — a real work_model response returns intensity: 4411, over forty times the 0–100 index ceiling. They are counts of detections, not percentages, rankings, or dollar amounts.

The 0–100 index saturates

cloud_depth.intensity is derived from the combined total of the three provider intensities and is capped at 100. Once that combined total reaches roughly 500, the index reads 100 no matter how much higher it goes. The cloud-native stage likewise covers every combined total of 100 or more.

Working through the example above: 20 + 4921 + 3937 = 8878, far past both cutoffs, so the response reads cloud-native / 100.

The practical consequence: two accounts with very different real footprints can return identical stage and intensity. A company with a combined total of 600 and one with 8,878 both read cloud-native / 100. When you need to tell saturated accounts apart, read the per-provider signals — that is the only place the difference survives.

Note also that cloud_depth classifies on the combined total, not per provider. In the example, GCP is only 20, well under any threshold, yet the account still reads cloud-native on the strength of AWS and Azure.

Comparing cloud providers

Per-provider intensities are designed for within-company comparison — which provider a given account leans on. Reading the example: this account favors AWS (4921), with Azure close behind (3937), and GCP negligible (20).

Do not compare one company's aws_intensity against another's. The value scales with company size and how long its footprint has been observed, so a large long-tenured account will out-score a smaller one that is more committed to AWS in relative terms. Cross-company comparisons need a normalized measure, not these raw counts.

A high intensity can be stale

Unbounded intensity is a lifetime sum that does not decay. A company that ran heavily on a technology for years and stopped months ago still carries a high value.

Before treating a high number as evidence of current-state behavior:

  • Check last_verified_at on mention attributes — it gives the most recent verification date across contributing signals.
  • Or check momentum via company_install_time_series, whose intensity_momentum is negative for declining usage.

Missing data is not confirmed absence

When HG has no coverage for a signal, it is treated as 0 rather than reported as unknown. The response therefore shows the lowest stage label instead of null — a company with no GenAI coverage at all still returns ai-dormant, no-cloud, genai-inactive, and disengaged.

Those labels read like "we confirmed this company has no AI presence," but they can equally mean "we have no data on this company."

Always check data_available and no_data_reason on each group before acting on a low stage. This matters most when the conclusion is going to a customer: telling a prospect they have zero AI presence, when the truth is that HG has no coverage for them, is the failure this field exists to prevent.

GenAI maturity stage values

cloud_depth — depth of cloud infrastructure investment, classified on the combined total of the GCP, AWS, and Azure intensities:

StageCombined total
cloud-native100 or more
cloud-heavy30–99
cloud-moderate10–29
cloud-lightAbove 0, under 10
no-cloud0

ai_trajectory — a two-axis label, not a ranking: it crosses a maturity tier with 6-month momentum. ai-adopter-growing means mid maturity and rising — it is not simply "better than ai-beginner-growing."

Momentum is read from the 6-month change in the maturity score: accelerating is a change above 0.5, growing is above 0, and flat or declining is 0 or negative.

Maturity tierAccelerating (> 0.5)Growing (> 0)Flat or declining (≤ 0)
Leader (score ≥ 6)ai-leader-acceleratingai-leader-growingai-leader-plateau
Adopter (score ≥ 3)ai-adopter-acceleratingai-adopter-growingai-adopter-plateau
Beginner (score > 0)ai-beginner-growingai-beginner-stalled
Dormant (score 0)ai-dormantai-dormantai-dormant

A leader that has stopped moving reads ai-leader-plateau; a beginner gaining ground reads ai-beginner-growing. Which of those is the better prospect depends on what you are selling.

genai_readiness — preparedness to adopt or expand GenAI, combining whether an AI product is installed, GenAI buying intent, and data maturity:

StageMeaning
genai-readyAI product installed, solid data maturity, and strong buying intent — the most prepared state.
genai-interestedAI product installed with strong intent, but data maturity is not yet there.
genai-exploringAI product installed with moderate intent.
genai-awareAI product installed, but little or no intent signal.
genai-curiousModerate intent, no AI product installed yet.
genai-inactiveNeither an installed AI product nor meaningful intent.

intent_adoption_gap — the gap between GenAI interest and actual adoption. Two poles are the most directly actionable:

StageMeaning
ai-championStrong intent, product installed, high maturity — already committed.
active-explorerStrong intent and a product installed, at lower maturity.
intent-no-actionStrong intent but no AI product installed — an open buying window.
moderate-adopterModerate intent with a product installed.
warming-upModerate intent, nothing installed yet.
quiet-userA product is installed but there is no intent signal — the inverse case: already using, not actively shopping.
disengagedNeither intent nor installed product.

Mentions stage values

The six mentions attributes are classified by precedence — the first matching rule wins, so a company meeting several conditions gets the highest-priority label only.

Two cautions:

  • The same label means different things across attributes. hybrid under work_model is a remote-work posture; hybrid under cloud_posture is a cloud topology. Read labels in the context of their attribute.
  • signals is keyed by contributing product name, not by a fixed field set — e.g. {"Private Cloud": 1568, "Edge Computing": 1650}. Which keys appear depends on what was detected, so treat the object as open-ended.
AttributeStage valuesAssignment (first match wins)
work_modelremote-heavy / hybrid / remote-lite / no-signal"Remote Work" intensity ≥ 100 / 10–99 / 1–9 / no signal
cloud_posturemulti-cloud / public-first / private-first / hybrid / edge-only / no-signalPublic + Private + Hybrid all present / Public without Private / Private without Public / Hybrid present / only Edge, VPC or Distributed / none
esg_commitmentcommitted / active / aware / carbon-focused / no-signalESG + Carbon Accounting / ESG intensity ≥ 10 / ESG present under 10 / Carbon Accounting only / none
iot_postureadvanced-industrial / simulation-driven / connected-edge / warehouse-automation / autonomous-mobility / consumer-iot / iot-basic / no-signalIoT + Edge + warehouse / Digital Twin + (IoT or Edge) / IoT + Edge / any warehouse or AGV signal / Autonomous Vehicle / Smart Home / IoT alone / none
network_modernizationnext-gen / software-defined / 5g-transitioning / cloud-native-networking / microservices-oriented / traditional / no-signal(SDN or NFV) + 5G / SDN or NFV / 5G / Microservices + Edge / Microservices alone / Ethernet, Routing, MPLS or NAT only / none
automation_stageautonomous / intelligent / rule-based / physical / ai-exploring / no-signalAgentic AI / RPA + (AI or ML) / RPA alone / IoT or warehouse without RPA and without AI / AI or ML without RPA / none

One subtlety on automation_stage: only three anchor signals — Agentic AI, Artificial Intelligence, and Machine Learning — move the stage. Other detected AI products contribute to intensity and appear in signals but never change the label on their own. So an account can list many AI products in signals and still sit at a modest stage; this keeps the labels stable as the AI product taxonomy grows.

Parameters

NameTypeRequiredDefaultDescription
companyDomainstring⚠️ Either this or hg_id-Company domain to look up (no protocol).
hg_idstring⚠️ Either this or companyDomain-HG Insights company ID (31-32 alphanumeric characters). When provided, it takes precedence over companyDomain. Subsidiary lookups via hg_id may still resolve to parent-level operating signals because HG's v2 organizations endpoint is domain-keyed — see issue #1138.

Required Integrations

  • hginsights_v2

Response Notes

  • Response shape is stable: mentions and genai_maturity groups are always present.
  • data_available indicates whether each group has coverage.
  • no_data_reason explains empty coverage states per group.
  • Credits are returned in metadata (creditsConsumed) with mentions, genai_maturity, and total.

Example Usage

{
"tool": "company_operating_signals",
"parameters": {
"companyDomain": "cisco.com"
}
}
  • company_ai_maturity - The same underlying AI and cloud signals without derived stage labels. It returns the cloud intensities nested as cloud_intensity: { aws, azure, gcp }, where this tool returns them flat as aws_intensity, azure_intensity, and gcp_intensity.
  • company_install_time_series - Monthly usage trends; use its intensity_momentum to check whether a high intensity here is current or stale.
  • company_firmographic - Core company profile data (industry, size, revenue, location)