Read the product contract. Do not automate the applicant.

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.

Six public routes. No mutation API.

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.

/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.

Ask for Markdown at the page URL.

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.

Discovery errors are structured.

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.

Breaking changes get a new major contract.

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.

No public agent can apply on your behalf.

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.