Skip to the report
frontlatch

Agent-readiness report

Sydney dental practice

<sydney-dental-practice>.com.au

partially ready

Agent-readiness score out of 100: 48 out of 100.

An AI agent can read this site. It cannot reliably finish a job here — the ways in are built for a person with a mouse, not for software.

Scanned
25 August 2026
Rank in the sample
7 of 15
Scanner
agent-readiness-scanner v0.1.0

01

What an agent can actually do here

Every way in the scanner found on the page it fetched, and whether software could drive it. This is the part of the report that decides whether a customer sent by an agent becomes a job.

  • Phone link

    Not yet agent-callable

    tel: link (number withheld)

    Blocked by

    • a phone number hands off to a human — it is not an action an agent can complete

02

Where the score came from

Five categories, twenty points each. Each one is a different way an agent tries to understand a site, and each one is scored on what the page actually publishes rather than on how it looks.

Crawlability & discovery

12 of 20

Whether an agent is allowed in at all, and whether the site tells it where things are.

  • Pass: robots.txt present and does not lock agents out

  • Pass: Sitemap found

  • Note: No llms.txt

    Add /llms.txt summarising your services, areas and how to book.

  • Fail: No ARD catalog — the June 2026 discovery standard agents check first

    Publish /.well-known/ai-catalog.json listing your endpoint and the actions you offer.

  • Pass: Canonical URL declared

Structured data

18 of 20

Whether the business facts — trade, hours, phone, address, services — are published in a form software can read, rather than only drawn on the page.

  • Warning: A JSON-LD block failed to parse

    Validate your structured data — broken JSON-LD is ignored.

  • Pass: JSON-LD present (WebSite, MedicalOrganization, Dentist, Person)

  • Pass: Business entity type declared

  • Pass: Opening hours in structured data

  • Pass: Phone in structured data

  • Pass: Address in structured data

  • Note: No Service/Offer entities

    List your services as Service entities with areaServed.

Action affordances

8 of 20

Whether there is anything on the page an agent could act on: a booking widget, a form, a number.

  • Fail: No booking, quote or contact form detected — there is nothing for an agent to complete

    Add at least one clean quote or booking form: every field labelled and named, a real submit control, and no CAPTCHA in front of it.

  • Pass: Clickable phone number present

Form quality

4 of 20

Whether the forms are built so software knows what goes in each box and can press send.

  • Fail: Only 0/5 fields have labels — agents can't tell what goes where

    Bind a <label for> or aria-label to every field.

  • Warning: Some fields lack name attributes

    Unnamed fields can't be submitted programmatically.

  • Warning: Fields are generic text inputs

    Use type=email/tel/date so agents format values correctly.

  • Note: No autocomplete attributes

    autocomplete='name|email|tel' tells agents exactly which value belongs in each field.

  • Pass: Real submit control present

  • Note: No required attributes

    Mark mandatory fields so agents don't submit incomplete requests.

  • Warning: CAPTCHA detected on this page

    A CAPTCHA stops a customer's agent exactly as well as it stops a bot, and an agent will not attempt one. Any action behind it is closed to agents.

Agent interface (WebMCP/MCP)

6 of 20

Whether the site publishes any of the 2026 agent standards — WebMCP, an MCP endpoint, an ARD catalog — or leaves an agent to scrape and guess.

  • Fail: No WebMCP — agents must scrape and guess instead of calling declared actions

    Expose your booking and quote actions as WebMCP tools on navigator.modelContext.

  • Fail: No persistent MCP endpoint — nothing for agents to call when the page isn't open

    Host an MCP endpoint for your actions, so an agent can call them when nobody has the page open.

  • Pass: Semantic landmarks and headings present

  • Pass: Images carry alt text

03

The fix list

13 items

Everything the scanner found that has a named remedy, in the order the score reads them. These are instructions for whoever maintains the site. They are free, and they are the whole list — nothing is held back.

  1. Add /llms.txt summarising your services, areas and how to book.

  2. Publish /.well-known/ai-catalog.json listing your endpoint and the actions you offer.

  3. Validate your structured data — broken JSON-LD is ignored.

  4. List your services as Service entities with areaServed.

  5. Add at least one clean quote or booking form: every field labelled and named, a real submit control, and no CAPTCHA in front of it.

  6. Bind a <label for> or aria-label to every field.

  7. Unnamed fields can't be submitted programmatically.

  8. Use type=email/tel/date so agents format values correctly.

  9. autocomplete='name|email|tel' tells agents exactly which value belongs in each field.

  10. Mark mandatory fields so agents don't submit incomplete requests.

  11. A CAPTCHA stops a customer's agent exactly as well as it stops a bot, and an agent will not attempt one. Any action behind it is closed to agents.

  12. Expose your booking and quote actions as WebMCP tools on navigator.modelContext.

  13. Host an MCP endpoint for your actions, so an agent can call them when nobody has the page open.

04

How this compares

The same scanner, the same day, run over a sample of Sydney service businesses found the way a customer’s agent would find them: plain searches for a plumber, a physio and a real estate agent. Nobody was screened for looking bookable.

  • This site

    48

  • Sample mean

    45.7

  • Best in sample

    69

  • Lowest in sample

    12

Mean score and agent-callable actions, by vertical
VerticalSitesMeanAgent can complete
Trades5581 of 5
Clinicsthe vertical this site was scanned in547.60 of 5
Real estate531.40 of 5

The businesses in the sample are not named. They did not ask to be scanned, and naming them would publish a defect against a real company that has done nothing wrong.

See all the reports in the sample

05

What this report is, and what it is not

  • It measures one page, fetched once, read-only.

    The scanner requested the page and read the HTML it was handed. It did not run scripts, click anything, fill a field or submit a form, and it did not crawl the rest of the site. A site with a booking flow two clicks deep scores as if it were not there — because that is what an agent reading the fetched page gets.

  • It understates most sites, and we know by how much.

    Opening the same sample in a real browser — rendering, waiting for scripts, clicking, following a link — reached actions a fetch of the entry page could not see, on almost every site in it. Discovery is not the wall. The wall is the CAPTCHA and the consent tick at the end of the form.

  • It is version 0.1 of an instrument, not an audit.

    The scanner is early and its known defects are recorded in the repository rather than in a footnote. Treat a category score as a direction, not a verdict, and treat the fix list as the useful part.

  • Frontlatch cannot fix this site today.

    The hosted layer that would make these actions callable — the gateway, the owner verification in front of it, the routing behind it — is being built and is not running. What exists today is the measurement you are reading. Anything else you are told about it, ask for a demo of.

  • No action would ever fire without the owner turning it on.

    When that layer does exist, no live action runs on a business that has not verified that action type itself, set its own limits and connected its own notifications. Test mode is the default. That is a design rule, not a policy page.