Leaderboard/Granola

Granola

docs.granola.ai/introduction
Score: 85 out of 100, grade B85
Grade B
Last checked: April 23, 2026 · Rerun
Share on
Simulation: Fern // bud
Day 0
CategoryAI/ML
Checks passed15/22Warnings2Failed2

Granola scores 85/100 (Grade B), passing 15 of 22 checks (68%). The documentation is broadly accessible to AI agents but has 4 areas that could be improved to better serve automated tooling.

# Agent Score Fix Report — Granola
URL: https://docs.granola.ai/introduction
Score: 85/100 (Grade B)

I need help improving the AI-readiness of the documentation at https://docs.granola.ai/introduction.
Agent Score found 2 failing checks and 2 warnings.

## Failing Checks (2)
- [content-discoverability] Llms Txt Directive: No llms.txt directive found in any of 1 pages
- [page-size] Page Size Html: 1 of 1 pages convert to over 100K chars (max 327K, 21% boilerplate)

## Warnings (2)
- [content-discoverability] Llms Txt Valid: llms.txt contains parseable links but doesn't fully follow the proposed structure: https://docs.granola.ai/llms.txt: No blockquote summary found
- [observability] Markdown Content Parity: 1 of 1 pages have minor content differences between markdown and HTML

## Fix Instructions

For each issue above, please:
1. Analyze the documentation site at https://docs.granola.ai/introduction
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 check https://docs.granola.ai/introduction --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

llms-txt-directiveNo llms.txt directive found in any of 1 pages
llms-txt-validllms.txt contains parseable links but doesn't fully follow the proposed structure: https://docs.granola.ai/llms.txt: No blockquote summary foundLearn more
llms-txt-existsllms.txt found at 1 location(s)Learn more
llms-txt-sizellms.txt is 17,587 characters (under 50,000 threshold)Learn more
llms-txt-links-resolvellms.txt contains 87 links, but none are under /introductionLearn more
llms-txt-links-markdownllms.txt contains 87 links, but none are under /introductionLearn more
auth-gate-detectionAll 1 pages are publicly accessibleLearn more
auth-alternative-accessAll docs pages are publicly accessible; no alternative access paths neededLearn more
page-size-html1 of 1 pages convert to over 100K chars (max 327K, 21% boilerplate)Learn more
rendering-strategyAll 1 pages contain server-rendered contentLearn more
page-size-markdownAll 1 pages under 50K chars (median 5K, max 5K)Learn more
content-start-positionContent starts within first 10% on all 1 pages (median 4%)Learn more
markdown-content-parity1 of 1 pages have minor content differences between markdown and HTMLLearn more
llms-txt-freshnessllms.txt covers 100% of 1 sitemap doc pagesLearn more
cache-header-hygieneAll 2 endpoints have appropriate cache headersLearn more
markdown-url-support1/1 pages support .md URLs (100%)Learn more
content-negotiation1/1 pages support content negotiation (100%)Learn more
tabbed-content-serializationNo tabbed content detected across 1 pagesLearn more
section-header-qualityNo tabbed content found; header quality check not applicableLearn more
markdown-code-fence-validityAll 2 code fences properly closed across 2 pagesLearn more
http-status-codesAll 1 pages return proper error codes for bad URLsLearn more
redirect-behaviorNo redirects detected across 1 pagesLearn more

Built by Fern

Fern-powered docs are agent-ready by default.

Trusted by