# HubSpot: 39 point Door Gap
- Site: hubspot.com
- Scanned: 2026-09-03
- Scan type: Deep scan
- Business type: b2b_saas
- Report: https://www.seconddoor.io/r/hubspot-cb4mrt
- Scanner version: 10
HubSpot publishes prices and docs to search engines but routes every actual signup and checkout through app.hubspot.com, a host robots.txt closes entirely to automated visitors.
## Scores
| Measure | Score |
| --- | --- |
| Humans | 80/100 |
| Agents | 41/100 |
| Composite | 61/100 |
| Door Gap | 39 points |
The human score is the mean of the four human dimensions, the agent score the mean of the six agent dimensions, and the Door Gap the difference between them.
## What the machine actually did
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.
- ok      reach the site at all
- ok      find out whether machines are welcome
- ok      ask whether the door opens for requests carrying the AI crawlers' names
- ok      read the site's own guide for language models
- ok      find out what pages exist
- ok      find a contact route for machines
- missing find a published agent interface
- missing find an agent plugin manifest
- missing find out whether verified agents are recognised
- ok      read the homepage as data rather than as a page
- missing find a machine readable API spec
- ok      read the developer documentation
- missing read the prices without running JavaScript
- ok      find a comparison page worth citing
- missing walk the way a visitor would, to a signup form or a product
- ok      check if API key/app creation is self-serve
## What a visitor meets
1. **Landing page** (friction). Headline is vague: "Where go-to-market teams go to scale." Not immediately clear this is CRM/marketing/sales software. Two competing CTAs shown: "Get a demo" and "Get started free", plus a chat popup appears unprompted.
2. **Pricing page** (friction). Prices only appear after JavaScript runs: Free $0, Starter $7/seat, Professional $800/mo, Enterprise $3,000+/mo. Raw HTML has zero prices. Tiers are per seat with extra "core seat" costs shown further down the page.
3. **Attempting self-serve signup** (blocked). "Get started free" leads to app.hubspot.com/signup-hubspot/crm, disallowed for automated visitors by robots.txt (Disallow: /). An agent honouring robots.txt cannot reach the signup form a human sees. Chat widget instead pushes "Chat with sales" or "Book a meeting".
## Top issues
1. **Pricing figures exist only after JavaScript executes, with zero prices present in the raw HTML.** (pricing_legibility)
2. **The signup and checkout flow routes to app.hubspot.com, a host that robots.txt disallows entirely.** (programmatic_onboarding)
The evidence and the recommended fix for each are on the report page: https://www.seconddoor.io/r/hubspot-cb4mrt
## Files generated from this scan
- **Prices in the HTML, not only after JavaScript** at `pricing page`, 1 hour, developer. Verify: The next scan reads the prices in the raw HTML of the pricing page, with none needing JavaScript to appear.
- **Pricing as Offer structured data** at `pricing page`, 20 minutes, developer. Verify: The next scan reads Offer structured data with a price and currency on the pricing page, and the pricing check credits it.
- **robots.txt rules for AI crawlers** at `/robots.txt`, 10 minutes, no developer needed. Verify: The next scan reads robots.txt and finds every search and agent crawler allowed, none of them kept off product or pricing paths.
- **Machine interfaces: where you stand** at `notes`, 10 minutes, no developer needed. Verify: The next scan finds the interface you published answering at its well-known path, and that check passes.
- **pricing.md** at `/pricing.md`, 20 minutes, no developer needed. Verify: The next scan fetches /pricing.md as text and records pricing as machine readable.
Each file is written from what this scan found on the site. The content is in the JSON once the evidence is opened: https://www.seconddoor.io/api/reports/hubspot-cb4mrt
## The agent door
- **machine_discoverability** 89/100. No AI crawler is blocked, a real browser gets the page normally, llms.txt is published with 293 lines, sitemap lists 1144 URLs and 9 schema.org types sit on the homepage. Strong surface discoverability.
- **programmatic_onboarding** 26/100. The only signup path found leads to app.hubspot.com/signup-hubspot/crm, which robots.txt disallows entirely (Disallow: /). No OpenAPI spec exists and docs show endpoint examples but no documented self-serve key issuance.
- **pricing_legibility** 30/100. 16 prices render after JavaScript (Free $0 to Enterprise $3,000+/mo) but the raw HTML pricing page has zero prices. A client that does not execute JS sees no cost information at all.
- **agent_aware_instrumentation** 8/100. No MCP manifest.
- **machine_fetchable_trust** 85/100. security.txt is published with a working contact route and the homepage answers automated requests cleanly, giving a machine reader a verifiable trust anchor.
- **commercial_rails** 10/100. Prices exist only after JavaScript renders, and the actual purchase and signup flow sits behind app.hubspot.com, which robots.txt closes with Disallow: /. No pricing.md or machine-readable rail exists for an agent to transact.
## The human door
- **steps_to_first_value** 80/100. The 'Get started free' CTA sits 2 clicks from the homepage for a human, but the destination form lives on a host robots.txt disallows entirely, so no automated walk could confirm what happens past that click.
- **required_fields** null/100. Could not verify: this scan did not reach the pages that would show it.
- **verification_walls** null/100. Could not verify: this scan did not reach the pages that would show it.
- **error_recovery** null/100. Could not verify: this scan did not reach the pages that would show it.
---
Scored by SecondDoor. Method: https://www.seconddoor.io/methodology
Scan another site: https://www.seconddoor.io
Rate an issue or this report: POST https://www.seconddoor.io/api/feedback, or the rate_fix tool on https://www.seconddoor.io/api/mcp
