Published 2026-09-22 · Tested 2026-09-22

Clerk

B-

Clerk received 10 PASS votes and passed 4 of five agent surface checks. The clearest finding came from the find the exact limits task.

Panel: GPT 5.6 Sol, Opus 5, DeepSeek v4F Battery: v1 Read as markdown (opens in a new tab)

Three AI models, GPT 5.6 Sol, Claude Opus 5, and DeepSeek v4 Flash, each read Clerk’s public documentation independently and attempted five first-hour developer jobs: add sign-in to a Next.js app, find the exact limits, recover from a 429, verify a webhook, use the Next.js SDK.

No accounts, API calls, or code execution were used. Every verdict came from public pages and every published quotation passed a live verification check.

Freshness

How rechecks work
Category
Identity & auth
Tested
Quotes verified
Surface rechecked
Not yet rechecked
Clerk Custom Next.js · published
B-

81.2% · 65/80 · AI Agent Readiness Score · reading 30 pts · surface 50 pts

llms.txt PASS
llms-full.txt FAIL
markdown mirror PASS
MCP server PASS
docs AI PASS
Task GPT 5.6 SolOpus 5DeepSeek v4F Consensus
Add sign-in to a Next.js app PASSPASSPASS PASS
Find the exact limits PARTIALPARTIALPARTIAL PARTIAL
Recover from a 429 PASSPASSPARTIAL PASS
Verify a webhook PASSPASSPASS PASS
Use the Next.js SDK PARTIALPASSPASS PASS

docs platform: Custom Next.js (unscored) · verified 2026-09-22

What to fix first

These 2 fixes could add up to 13 points to the AI Agent Readiness Score. The list ranks each fix by the points it would add. How the ranking works

  1. 1
    +10 points llms-full.txt check failed

    Found: HTTP 308 redirect to llms.txt, which is a link index rather than substantial documentation text.

    Fix: Publish llms-full.txt at the docs root with the full text of every docs page in one plain-text file.

    Evidence: clerk.com/docs/llms-full.txt (opens in a new tab)

  2. 2
    +3 points Find the exact limits PARTIAL

    Found: No docs page lists plan quotas: the 50,000 MRU cap sits only in the migration guide, and the Organizations guide's 50 development MROs conflict with pricing's 100.

    Fix: List the MRU and MRO quotas for each plan on the system limits page, and state whether the MRO cap is per instance or per application.

    Evidence: clerk.com/docs/guides/organizations/overview (opens in a new tab)

What the docs get right

  • Add sign-in to a Next.js app: 3 PASS votes. The quickstart provisions keys, configures Clerk, renders signed-out controls and UserButton, and includes a verification step.
  • Verify a webhook: 3 PASS votes. The guide covers endpoint creation, user.created delivery, a public route, signing-secret setup, verifyWebhook(), testing, and production.
  • 4 of 5 agent surface checks. Present: llms.txt, markdown mirrors, an MCP server, docs AI. Missing: llms-full.txt.

Add sign-in to a Next.js app

PASS

PASS consensus from 3 PASS.

The quickstart provisions keys, configures Clerk, renders signed-out controls and UserButton, and includes a verification step. The App Router quickstart is a single CLI-first path that provisions an application without an account, writes the keys, and ends with a copyable layout.tsx showing SignInButton, SignUpButton and UserButton inside ClerkProvider. One clear path from zero to a rendered sign-in: npx -y clerk@latest init provisions the app and writes API keys, then the quickstart shows exact code for ClerkProvider plus SignInButton and UserButton in app/layout.tsx.

Find the exact limits

PARTIAL

PARTIAL consensus from 3 PARTIAL.

Rate limits are exact, but the Organizations guide scopes 50 MROs to development while pricing states 100 per application. Frontend and Backend API limits are given as exact numbers with explicit scopes on one page, but no docs page states plan quotas: the 50,000 MRU free-plan cap appears only inside the migration guide, the 50/100 MRO caps only inside the Organizations overview, and both defer to the non-docs pricing page. Rate limits are stated with exact values and clear scopes (Frontend API per user by IP, Backend API per instance by Secret Key). Plan quotas (MRU limits, API key creation caps per Hobby/Pro/Business) are on the pricing page, not in the documentation section, with no cross-reference from the rate limits page.

Recover from a 429

PASS

PASS consensus from 2 PASS, 1 PARTIAL.

The limits page identifies the cause and expiry, while the SDK guide requires backoff and respect for Retry-After. Cause, retry signal and corrective action are all documented: the rate limits page names the 429 and the Retry-After header, the backend-only SDK guide instructs a backoff mechanism, and the Backend and Frontend API error references list the 429 error codes and payloads. Cause (429 = rate limited) and retry signal (Retry-After header) are documented. No full recovery path: no code example for handling 429s, no mention of exponential backoff or retry strategy.

Verify a webhook

PASS

PASS consensus from 3 PASS.

The guide covers endpoint creation, user.created delivery, a public route, signing-secret setup, verifyWebhook(), testing, and production. The syncing guide covers the whole path end to end (tunnel, endpoint creation, signing secret, public route, verifyWebhook() handler, type narrowing, production deployment) and agrees with the verifyWebhook() reference on behavior, though the two show different import specifiers. End-to-end process documented: ngrok setup, Dashboard endpoint creation, signing secret, route handler with verifyWebhook(), test, and production deploy. The reference page imports from @clerk/backend/webhooks (generic) while the guide uses @clerk/nextjs/webhooks (framework-specific); the reference explicitly points to the guide for framework examples.

Use the Next.js SDK

PASS

PASS consensus from 2 PASS, 1 PARTIAL.

The examples match, but currentUser() is mapped to two different Backend API endpoints. @clerk/nextjs is named as the official SDK in the reference overview and the quickstart, and the same await auth() plus await currentUser() server form appears in the reading guide, the App Router reference and the quickstart's critical rules. Official Next.js SDK is @clerk/nextjs. currentUser() from @clerk/nextjs/server is the canonical server-side helper for App Router. The import path and async usage are consistent across the quickstart, SDK overview, and reference pages.

The receipt

Free plans include up to 50 MROs in development and 100 in production.

Rate limits are exact, but the Organizations guide scopes 50 MROs to development while pricing states 100 per application.

Agent surface notes

Initialize returned JSON-RPC protocol 2025-06-18 with serverInfo name Clerk MCP Server.

Clicking the docs header Ask AI button opened a chat dialog reading Ask anything about Clerk, I can search the docs and API reference.

Show the score

AI Agent Readiness Score 81.2%, grade B-

Paste this into a readme:

[![AI Agent Readiness Score 81.2%](https://docsforagents.com/badge/clerk.svg)](https://docsforagents.com/reports/clerk-docs-ai-agent-readiness/)

Method note

This is a reading test of public documentation, not an execution test. No accounts were created and no API calls were run. The AI Agent Readiness Score counts fifteen reading votes at PASS 2, PARTIAL 1, and FAIL 0, for 30 possible points. Five agent surface checks add 10 points each. The total is 80. Consensus chips show each row majority and do not affect scoring. The panel split on 2 of five tasks. Quotes shown here were re-fetched and confirmed verbatim on 2026-09-22.

Read the full methodology

Put another docs site through the battery.

Nominate a docs site