Is sajjad.me AI agent ready? F · 34/100
Why we think this is Next.js (2 signals)
- · hosted on Vercel
- · /_next/static/ asset
7 failed · 2 partial out of 14 that apply to your site.
Fix automatically with AIScan
9 open checks (7 failing) can be handed to an AI agent: D1, D3, C1, C3, B2, P1, P4, M4, E2. Pick one route — each returns the full, check-by-check instructions.
npx add-skill https://aiscan.site/aiscan-skill.jsonThen ask your agent: “Fix the failing AI readiness checks for https://sajjad.me/”.
curl -o CLAUDE.md https://aiscan.site/CLAUDE.mdDrop it in your project root, then ask Claude Code to fix the failing AIScan checks.
https://aiscan.site/api/mcpTools: scan_website, get_fixes, get_grade. Call get_fixes { "url": "https://sajjad.me/" }.
curl -s 'https://aiscan.site/api/public/scan?url=https%3A%2F%2Fsajjad.me%2F'Returns every check with its complete fix guide.
Verify: Re-scan at https://aiscan.site after applying fixes, or run npx aiscan-cli https://sajjad.me/. Individual checks that need a specific probe list it in their own guide.
Quick Wins
Top 3 fixes ranked by score impact
- 01Fail+8 pts if fixed
Markdown content negotiation
See full detailsServe text/markdown when the client sends Accept: text/markdown, or publish /index.md.
- 02Fail+6 pts if fixed
Machine-readable pricing
See full detailsPublish schema.org Offer / AggregateOffer JSON-LD on your pricing page with price, priceCurrency and the billing period, so an agent can answer "what does this cost?" without scraping prose.
- 03Fail+5 pts if fixed
Explicit AI bot rules
See full detailsAdd explicit allow/deny rules for GPTBot, ClaudeBot, PerplexityBot, Google-Extended, etc.
# Agent-readiness remediation brief Site: https://sajjad.me/ Platform: nextjs (60% confidence) AIScan score: 34/100 — Level 2 (Readable) Rubric: v2026.08.2 ## Failing checks (sorted by weight) - **[C1] Markdown content negotiation** — FAIL - Evidence: Accept: text/markdown → 200 (text/html; charset=utf-8) - Fix: Serve text/markdown when the client sends Accept: text/markdown, or publish /index.md. - **[D1] robots.txt present & sane** — PARTIAL - Evidence: 200 OK, 22 bytes - Fix: Serve a non-blocking /robots.txt that references your Sitemap. - **[M4] Machine-readable pricing** — FAIL - Evidence: no pricing page found and no JSON-LD Offer on the homepage - Fix: Publish schema.org Offer / AggregateOffer JSON-LD on your pricing page with price, priceCurrency and the billing period, so an agent can answer "what does this cost?" without scraping prose. - **[B2] Explicit AI bot rules** — FAIL - Evidence: 0 known AI agent(s) addressed in robots.txt - Fix: Add explicit allow/deny rules for GPTBot, ClaudeBot, PerplexityBot, Google-Extended, etc. - **[C3] Structured HTML (title, meta, JSON-LD, single H1)** — PARTIAL - Evidence: h1: 1, title: true, meta description: true, JSON-LD: false - Fix: Ensure a single <h1>, <title>, meta description, and schema.org JSON-LD. - **[P1] API Catalog (RFC 9727)** — FAIL - Evidence: 404 at /.well-known/api-catalog - Fix: Publish /.well-known/api-catalog linking to your OpenAPI descriptions. - **[P4] OAuth discovery metadata** — FAIL - Evidence: auth-server: 404, protected-resource: 404 - Fix: Publish RFC 8414 / RFC 9728 metadata at the /.well-known/oauth-* endpoints. - **[D3] Link header for discovery** — FAIL - Evidence: no Link header or <link> tag - Fix: Add a Link response header or HTML <link rel="api-catalog"|"describedby"> tag. - **[E2] Machine-readable API description** — FAIL - Evidence: no /openapi.json, /api/openapi.json or swagger document found - Fix: Publish an OpenAPI 3.1 document at /openapi.json and reference it from /.well-known/api-catalog as a service-desc link. ## General guidance - Static-first: `robots.txt`, `llms.txt`, `/.well-known/*` JSON cards. - Markdown negotiation: serve `text/markdown` when requested via `Accept` header or `?format=md`. - Bot access: explicit allow/deny per AI user-agent (GPTBot, ClaudeBot, PerplexityBot, Google-Extended, Applebot-Extended, Bytespider, Amazonbot, CCBot, meta-externalagent, cohere-ai, Diffbot). - Capabilities: publish an MCP server card and (optionally) an Agent Skills manifest even if the runtime isn't live — discovery first. - Re-scan at aiscan.site after deploying.
How this score is calculated
Every check earns points against a weight. We divide the points you earned by the points that actually apply to a Next.js — so checks that don't apply never drag you down.
Baseline every site should meet.
Strong signals most sites benefit from.
Emerging standards. Can only add points.
Not counted (7): B1, B3, P2, P3, M1, M3, E5 — either not applicable to this site profile or optional and not yet adopted. Expand any check to see the exact evidence we based it on.
Discoverability
76Can agents find your pages? robots, sitemaps, llms.txt.
Your site is missing this right now, so AI agents can't use it. The fix below is what to change.
ID · D3
What we foundno Link header or <link> tag
Measured againstHow to fix itAdd a Link response header or HTML <link rel="api-catalog"|"describedby"> tag.
Add a Link response header
Set this header on your homepage and/or root document. Most CDNs (Cloudflare, Vercel, Netlify) support response-header rules.
Example
Link: </.well-known/api-catalog>; rel="api-catalog"
Content
59Can agents read your content cleanly? Markdown, structured data.
Your site is missing this right now, so AI agents can't use it. The fix below is what to change.
ID · C1
What we foundAccept: text/markdown → 200 (text/html; charset=utf-8)
How to fix itServe text/markdown when the client sends Accept: text/markdown, or publish /index.md.
Serve text/markdown on Accept negotiation
When a client sends
Accept: text/markdown, return a markdown rendering of the same content. The simplest path is to publish parallel.mdfiles (e.g./about→/about.md) and rewrite based on the Accept header.Test it
curl -H "Accept: text/markdown" https://yoursite.com/
Bot Access
0Are AI crawlers explicitly allowed or blocked?
Your site is missing this right now, so AI agents can't use it. The fix below is what to change.
ID · B2
What we found0 known AI agent(s) addressed in robots.txt
Measured againstHow to fix itAdd explicit allow/deny rules for GPTBot, ClaudeBot, PerplexityBot, Google-Extended, etc.
Add explicit User-agent blocks
Don't rely on
User-agent: *alone. Address each major AI crawler so your policy is unambiguous.Recommended block
User-agent: GPTBot Allow: / User-agent: ClaudeBot Allow: / User-agent: PerplexityBot Allow: / User-agent: Google-Extended Allow: / User-agent: Applebot-Extended Allow: /
Capabilities
0Can agents do things? APIs, auth, MCP, Agent Skills.
Your site is missing this right now, so AI agents can't use it. The fix below is what to change.
ID · P1
What we found404 at /.well-known/api-catalog
Measured againstHow to fix itPublish /.well-known/api-catalog linking to your OpenAPI descriptions.
Publish an API catalog (RFC 9727)
# Add to your homepage HTTP response headers Link: </.well-known/api-catalog>; rel="api-catalog" # And serve a JSON document at /.well-known/api-catalog: { "links": [ { "href": "/openapi.json", "rel": "service-desc", "type": "application/openapi+json" } ] }Your site is missing this right now, so AI agents can't use it. The fix below is what to change.
ID · P4
What we foundauth-server: 404, protected-resource: 404
Measured againstHow to fix itPublish RFC 8414 / RFC 9728 metadata at the /.well-known/oauth-* endpoints.
Publish OAuth discovery metadata
If your API supports OAuth, serve RFC 8414 metadata at
/.well-known/oauth-authorization-serverand/or RFC 9728 at/.well-known/oauth-protected-resource.Your site is missing this right now, so AI agents can't use it. The fix below is what to change.
ID · E2
What we foundno /openapi.json, /api/openapi.json or swagger document found
Measured againstHow to fix itPublish an OpenAPI 3.1 document at /openapi.json and reference it from /.well-known/api-catalog as a service-desc link.
Publish an OpenAPI 3.1 description
Serve it at
/openapi.json(or/openapi.yaml). Describe every public endpoint, its parameters, and its response schema.Advertise it
Reference it from
/.well-known/api-catalogas aservice-desclink and from aLinkresponse header.Link: </openapi.json>; rel="service-desc"; type="application/json"
Content sites can skip this
If you expose no programmatic API, this check is informational and costs you nothing.
Commerce
0Can agents transact? Catalogs, checkout, agentic commerce.
Your site is missing this right now, so AI agents can't use it. The fix below is what to change.
ID · M4
What we foundno pricing page found and no JSON-LD Offer on the homepage
Measured againstHow to fix itPublish schema.org Offer / AggregateOffer JSON-LD on your pricing page with price, priceCurrency and the billing period, so an agent can answer "what does this cost?" without scraping prose.
Add Offer JSON-LD to your pricing page
One block per plan (or one AggregateOffer covering the range) so an agent can answer "what does this cost?" without reading prose.
Example
<script type="application/ld+json"> { "@context": "https://schema.org", "@type": "Product", "name": "Pro", "offers": { "@type": "Offer", "price": "12.00", "priceCurrency": "USD", "priceSpecification": { "@type": "UnitPriceSpecification", "price": "12.00", "priceCurrency": "USD", "billingDuration": 1, "billingIncrement": 1, "unitCode": "MON" }, "availability": "https://schema.org/InStock", "url": "https://example.com/pricing" } } </script>Keep it truthful
The structured price must match the price a human sees; agents will quote it.
Embed your AIScan badge
Drop this badge into your site footer, GitHub README, or docs. It links back to a fresh scan of sajjad.me on AIScan.site.
<!-- AIScan.site agent-readiness badge --> <a href="https://aiscan.site/?u=https%3A%2F%2Fsajjad.me%2F" target="_blank" rel="noopener" title="Agent-Readiness Grade F (34/100) — AIScan.site"> <img src="https://aiscan.site/api/public/badge.svg?score=34&grade=F&host=sajjad.me" alt="AIScan.site Grade F — 34/100" width="240" height="64" loading="lazy" /> </a>
[](https://aiscan.site/?u=https%3A%2F%2Fsajjad.me%2F)
Create a free account to track this site over time
- Save scan history
- See score trends
- Re-scan anytime
Dig deeper
sajjad.me is built on Next.js. AI-agent readiness for Next.js walks through the same checks on that platform.
This page always shows the most recent public scan for sajjad.me.