{"slug":"hubspot-j4a2bk","companyName":"HubSpot","domain":"hubspot.com","url":"https://hubspot.com","headline":"HubSpot publishes real prices and a developer platform, but robots.txt seals the actual signup form away from every automated buyer, human or agent.","compositeScore":60,"humanScore":80,"agentScore":40,"doorGap":40,"humanMeasured":1,"agentMeasured":6,"percentile":null,"humanPercentile":null,"agentPercentile":null,"isPartial":true,"depth":"deep","siteClass":"b2b_saas","scannerVersion":10,"scannedAt":"2026-09-03T21:39:25.225Z","unlocked":false,"mission":{"steps":[{"url":"https://www.hubspot.com","outcome":"ok","purpose":"reach the site at all"},{"url":"https://www.hubspot.com/robots.txt","outcome":"ok","purpose":"find out whether machines are welcome"},{"url":"https://www.hubspot.com","outcome":"ok","purpose":"ask whether the door opens for requests carrying the AI crawlers' names"},{"url":"https://www.hubspot.com/llms.txt","outcome":"ok","purpose":"read the site's own guide for language models"},{"url":"https://www.hubspot.com/sitemap.xml","outcome":"ok","purpose":"find out what pages exist"},{"url":"https://www.hubspot.com/.well-known/security.txt","outcome":"ok","purpose":"find a contact route for machines"},{"url":"https://www.hubspot.com","outcome":"missing","purpose":"find a published agent interface"},{"url":"https://www.hubspot.com/.well-known/ai-plugin.json","outcome":"missing","purpose":"find an agent plugin manifest"},{"url":"https://www.hubspot.com","outcome":"missing","purpose":"find out whether verified agents are recognised"},{"url":"https://www.hubspot.com","outcome":"ok","purpose":"read the homepage as data rather than as a page"},{"url":"https://www.hubspot.com","outcome":"missing","purpose":"find a machine readable API spec"},{"url":"https://www.hubspot.com","outcome":"ok","purpose":"read the developer documentation"},{"url":"https://www.hubspot.com/pricing/marketing?hubs_content=www.hubspot.com%2Fhomepg-c&hubs_content-cta=nav-pricing","outcome":"missing","purpose":"read the prices without running JavaScript"},{"url":"https://www.hubspot.com","outcome":"ok","purpose":"find a comparison page worth citing"},{"url":"https://www.hubspot.com","outcome":"missing","purpose":"walk the way a visitor would, to a signup form or a product"},{"url":"https://developers.hubspot.com/docs/api/overview","outcome":"ok","purpose":"check if API key can be self-issued without human approval"}],"verdict":"The agent got through 10 of 16 requests, but could not find a published agent interface. It came up empty on 5 other checks too. That is enough missing for a machine to give up before it reaches a purchase."},"observations":[{"url":"https://www.hubspot.com/pricing/marketing","step":1,"detail":"Headline \"Where go-to-market teams go to scale\". It's clearly a CRM/marketing suite for businesses but exact product and price aren't stated up front. Two competing CTAs: \"Get a demo\" and \"Get started free\". A chat widget pops up immediately offering help, adding a third path.","moment":"Landing page","verdict":"friction","screenshot":0},{"url":"https://www.hubspot.com/pricing/marketing","step":2,"detail":"Prices only render via JavaScript, nothing in raw HTML. Four tiers: Free $0, Starter $7/mo/seat, Professional $800/mo, Enterprise price further down. A chat bubble pushes \"chat with a sales agent\" over the self-serve figures. Big jump from $7 to $800 with no mid-tier.","moment":"Pricing page","verdict":"friction","screenshot":1},{"url":"https://www.hubspot.com/pricing/marketing","step":3,"detail":"Clicking \"Get started free\" opened a chatbot pushing \"Book a meeting\" or \"Chat with sales\" rather than a signup page. The actual form at app.hubspot.com/signup-hubspot/crm is disallowed by robots.txt for this scanner. An automated visitor cannot reach it.","moment":"Signup attempt from pricing page","verdict":"blocked","screenshot":2},{"url":"https://developers.hubspot.com/","step":4,"detail":"A separate developers.hubspot.com site exists with docs, API references, and a \"Create developer account\" button. This is a reasonable path for an agent integrator, but it is not linked from the main homepage nav, a visitor has to know to look for it. The main signup funnel and this developer funnel are disconnected.","moment":"Developer platform page","verdict":"friction","screenshot":3}],"dimensions":[{"key":"machine_discoverability","audience":"agent","score":89,"summary":"Robots.txt allows all named AI crawlers, a real browser gets the page normally, and a sitemap lists 1062 URLs with 9 schema.org types on the homepage.","evidence":{"locked":true,"count":4}},{"key":"programmatic_onboarding","audience":"agent","score":15,"summary":"The signup path at app.hubspot.com is disallowed by robots.txt for automated clients, and no API key can be issued without going through it. Developer docs show endpoint examples but no documented key issuance or self-serve flag.","evidence":{"locked":true,"count":4}},{"key":"pricing_legibility","audience":"agent","score":30,"summary":"16 prices from $0 to $3,600 render on the pricing page but only after JavaScript runs, with zero prices in raw HTML. A client that does not execute scripts, including many agents, sees no price at all.","evidence":{"locked":true,"count":1}},{"key":"agent_aware_instrumentation","audience":"agent","score":8,"summary":"No MCP manifest at any of 3 standard paths, no ai-plugin.json, and no OpenAPI spec at any of 6 standard paths checked. An agent has to hand-write a client from prose documentation.","evidence":{"locked":true,"count":4}},{"key":"machine_fetchable_trust","audience":"agent","score":85,"summary":"security.txt is published with a working contact route, and the homepage answers automated requests cleanly with structured Organization and Product data in JSON-LD.","evidence":{"locked":true,"count":2}},{"key":"commercial_rails","audience":"agent","score":10,"summary":"Prices do exist and render for a browser, but the checkout path an agent needs to turn a price into a paid account sits at app.hubspot.com, which robots.txt disallows outright for automated visitors, and no machine readable pricing file or.","evidence":{"locked":true,"count":4}},{"key":"steps_to_first_value","audience":"human","score":80,"summary":"The signup CTA is 2 clicks from the homepage, a short path by design, but robots.txt closes app.hubspot.com to automated visitors, so nothing past that click was actually read by the scan.","evidence":{"locked":true,"count":1}},{"key":"required_fields","audience":"human","score":null,"summary":"Could not verify: this scan did not reach the pages that would show it.","evidence":{"locked":true,"count":1}},{"key":"verification_walls","audience":"human","score":null,"summary":"Could not verify: this scan did not reach the pages that would show it.","evidence":{"locked":true,"count":1}},{"key":"error_recovery","audience":"human","score":null,"summary":"Could not verify: this scan did not reach the pages that would show it.","evidence":{"locked":true,"count":1}}],"issues":[{"rank":1,"title":"Pricing figures exist only after JavaScript executes, with nothing in the raw HTML response.","dimensionKey":"pricing_legibility","evidence":{"locked":true,"count":2},"fix":null},{"rank":2,"title":"No machine readable API specification or MCP manifest is published at any standard path.","dimensionKey":"agent_aware_instrumentation","evidence":{"locked":true,"count":3},"fix":null}],"fixArtifacts":{"locked":true,"count":5,"summaries":[{"id":"pricing_ssr_fallback:pricing-page","kind":"pricing_ssr_fallback","title":"Prices in the HTML, not only after JavaScript","path":"pricing page","effort":{"minutes":60,"role":"developer"},"outcome":{"dimension":"pricing_legibility","external":["A client that reads raw HTML sees the plans and prices."]}},{"id":"software_offer_jsonld:pricing-page","kind":"software_offer_jsonld","title":"Pricing as Offer structured data","path":"pricing page","effort":{"minutes":20,"role":"developer"},"outcome":{"dimension":"pricing_legibility","external":["Assistants comparing vendors read the plans and prices as Offer structured data."]}},{"id":"robots_search_bots:robots-txt","kind":"robots_search_bots","title":"robots.txt rules for AI crawlers","path":"/robots.txt","effort":{"minutes":10,"role":"owner"},"outcome":{"dimension":"machine_discoverability","external":["The assistants' search crawlers read and cite the site to buyers; training stays the owner's decision."]}},{"id":"interfaces_note:notes","kind":"interfaces_note","title":"Machine interfaces: where you stand","path":"notes","effort":{"minutes":10,"role":"owner"},"outcome":{"dimension":"agent_aware_instrumentation","external":["The developer surface is built in an order where every published pointer answers."]}},{"id":"pricing_md:pricing-md","kind":"pricing_md","title":"pricing.md","path":"/pricing.md","effort":{"minutes":20,"role":"owner"},"outcome":{"dimension":"agent_aware_instrumentation","external":["Agents read the price list directly instead of rendering the pricing page."]}}]},"feedback":{"endpoint":"/api/feedback","mcpTool":"rate_fix","targets":[{"type":"report","key":"report"},{"type":"dimension","dimensionKey":"machine_discoverability","key":"dimension:machine_discoverability"},{"type":"dimension","dimensionKey":"programmatic_onboarding","key":"dimension:programmatic_onboarding"},{"type":"dimension","dimensionKey":"pricing_legibility","key":"dimension:pricing_legibility"},{"type":"dimension","dimensionKey":"agent_aware_instrumentation","key":"dimension:agent_aware_instrumentation"},{"type":"dimension","dimensionKey":"machine_fetchable_trust","key":"dimension:machine_fetchable_trust"},{"type":"dimension","dimensionKey":"commercial_rails","key":"dimension:commercial_rails"},{"type":"dimension","dimensionKey":"steps_to_first_value","key":"dimension:steps_to_first_value"},{"type":"dimension","dimensionKey":"required_fields","key":"dimension:required_fields"},{"type":"dimension","dimensionKey":"verification_walls","key":"dimension:verification_walls"},{"type":"dimension","dimensionKey":"error_recovery","key":"dimension:error_recovery"},{"type":"issue","dimensionKey":"pricing_legibility","checkId":"pricing_nojs","key":"issue:pricing_legibility:pricing_nojs"},{"type":"issue","dimensionKey":"agent_aware_instrumentation","checkId":null,"key":"issue:agent_aware_instrumentation:-"}]}}