WorkOS scores 59/100 (Grade F), passing 7 of 22 checks (32%). There are 11 issues limiting AI agent readiness. Addressing llms.txt support and markdown availability would provide the most improvement.
# Agent Score Fix Report — WorkOS URL: https://workos.com/docs Score: 59/100 (Grade F) I need help improving the AI-readiness of the documentation at https://workos.com/docs. Agent Score found 6 failing checks and 5 warnings. ## Failing Checks (6) - [content-discoverability] Llms Txt Directive: No llms.txt directive found in any of 10 sampled pages - [markdown-availability] Markdown Url Support: No sampled pages support .md URLs (0/10 tested) - [markdown-availability] Content Negotiation: Server ignores Accept: text/markdown header (0/10 sampled pages return markdown) - [page-size] Page Size Html: 6 of 10 sampled pages convert to over 100K chars (max 3613K, 36% boilerplate) - [url-stability] Http Status Codes: 10 of 10 sampled pages return 200 for non-existent URLs (soft 404) - [observability] Cache Header Hygiene: 10 of 12 endpoints have aggressive caching or missing cache headers ## Warnings (5) - [content-discoverability] Llms Txt Size: llms.txt is 61,065 characters (between 50,000 and 100,000; consider splitting) - [content-discoverability] Llms Txt Links Markdown: Same-origin links point to HTML, but 10 have .md variants available - [page-size] Rendering Strategy: 1 of 10 sampled pages have server-rendered page structure but little substantive content; agents will see headings and navigation but not the page's actual documentation - [page-size] Content Start Position: 1 of 10 sampled pages have content starting at 10–50% (worst 13%) - [observability] Llms Txt Freshness: llms.txt covers 315/346 sitemap doc pages (91%); 31 missing; 227 llms.txt links not in sitemap (may indicate stale links or incomplete sitemap) ## Fix Instructions For each issue above, please: 1. Analyze the documentation site at https://workos.com/docs 2. Implement the specific fix 3. Verify the fix would cause the check to pass ### Common fixes: - **No llms.txt**: Create /llms.txt following https://llmstxt.org — list all doc pages in markdown format - **No .md URL support**: Configure your docs platform to serve pages at equivalent .md URLs (e.g. /docs/quickstart.md) - **No content negotiation**: Return markdown when request includes Accept: text/markdown header - **Large page size**: Reduce nav boilerplate, inline scripts, and repetitive markup - **No sitemap**: Generate /sitemap.xml listing all documentation URLs - **Auth walls**: Ensure docs pages return 200 without requiring login cookies or tokens - **No Last-Modified header**: Configure your server/CDN to include Last-Modified response headers - **Tab content hidden**: Ensure tabbed content is rendered in the HTML (not JS-only) so agents can read all variants ## Run afdocs Locally for More Detail To get deeper visibility into what's failing, run afdocs against your docs: npx afdocs https://workos.com/docs --fixes --verbose - **--fixes**: Adds "Fix:" lines to the output for each warn/fail check with actionable remediation steps - **-v, --verbose**: Shows per-page details (specific URLs, character counts, error codes) for checks with issues — useful for per-URL visibility into what's failing
CHECK RESULTS
How your docs scored
markdown-url-supportNo sampled pages support .md URLs (0/10 tested)
content-negotiationServer ignores Accept: text/markdown header (0/10 sampled pages return markdown)
cache-header-hygiene10 of 12 endpoints have aggressive caching or missing cache headers
llms-txt-freshnessllms.txt covers 315/346 sitemap doc pages (91%); 31 missing; 227 llms.txt links not in sitemap (may indicate stale links or incomplete sitemap)
markdown-content-paritySkipped: dependency check did not pass
page-size-html6 of 10 sampled pages convert to over 100K chars (max 3613K, 36% boilerplate)
rendering-strategy1 of 10 sampled pages have server-rendered page structure but little substantive content; agents will see headings and navigation but not the page's actual documentation
content-start-position1 of 10 sampled pages have content starting at 10–50% (worst 13%)
page-size-markdownSkipped: dependency check did not pass
http-status-codes10 of 10 sampled pages return 200 for non-existent URLs (soft 404)
redirect-behaviorAll 5 redirect(s) across 10 sampled pages are same-host HTTP redirects
auth-gate-detectionAll 10 sampled pages are publicly accessible
auth-alternative-accessAll docs pages are publicly accessible; no alternative access paths needed
llms-txt-directiveNo llms.txt directive found in any of 10 sampled pages
llms-txt-sizellms.txt is 61,065 characters (between 50,000 and 100,000; consider splitting)
llms-txt-links-markdownSame-origin links point to HTML, but 10 have .md variants available
llms-txt-existsllms.txt found at 2 location(s)
llms-txt-validllms.txt follows the proposed structure (H1, blockquote, heading-delimited link sections)
llms-txt-links-resolveAll 10 same-origin sampled links resolve (542 total links)
tabbed-content-serialization24 tab group(s) across 5 of 10 sampled pages; all serialize under 50K chars
markdown-code-fence-validityAll 0 code fences properly closed across 2 pages
section-header-quality5 page(s) with tabs found, but no section headers inside tab panels to evaluate