/api/ai JSON catalog of every public HTML surface and same-origin Markdown alternate.
Public discovery interface
RolePatch publishes a small, unauthenticated, read-only interface so agents can discover the product and understand its limits. Resume tailoring and application actions remain inside the reviewed user workflow.
Endpoints
Use GET or HEAD. These routes require no token or account. They describe RolePatch; they do not accept a resume, spend credits, fill an ATS, or submit an application.
/api/ai JSON catalog of every public HTML surface and same-origin Markdown alternate.
/api/public/v1/surfaces/{id} Versioned JSON lookup for one catalog surface; an unknown id returns a typed problem response.
/llms.txt Compact product guidance, best-fit use cases, boundaries, access, and discovery links.
/llms-full.txt Expanded product brief for agents that need the full product contract.
/index.md Canonical Markdown explanation of product purpose, evidence rules, access, and state.
/openapi.json OpenAPI 3.1 description of these read-only discovery routes.
/sitemap.xml Canonical public route inventory for crawlers.
Markdown negotiation
Send Accept: text/markdown to any cataloged public page, or request its
explicit .md alternate. Negotiated responses include
Vary: Accept so HTML and Markdown cannot poison one another in a cache.
Error model
Unsupported methods and missing discovery routes return
application/problem+json with a stable code, status, detail, and
resolution hint. Ordinary product routes keep their own application contracts.
Version policy
The OpenAPI info.version follows semantic versioning. A breaking change
gets a new major version; the previous contract remains available for at least 90
days with Deprecation and Sunset response headers.
Non-goals
There is no public mutation API, MCP tool, payment-by-agent rail, CAPTCHA bypass, or unattended file upload. Those absences preserve the review-first product boundary.