Skip to main content
Glama

HirePulse

detect_website_tech_stack

Read-only

Tech stack lookup API for any company website: detects ad pixels, analytics, marketing tools, CMS, e-commerce platform, hosting and payment providers (Meta, Google Ads, LinkedIn and TikTok pixels, GA4, Google Tag Manager and more), plus email provider, DMARC and SPF senders from DNS. Use before qualifying or writing to a company. Fast: reads the home page HTML, headers, cookies and up to two public Google Tag Manager containers, without a headless browser. 5 free calls per day per IP, then $0.005 USDC per result via x402 on Base. Blocked, unreachable or empty sites (no_signals) are never charged.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
domainYesPublic domain without a URL scheme, path or port.

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
cmsYes
noteYes
addedYes
titleYes
domainYes
statusYesOnly ok is charged. no_signals: the page loaded but no technology was detected.
has_ga4Yes
has_gtmYes
removedYes
paymentsYes
ad_pixelsYes
analyticsYes
ecommerceYes
final_urlYes
checked_atYes
frameworksYes
next_stepsNoSuggested follow-up calls on the same domain, with the exact body. Optional to use.
hosting_cdnYes
spf_sendersYes
dmarc_policyYes
is_first_runYes
email_providerYes
has_meta_pixelYes
marketing_toolsYes
has_tiktok_pixelYes
technology_countYes
verified_servicesYes
has_google_ads_tagYes
has_linkedin_insightYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changed
    • changedOutput schema / (root)
      Previous value: -nullNew value: +{
      +  "additionalProperties": false,
      +  "properties": {
      +    "ad_pixels": {
      +      "items": {
      +        "type": "string"
      +      },
      +      "type": "array"
      +    },
      +    "added": {
      +      "items": {
      +        "type": "string"
      +      },
      +      "type": [
      +        "array",
      +        "null"
      +      ]
      +    },
      +    "analytics": {
      +      "items": {
      +        "type": "string"
      +      },
      +      "type": "array"
      +    },
      +    "checked_at": {
      +      "format": "date-time",
      +      "type": "string"
      +    },
      +    "cms": {
      +      "type": [
      +        "string",
      +        "null"
      +      ]
      +    },
      +    "dmarc_policy": {
      +      "type": [
      +        "string",
      +        "null"
      +      ]
      +    },
      +    "domain": {
      +      "type": "string"
      +    },
      +    "ecommerce": {
      +      "type": [
      +        "string",
      +        "null"
      +      ]
      +    },
      +    "email_provider": {
      +      "type": [
      +        "string",
      +        "null"
      +      ]
      +    },
      +    "final_url": {
      +      "type": [
      +        "string",
      +        "null"
      +      ]
      +    },
      +    "frameworks": {
      +      "items": {
      +        "type": "string"
      +      },
      +      "type": "array"
      +    },
      +    "has_ga4": {
      +      "type": [
      +        "boolean",
      +        "null"
      +      ]
      +    },
      +    "has_google_ads_tag": {
      +      "type": [
      +        "boolean",
      +        "null"
      +      ]
      +    },
      +    "has_gtm": {
      +      "type": [
      +        "boolean",
      +        "null"
      +      ]
      +    },
      +    "has_linkedin_insight": {
      +      "type": [
      +        "boolean",
      +        "null"
      +      ]
      +    },
      +    "has_meta_pixel": {
      +      "type": [
      +        "boolean",
      +        "null"
      +      ]
      +    },
      +    "has_tiktok_pixel": {
      +      "type": [
      +        "boolean",
      +        "null"
      +      ]
      +    },
      +    "hosting_cdn": {
      +      "items": {
      +        "type": "string"
      +      },
      +      "type": "array"
      +    },
      +    "is_first_run": {
      +      "type": [
      +        "boolean",
      +        "null"
      +      ]
      +    },
      +    "marketing_tools": {
      +      "items": {
      +        "type": "string"
      +      },
      +      "type": "array"
      +    },
      +    "next_steps": {
      +      "description": "Suggested follow-up calls on the same domain, with the exact body. Optional to use.",
      +      "items": {
      +        "properties": {
      +          "body": {
      +            "type": "object"
      +          },
      +          "mcp_tool": {
      +            "type": "string"
      +          },
      +          "price_usd": {
      +            "type": "number"
      +          },
      +          "tool": {
      +            "type": "string"
      +          },
      +          "url": {
      +            "type": "string"
      +          },
      +          "why": {
      +            "type": "string"
      +          }
      +        },
      +        "type": "object"
      +      },
      +      "type": "array"
      +    },
      +    "note": {
      +      "type": [
      +        "string",
      +        "null"
      +      ]
      +    },
      +    "payments": {
      +      "items": {
      +        "type": "string"
      +      },
      +      "type": "array"
      +    },
      +    "removed": {
      +      "items": {
      +        "type": "string"
      +      },
      +      "type": [
      +        "array",
      +        "null"
      +      ]
      +    },
      +    "spf_senders": {
      +      "items": {
      +        "type": "string"
      +      },
      +      "type": "array"
      +    },
      +    "status": {
      +      "description": "Only ok is charged. no_signals: the page loaded but no technology was detected.",
      +      "enum": [
      +        "ok",
      +        "no_signals",
      +        "blocked",
      +        "unreachable",
      +        "not_found"
      +      ],
      +      "type": "string"
      +    },
      +    "technology_count": {
      +      "minimum": 0,
      +      "type": "integer"
      +    },
      +    "title": {
      +      "type": [
      +        "string",
      +        "null"
      +      ]
      +    },
      +    "verified_services": {
      +      "items": {
      +        "type": "string"
      +      },
      +      "type": "array"
      +    }
      +  },
      +  "required": [
      +    "domain",
      +    "status",
      +    "final_url",
      +    "title",
      +    "cms",
      +    "ecommerce",
      +    "email_provider",
      +    "dmarc_policy",
      +    "note",
      +    "technology_count",
      +    "checked_at",
      +    "added",
      +    "removed",
      +    "is_first_run",
      +    "has_meta_pixel",
      +    "has_google_ads_tag",
      +    "has_ga4",
      +    "has_gtm",
      +    "has_linkedin_insight",
      +    "has_tiktok_pixel",
      +    "ad_pixels",
      +    "analytics",
      +    "marketing_tools",
      +    "hosting_cdn",
      +    "frameworks",
      +    "payments",
      +    "spf_senders",
      +    "verified_services"
      +  ],
      +  "type": "object"
      +}
  2. First observed

TDQS

A4.4/5.0
Behavior5/5

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

Beyond the readOnly/openWorld annotations, it discloses the exact data sources (home page HTML, headers, cookies, up to two public GTM containers), the method constraint (no headless browser), pricing and quota (5 free calls/day per IP, then $0.005 USDC via x402 on Base), and the billing edge case that no_signals results are never charged. This is unusually rich behavioral disclosure.

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

Conciseness4/5

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

Front-loaded with the capability, then method, then cost. Every sentence carries information, though the long parenthetical enumeration of vendor names is denser than strictly necessary.

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

Completeness5/5

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

An output schema exists, so return values need no explanation. Given that, the description covers scope of detection, method, latency expectation, quota, cost model, and the no-charge failure case — everything an agent needs to decide and safely invoke.

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?

Only one parameter and schema description coverage is 100%; the schema already states "public domain without a URL scheme, path or port." The description adds no format or syntax detail beyond that, 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 verb and resource (detect a company website's tech stack) and enumerates exactly what is detected: ad pixels, analytics, CMS, e-commerce, hosting, payment providers, email, DMARC/SPF. This clearly separates it from siblings like extract_company_contacts or verify_domain_legitimacy_and_security.

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

Usage Guidelines4/5

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

"Use before qualifying or writing to a company" gives concrete workflow placement, which is real guidance absent from most siblings. It does not, however, name an alternative or state when this tool should NOT be used (e.g., overlap with verify_domain_legitimacy_and_security or get_google_ads_by_domain).

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

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources