yannis.dev
Finalizing the report
Preparing the stored Is Agentic score
yannis.dev
Preparing the stored Is Agentic score
yannis.dev
These checks describe whether an ordinary agent can enter, read, and operate the public site.
Agents can reach the site
Crawler access and bot defenses.
Core content is available
Useful content remains accessible without a fragile browser-only path.
Navigation fails safely
Redirects and missing pages give agents a recoverable path.
Controls are understandable
Forms and interactive controls expose usable names and structure.
The public website is always evaluated. Optional surfaces appear when the scan finds positive evidence that they apply.
Strong
Weighted across 16 applicable checks
Strong
Weighted across 12 applicable checks
Ready with gaps
Weighted across 3 applicable checks
Critical access gaps come first, followed by other applicable readiness gaps.
Serve at least 500 characters of meaningful homepage content in raw HTML. Add a clear H1, keep deeper heading levels sequential, and remove excessive non-content markup.
Make sure a clean search for your brand name returns your own domain in the top results. If it does not, your brand may be too generic, conflict with a more established term, or not yet indexed. Strengthen brand-name search by claiming consistent NAP across listings, earning press mentions that link to the canonical domain, and avoiding redirect chains that mask the apex domain in search results.
Make your developer resources (API docs, OpenAPI spec, auth docs, developer portal, MCP server) discoverable by name. Publish them at predictable URLs, list them in llms.txt, and include your product name in page titles and headings so search engines surface them for name-based queries.
Publish API documentation at a discoverable URL (/docs, /api, /developers). Include authentication, endpoints, and example requests.
Build an MCP (Model Context Protocol) server exposing your API as tools. Use Streamable HTTP transport for full score. This lets Claude, ChatGPT, and other AI agents call your product natively.
Checks are grouped by relevance for Docs & content sites.
1099 chars with H1, but 3.2% content ratio is below the 5% target
How to pass
Serve at least 500 characters of meaningful homepage content in raw HTML. Add a clear H1, keep deeper heading levels sequential, and remove excessive non-content markup.
Site accessible to 6 AI agent user-agents
No meta-refresh stubs, JavaScript-redirect stubs, or cross-domain hops across 6 checked pages
All 5 sampled pages are publicly readable (5 with substantive content)
OpenAPI spec found at https://yannis.dev/openapi.json (version: 3.1.0)
Canonical URL serves text/markdown and text/html via Accept negotiation with Vary: Accept
API returns JSON error responses (404 at https://yannis.dev/api/v1/orank-probe-test)
MCP server exposes 7 resource(s) via resources/list
Nonexistent paths return HTTP 404 with markdown guidance for agents - the strongest 404 contract
Name search surfaced no pages on yannis.dev, although developer resources exist on the site (API docs, OpenAPI spec, auth docs, MCP server) - weak search indexing or transient search noise
How to pass
Make your developer resources (API docs, OpenAPI spec, auth docs, developer portal, MCP server) discoverable by name. Publish them at predictable URLs, list them in llms.txt, and include your product name in page titles and headings so search engines surface them for name-based queries.
"Yannis" search returned 7 results but domain did not appear - brand may be too generic or not indexed
How to pass
Make sure a clean search for your brand name returns your own domain in the top results. If it does not, your brand may be too generic, conflict with a more established term, or not yet indexed. Strengthen brand-name search by claiming consistent NAP across listings, earning press mentions that link to the canonical domain, and avoiding redirect chains that mask the apex domain in search results.
Valid sitemap found at https://yannis.dev/sitemap.xml with 14 entries
Rich JSON-LD identity: Person with name, description, url, and sameAs/jobTitle (1 block)
Documentation found at /developers but not linked from homepage
How to pass
Publish API documentation at a discoverable URL (/docs, /api, /developers). Include authentication, endpoints, and example requests.
When-to-use guidance found in llms.txt
All metadata signals present: canonical URL, lang="en", og:image, og:type
Organization schema complete with contactPoint and address
All trust anchor pages verified: About, Contact, Privacy
All 8 measured pages fit an agent context budget (largest ~2K tokens)
Code fences balanced across 3 markdown documents
Developer portal found at /developers
REST API documentation found at https://yannis.dev/developers. Best-of-protocols score: 7/7.
MCP manifest found at /.well-known/mcp.json but protocol handshake failed
How to pass
Build an MCP (Model Context Protocol) server exposing your API as tools. Use Streamable HTTP transport for full score. This lets Claude, ChatGPT, and other AI agents call your product natively.
The live API at https://yannis.dev/api/v1 returns IETF RateLimit-* headers: ratelimit-limit, ratelimit-policy, ratelimit-remaining.
OpenAPI uses application/problem+json (RFC 7807) for 4xx/5xx responses
API versioning strategy found (header versioning) with sunset/deprecation markers documented
CLI tool mentioned in llms.txt
How to pass
Publish an official CLI tool on npm, PyPI, or Homebrew. A CLI lets agents and developers script interactions with your product without building API integrations from scratch.
100% of operations define response schemas (target: >60% with application/json content type)
How to pass
Define typed JSON response schemas for every endpoint in your OpenAPI spec. Agents rely on these to know what fields they will get back; missing or partial schemas force trial-and-error.
REST: agent-friendly schema (19 operations, 100% with operationIds, 100% documented by description or summary)
Compatible: 19/19 ops with IDs, 19/19 with typed schemas
7/7 resources read with valid mimeType and non-empty content
MCP server discoverable via server-card.json at /.well-known/mcp/
RFC 8288 Link header advertises: describedby, alternate(markdown)
Partial markdown fallback support. Homepage (https://yannis.dev/index.md) returns markdown, but 1 of 3 sampled content pages do not: https://yannis.dev/api/status.json.md. To earn full credit, serve a .md twin for each content page (e.g. /docs/auth -> /docs/auth.md) with text/markdown content-type or a heading-led non-HTML body.
How to pass
Let agents fetch markdown by appending .md to page URLs. Required for any credit: serve a markdown homepage at /index.md. For full credit (2/2): also serve a .md twin for each content page (e.g. /docs/auth -> /docs/auth.md). Content-Type should be text/markdown and the body should start with a top-level heading (not HTML).
100% of 14 sampled sitemap entries carry lastmod; newest is 7 day(s) old
Found the llms.txt at https://yannis.dev/llms.txt.
The llms.txt is well-formatted: 38 lines with markdown links, 4,000 characters in total.
Strong entity linking via sameAs: linkedin.com, github.com
All 5 probed llms.txt links resolve to real content
Markdown alternate advertised and verified: https://yannis.dev/index.md serves markdown
Path-suffix markdown docs served with text/markdown content-type: /developers.md, /index.md
All 5 tools on other MCP have detailed descriptions (>= 20 chars)
other MCP identifies as "dev.yannis/profile" v1.0.0 with instructions
other MCP exposes 5 tools - substantial tool surface
All 5 tool names follow consistent convention, descriptive, and non-generic
other MCP returns structured JSON-RPC errors with code and message
other MCP uses modern Streamable HTTP transport
202 Accepted responses found but no clear polling pattern (Location header, /jobs path, or job_id schema)
How to pass
For long-running operations, return 202 Accepted and point agents at where to poll for the result (a status/location reference plus a job identifier in the body), documented in your OpenAPI spec, so work that does not finish in one request is still followable.
other MCP: 5/5 tools have behavioral annotations (readOnlyHint/destructiveHint)
MCP server card found at https://yannis.dev/.well-known/mcp/server-card.json but missing fields:
How to pass
Publish a server card at /.well-known/mcp/server-card.json describing your MCP server. Required fields: name, description, version, serverUrl, tools[]. This lets agents preview your server before opening a transport connection.
Server HTML is a well-structured document (main=true, landmarks=4/4, h1=1, maxHeadingSkip=1).
14 native controls, 0 non-native div-soup affordances (100% native).
14/14 interactive elements have a computable accessible name (100%).
No hidden instruction text detected in accessibility-tree attributes or off-screen content.
What does yannis.dev do and who is it for? Explain it back to me.
Sign me up for Vercel product updates and marketing emails.
Unsubscribe anytime. Privacy Notice
Source: Ora API
What does yannis.dev do and who is it for? Explain it back to me.
30 steps12 reasoning steps12 searches
The agent gathered substantial information about Yannis' background, methodology, and project experience but could not fully access complete homepage content or definitively determine service offerings and pricing. The site's homepage HTML was truncated in fetches, and key pages (/about, /services, /contact, /work) returned 404s, forcing the agent to assemble understanding from web search results and prior knowledge rather than direct site content. The agent partially satisfied the task by explaining who Yannis is and his approach, but couldn't definitively answer how the site is monetized or whether services are offered.