Skip to main content
Glama

Company Footprint Check

company_footprint_check
Read-only

Check a company's public operating footprint for vendor risk assessment. Identify presence of ad tags, job boards, and Google Ads via this due diligence tool.

Instructions

Public operating footprint of a company for due diligence and vendor risk: ad and analytics tags, an active job board and Google Ads, each marked found, not_found or unknown. Facts only, no financial estimates. $0.03, charged only when two of the three checks return data. Use for found/not_found operating evidence; use get_company_profile for published contacts and breakout_summary growth signals, or b2b_vendor_stability_evaluator for a procurement assessment.

Input Schema

NameRequiredDescriptionDefault
domainYesPublic company domain without a URL scheme, path or port.
contextNoOptional. A few words on why you are calling this tool. Recorded without your identity to improve the tools; leave out personal data.

Output Schema

NameRequiredDescriptionDefault

No arguments

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed4 schema fields changedv1.0.0
    • addedInput schema / properties / context
      Added value: +{
      +  "description": "Optional. A few words on why you are calling this tool. Recorded without your identity to improve the tools; leave out personal data.",
      +  "type": "string"
      +}
    • addedOutput schema / anyOf
      Added value: +[
      +  {
      +    "properties": {
      +      "breakout_summary": {
      +        "description": "get_company_profile only. Growth estimate from public signals (hiring, Google Ads, site maturity); not investment advice.",
      +        "properties": {
      +          "method": {
      +            "type": "string"
      +          },
      +          "reasons": {
      +            "items": {
      +              "type": "string"
      +            },
      +            "type": "array"
      +          },
      +          "score": {
      +            "maximum": 100,
      +            "minimum": 0,
      +            "type": [
      +              "integer",
      +              "null"
      +            ]
      +          },
      +          "signal": {
      +            "enum": [
      +              "strong",
      +              "moderate",
      +              "weak",
      +              "none",
      +              "insufficient_data"
      +            ],
      +            "type": "string"
      +          }
      +        },
      +        "type": "object"
      +      },
      +      "checked_at": {
      +        "format": "date-time",
      +        "type": "string"
      +      },
      +      "contacts": {
      +        "description": "get_company_profile only. Same fields as extract_company_contacts.",
      +        "type": [
      +          "object",
      +          "null"
      +        ]
      +      },
      +      "domain": {
      +        "type": "string"
      +      },
      +      "footprint": {
      +        "description": "found, not_found or unknown for each public signal.",
      +        "properties": {
      +          "google_ads": {
      +            "type": "string"
      +          },
      +          "job_board_with_open_roles": {
      +            "type": "string"
      +          },
      +          "website_ad_or_analytics_tags": {
      +            "type": "string"
      +          }
      +        },
      +        "type": "object"
      +      },
      +      "google_ads": {
      +        "description": "Same fields as get_google_ads_by_domain.",
      +        "type": [
      +          "object",
      +          "null"
      +        ]
      +      },
      +      "hiring_intent": {
      +        "description": "Same fields as get_company_hiring_intent.",
      +        "type": [
      +          "object",
      +          "null"
      +        ]
      +      },
      +      "note": {
      +        "type": [
      +          "string",
      +          "null"
      +        ]
      +      },
      +      "sections_status": {
      +        "additionalProperties": {
      +          "type": "string"
      +        },
      +        "type": "object"
      +      },
      +      "sections_with_data": {
      +        "items": {
      +          "type": "string"
      +        },
      +        "type": "array"
      +      },
      +      "signals": {
      +        "items": {
      +          "type": "string"
      +        },
      +        "type": "array"
      +      },
      +      "status": {
      +        "description": "Only ok is charged: at least two sections have data (of four for get_company_profile, three for company_footprint_check).",
      +        "enum": [
      +          "ok",
      +          "insufficient_data"
      +        ],
      +        "type": "string"
      +      },
      +      "tech_stack": {
      +        "description": "Same fields as detect_website_tech_stack.",
      +        "type": [
      +          "object",
      +          "null"
      +        ]
      +      }
      +    },
      +    "required": [
      +      "domain",
      +      "status",
      +      "sections_status",
      +      "checked_at"
      +    ],
      +    "type": "object"
      +  },
      +  {
      +    "additionalProperties": true,
      +    "properties": {
      +      "code": {
      +        "minLength": 1,
      +        "type": "string"
      +      },
      +      "status": {
      +        "maximum": 599,
      +        "minimum": 400,
      +        "type": "integer"
      +      }
      +    },
      +    "required": [
      +      "status",
      +      "code"
      +    ],
      +    "type": "object"
      +  }
      +]
    • removedOutput schema / properties
      Removed value: -{
      -  "checked_at": {
      -    "format": "date-time",
      -    "type": "string"
      -  },
      -  "domain": {
      -    "type": "string"
      -  },
      -  "footprint": {
      -    "description": "found, not_found or unknown for each public signal.",
      -    "properties": {
      -      "google_ads": {
      -        "type": "string"
      -      },
      -      "job_board_with_open_roles": {
      -        "type": "string"
      -      },
      -      "website_ad_or_analytics_tags": {
      -        "type": "string"
      -      }
      -    },
      -    "type": "object"
      -  },
      -  "google_ads": {
      -    "description": "Same fields as get_google_ads_by_domain.",
      -    "type": [
      -      "object",
      -      "null"
      -    ]
      -  },
      -  "hiring_intent": {
      -    "description": "Same fields as get_company_hiring_intent.",
      -    "type": [
      -      "object",
      -      "null"
      -    ]
      -  },
      -  "note": {
      -    "type": [
      -      "string",
      -      "null"
      -    ]
      -  },
      -  "sections_status": {
      -    "additionalProperties": {
      -      "type": "string"
      -    },
      -    "type": "object"
      -  },
      -  "sections_with_data": {
      -    "items": {
      -      "type": "string"
      -    },
      -    "type": "array"
      -  },
      -  "signals": {
      -    "items": {
      -      "type": "string"
      -    },
      -    "type": "array"
      -  },
      -  "status": {
      -    "description": "Only ok is charged: at least two of the three sections have data.",
      -    "enum": [
      -      "ok",
      -      "insufficient_data"
      -    ],
      -    "type": "string"
      -  },
      -  "tech_stack": {
      -    "description": "Same fields as detect_website_tech_stack.",
      -    "type": [
      -      "object",
      -      "null"
      -    ]
      -  }
      -}
    • removedOutput schema / required
      Removed value: -[
      -  "domain",
      -  "status",
      -  "sections_status",
      -  "checked_at"
      -]
  2. First observedv0.1.0

TDQS

A4.4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations only declare readOnlyHint and openWorldHint; the description adds the material behavioral facts not covered there: the $0.03 cost, that billing only triggers when two of three checks return data, that results are marked found/not_found/unknown, and a scope limit ("Facts only, no financial estimates"). It does not discuss latency or rate limits, so not a 5.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three tight sentences: capability and output encoding first, scope limit second, sibling routing last. Every clause carries information an agent needs; nothing is redundant with structured fields.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Output schema exists so return values needn't be re-explained, and the description still notes the three result states. Cost, billing trigger, scope limits, and alternatives are all covered. Only missing element is what happens when checks are "unknown" / partial-failure reporting detail.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% and both parameters are documented in the schema, including the domain format constraint and the purpose of the optional context field. The description adds no syntax or format detail beyond what the schema already provides, so the baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific resource ("public operating footprint of a company") and enumerates exactly what is checked: ad/analytics tags, active job board, Google Ads. An agent can immediately tell it apart from get_company_profile or get_company_open_jobs, which cover narrower slices.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly names the use case ("Use for found/not_found operating evidence") and routes to two named alternatives with the condition that selects each: get_company_profile for contacts/growth signals, b2b_vendor_stability_evaluator for procurement assessment. Nothing is left to inference.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.