{"slug":"cal-nttyta","companyName":"Cal.com","domain":"cal.com","url":"https://cal.com","headline":"2 human and 5 agent dimensions measured from the pages checked; remaining dimensions are not scored.","compositeScore":68,"humanScore":89,"agentScore":47,"doorGap":42,"humanMeasured":2,"agentMeasured":5,"percentile":null,"humanPercentile":null,"agentPercentile":null,"isPartial":false,"depth":"free","siteClass":"b2b_saas","scannerVersion":25,"scannedAt":"2026-09-09T11:53:28.266Z","unlocked":false,"mission":{"steps":[{"url":"https://cal.com","outcome":"ok","purpose":"reach the site at all"},{"url":"https://cal.com/robots.txt","outcome":"ok","purpose":"find out whether machines are welcome"},{"url":"https://cal.com","outcome":"ok","purpose":"ask whether the door opens for requests carrying the AI crawlers' names"},{"url":"https://cal.com/llms.txt","outcome":"ok","purpose":"read the site's own guide for language models"},{"url":"https://cal.com/sitemap.xml","outcome":"ok","purpose":"find out what pages exist"},{"url":"https://cal.com/.well-known/security.txt","outcome":"ok","purpose":"find a contact route for machines"},{"url":"https://cal.com","outcome":"missing","purpose":"find a published agent interface"},{"url":"https://cal.com/.well-known/ai-plugin.json","outcome":"missing","purpose":"find an agent plugin manifest"},{"url":"https://cal.com","outcome":"missing","purpose":"find out whether verified agents are recognised"},{"url":"https://cal.com","outcome":"missing","purpose":"read the homepage as data rather than as a page"},{"url":"https://cal.com","outcome":"ok","purpose":"read the developer documentation"},{"url":"https://cal.com/pricing","outcome":"missing","purpose":"read the prices without running JavaScript"},{"url":"https://cal.com","outcome":"ok","purpose":"find a comparison page worth citing"},{"url":"https://app.cal.com/signup","outcome":"ok","purpose":"walk the way a visitor would, to a signup form or a product"}],"verdict":"The scanner recorded successful observations for 9 of 14 checks, but could not find a published agent interface. It came up empty on 4 other checks too. 1 checks could not be measured; see the report limitations."},"observations":null,"dimensions":[{"key":"machine_discoverability","audience":"agent","score":64,"summary":"No restriction on the tested crawler names was found in robots.txt. on its first visit, our browser read the homepage. no user agent rule refused the tested retrieval crawler names. key content only appears after JavaScript runs.","measurement":{"status":"observed"},"evidence":{"locked":true,"count":7}},{"key":"programmatic_onboarding","audience":"agent","score":null,"summary":"Not measured: robots.txt did not permit our scanner to read the required page.","measurement":{"reason":"robots_refusal","status":"unmeasured"},"evidence":{"locked":true,"count":0}},{"key":"pricing_legibility","audience":"agent","score":30,"summary":"4 prices appear only after JavaScript runs. a client that does not render pages sees no price at all.","measurement":{"status":"observed"},"evidence":{"locked":true,"count":1}},{"key":"agent_aware_instrumentation","audience":"agent","score":30,"summary":"No MCP manifest was identified at the discovery paths checked. OAuth authorization metadata is published, which is how a remote MCP server is found. developer documentation describes an API, but only in prose.","measurement":{"status":"observed"},"evidence":{"locked":true,"count":4}},{"key":"machine_fetchable_trust","audience":"agent","score":85,"summary":"Security.txt is published with a contact route. the homepage answers automated requests.","measurement":{"status":"observed"},"evidence":{"locked":true,"count":2}},{"key":"commercial_rails","audience":"agent","score":25,"summary":"The pricing page routes to sales without publishing any prices. a self serve signup form is reachable from the homepage.","measurement":{"status":"observed"},"evidence":{"locked":true,"count":2}},{"key":"steps_to_first_value","audience":"human","score":80,"summary":"A signup form was reached in 2 steps from the homepage.","measurement":{"status":"observed"},"evidence":{"locked":true,"count":1}},{"key":"required_fields","audience":"human","score":98,"summary":"0 of 0 fields on the observed form are marked required. 2 sign-in providers are displayed.","measurement":{"status":"observed"},"evidence":{"locked":true,"count":1}},{"key":"verification_walls","audience":"human","score":null,"summary":"Not measured: this scan did not reach the page or action needed to verify it.","measurement":{"reason":"not_reached","status":"unmeasured"},"evidence":{"locked":true,"count":0}},{"key":"error_recovery","audience":"human","score":null,"summary":"Not measured: this scan did not reach the page or action needed to verify it.","measurement":{"reason":"not_reached","status":"unmeasured"},"evidence":{"locked":true,"count":0}}],"issues":[{"rank":1,"title":"The comparison page checked did not provide readable text in its initial HTML.","dimensionKey":"machine_discoverability","evidence":{"locked":true,"count":2},"fix":null},{"rank":2,"title":"No MCP manifest was identified at the 3 standard paths checked.","dimensionKey":"agent_aware_instrumentation","evidence":{"locked":true,"count":3},"fix":null}],"fixArtifacts":{"locked":true,"count":7,"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":"comparison_page_brief:compare-cal-com-vs-competitor","kind":"comparison_page_brief","title":"A comparison page brief","path":"/compare/cal-com-vs-competitor","effort":{"minutes":180,"role":"owner"},"outcome":{"dimension":"machine_discoverability","external":["A server-rendered comparison page exists for an assistant to cite."]}},{"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":["A plain-text price list is available at the published URL."]}},{"id":"organization_jsonld:homepage","kind":"organization_jsonld","title":"Organization structured data","path":"homepage","effort":{"minutes":15,"role":"developer"},"outcome":{"dimension":"machine_discoverability","external":["Search and assistant crawlers read the company entity from the homepage rather than inferring it."]}}]},"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":"machine_discoverability","checkId":"comparison_pages","key":"issue:machine_discoverability:comparison_pages"},{"type":"issue","dimensionKey":"agent_aware_instrumentation","checkId":"mcp_manifest","key":"issue:agent_aware_instrumentation:mcp_manifest"}]}}