# HubSpot: 40 point Door Gap
- Site: hubspot.com
- Scanned: 2026-09-07
- Scan type: Deep scan
- Business type: b2b_saas
- Report: https://www.seconddoor.io/r/hubspot-rc6r2j
- Scanner version: 10
HubSpot publishes real prices and clean structured data for crawlers, but the actual signup and purchase flow sits on app.hubspot.com behind a blanket robots.txt disallow, so agents can read about.
## Scores
| Measure | Score |
| --- | --- |
| Humans | 80/100 |
| Agents | 40/100 |
| Composite | 60/100 |
| Door Gap | 40 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 without human
## What a visitor meets
1. **Landing page** (friction). Headline "Where go-to-market teams go to scale" is vague marketing copy. Subtext clarifies: unite marketing, sales, service on one platform. Two CTAs: Get a demo and Get started free. A chat widget pops up immediately. Product is a CRM/marketing suite with many sub-hubs, takes scanning to understand full scope.
2. **Pricing page for Marketing Hub** (friction). Prices only render via JavaScript, nothing in raw HTML. Tiers: Free $0/mo, Starter $7/mo per seat, Professional $800/mo (discounted from $890). A chat bubble nudges toward a sales agent to choose a plan, pulling a self-serve buyer toward a human conversation.
3. **Attempting to reach the actual signup form** (blocked). Both "Get started free" on the homepage and direct navigation to app.hubspot.com/signup-hubspot/crm are blocked by robots.txt, which disallows all paths there. A compliant automated visitor cannot reach the free signup form, only marketing and pricing pages. This is a hard stop, not just friction.
4. **Developer platform page** (friction). A separate developers.hubspot.com site has docs, changelog, and a "Create developer account" button. Reasonable entry for an API-focused evaluator, but the button likely routes back through the same app.hubspot.com signup flow blocked by robots.txt, so docs are browsable but key issuance likely hits the same wall.
## Top issues
1. **Pricing on the Marketing Hub page renders only after JavaScript executes, with zero prices in raw HTML.** (pricing_legibility)
2. **No machine readable API specification is published at any standard path for developers pointed to the docs.** (programmatic_onboarding)
3. **No MCP manifest exists at any of the three standard paths checked.** (agent_aware_instrumentation)
The evidence and the recommended fix for each are on the report page: https://www.seconddoor.io/r/hubspot-rc6r2j
## 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-rc6r2j
## The agent door
- **machine_discoverability** 89/100. Robots.txt names and allows ChatGPT, Claude, Perplexity and others, llms.txt is published, sitemap lists 1101 URLs, and JSON-LD covers Organization and Product types.
- **programmatic_onboarding** 15/100. Developer docs exist at developers.hubspot.com with endpoint examples, but no OpenAPI spec was found at any of 6 standard paths, and the developer account button routes to app.hubspot.com, which disallows all automated access in robots.txt.
- **pricing_legibility** 30/100. The Marketing Hub pricing page has 16 real prices from $0 to $3,600 once JavaScript runs, but 0 of them appear in raw HTML, so any client that does not render pages sees no price 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 with a 459ms first byte and no bot wall. Trust signals are machine fetchable even where onboarding is not.
- **commercial_rails** 10/100. Pricing exists only after JavaScript renders, and the actual signup and checkout path lives on app.hubspot.com, which carries a blanket Disallow: / in robots.txt.
## The human door
- **steps_to_first_value** 80/100. The Get Started Free CTA is 2 steps from the homepage, which is a short path. But the destination itself, app.hubspot.com, is disallowed in robots.txt, so nothing beyond reaching the link was actually verified.
- **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
