-
-
Describe the job once in everyday language; Smart Job Brief begins with only the safe tools needed to find the right service.
-
The agent matches the unchanged request to one of 222 Here4Homes routes and opens the exact Artificial Grass service page.
-
When literal matching is weak, a read-only semantic catalogue search safely recovers Builders and records the reason.
-
Two independent jobs are detected and kept as two briefs; permission and finalisation remain unavailable.
-
The homeowner sees what was provided or inferred, then gives separate explicit permission before the final tool appears.
-
A server-validated test receipt confirms success without creating a live lead or contacting a tradesperson.
A homeowner should not need to know what type of tradesman they need
People usually begin with a problem: a lawn that turns to mud, a leaking washing machine, an outside step that is crumbling, or an opening needed for a new extractor. They do not always know which trade handles it, which service page to visit, or which details will help a tradesperson quote accurately.
Here4Homes.uk Smart Job Brief lets a homeowner start with one ordinary-language description. An AI agent can use the website's WebMCP tools to find the right service among 222 published Here4Homes routes, take the homeowner to that exact page, recognise facts they have already supplied, and build a clear job brief without making them work through a fixed generic questionnaire.
The person and agent work on the same visible page. Nothing happens in a hidden agent-only form: the homeowner can see the selected service, the reason for the choice, every provided or inferred fact, every missing gate, and the final test receipt.
Why WebMCP is the right fit
A conventional form-filling agent can click and type, but it still has to guess the website's taxonomy and infer what each control means. WebMCP lets the site offer a small set of page-owned actions with clear inputs, outputs and limits.
Smart Job Brief divides responsibility deliberately:
- The agent handles meaning: it interprets the homeowner's wording and can make a read-only semantic search when a literal match is weak.
- The website handles rules: it owns the service catalogue, allowed choices, ambiguity controls, one-job rule, postcode proof and submission gates.
- The homeowner keeps control: they see and can edit the shared brief, and permission must be given separately and explicitly.
That makes WebMCP more than a faster way to fill a form. It creates a collaborative journey that was difficult to make both capable and understandable with screen automation alone.
What a person and agent can do together
- The homeowner describes the outcome or symptom in their own words.
find_home_servicechecks that unchanged description against the published catalogue and returns route candidates, uncertainty and possible independent jobs.- If the first result is weak,
search_home_service_cataloglets the agent use a concise interpretation such as “builder core drilling external wall”. It is read-only and cannot rewrite the homeowner's words. choose_home_serviceaccepts only a route returned by the current match or latest catalogue search and records the reason on the page.- The agent drafts the visible brief using facts the homeowner actually gave. Job-specific follow-ups appear only when they could add useful detail.
- The page explains every passed and missing readiness gate. The final tool is not available until the brief is complete and the homeowner has given explicit test permission.
The app also recognises when one description contains two separate jobs. It asks for two briefs instead of sending a confused request to the wrong trade.
How we built it
The top-level page registers imperative WebMCP tools with
document.modelContext.registerTool(...). Every input schema rejects extra
properties, tool descriptions state their side effects, and read-only tools are
annotated. An AbortController refreshes the registered set as the journey
changes, so the agent sees only actions that make sense at the current stage.
The WebMCP handlers call the same application controller as the human interface. The server then reconstructs canonical service data and independently rechecks the route, one-job rule, description quality, allowed timing and budget values, full UK postcode proof and permission version. The final tool takes no quote fields of its own; it can submit only the already visible, reviewed state.
The public competition deployment runs on ChatGPT Sites through a
Cloudflare-Worker-compatible Vinext adapter. It is permanently credential-free:
there is no live provider setting, contact identity, tracking client or
conversion writer. It returns only a local hosted-demo receipt and cannot
contact a tradesperson. A separate local owner-controlled adapter can optionally
exercise MyJobQuote's explicit test endpoint with a server-authored synthetic
identity and immutable is_test=1 flag.
Now running on a real consumer website
During the challenge, we moved Here4Homes Smart Job Brief beyond the standalone demonstration and deployed it as a safety-limited production canary on Here4Homes.uk, an established UK home-improvement website.
A compatible agent can understand a homeowner’s description, identify the appropriate trade and service page, validate the postcode and completeness of the brief, load the current MyJobQuote categories and prepare a reviewed quote request. A real request can only be sent after the homeowner has supplied their own contact details, reviewed the request, explicitly accepted the data-sharing terms and separately confirmed the final submission.
Ordinary website visitors continue to see the existing Here4Homes experience. The initial production canary is limited but live.
For unrestricted judging and experimentation, please use our main demonstration URL. The production link is provided as evidence of the same WebMCP approach operating within a real consumer service. Please do not submit fictional contact details or synthetic quote requests on the production website.
Here4Homes existed before the challenge; the WebMCP tools, agent-assisted journey, safety gates and production integration were built during the challenge period.
Testing the real language problem
Home-improvement descriptions are unusually messy, so we did not rely on a few hand-picked demos. The repository contains 635 current routing regressions based on independently written, traceable real-world themes and adversarial variants across 17 public DIYnot sections. Five separate 50-case blind rounds were sealed by hash and run once before round-specific tuning; their original scores and every failure remain in the repository.
Those blind rounds exposed a genuine weakness in deterministic matching: unfamiliar phrasing and some multi-job clauses remained inconsistent even when clear unseen jobs were strong. That evidence changed the product. The fast deterministic matcher remains the website's suggestion and safety guard, while WebMCP gives the agent a controlled semantic recovery step over the complete catalogue. The website still has final authority over ambiguity, job separation and permission.
The complete suite now contains 716 passing behavioural, integrity, server, hosted-boundary and WebMCP tests. That includes tampered and cross-session postcode proofs, repeated final actions, cross-origin requests, contact details hidden in a brief and attempts to bypass a blocked route.
Safety by design
This challenge edition is a fully-working demo version - but it cannot create a live lead. Before a test receipt can be issued, the server must confirm:
- one unambiguous job and an allowed service route;
- sufficiently clear, detailed instructions;
- an allowed timing and budget choice;
- a valid full UK postcode with a short-lived proof tied to the page session;
- no hidden contact details; and
- separate, current, explicit permission for this competition test.
Permission is never inferred from the description or another tool call. An ambiguous provider outcome is locked and never retried automatically. Every screen and receipt says that no live lead, tracking row or tradesperson contact is created.
What existed before, and what is challenge work
The production Here4Homes website, its 222 service pages and its conventional quote journey existed before the challenge. During the challenge period we built this separate Smart Job Brief application: the WebMCP tool layer, natural-language routing and semantic recovery, progressive shared interface, field provenance, ambiguity and multi-job controls, readiness gates, test-only server, evaluation sets, public deployment and open-source repository.
The repository documents that boundary in docs/PREEXISTING_BASELINE.md, and
the dated commit history shows the challenge work.
Challenges and lessons
The hardest problem was not registering a tool. It was deciding what an agent should be allowed to do when language is incomplete, ambiguous or contains two jobs. We learned that useful autonomy does not mean removing every pause. The best experience gives the agent room to interpret meaning while the website keeps deterministic control of consequential rules and the person can inspect both.
We also learned that progressive tool discovery is part of the user experience. An agent should not be offered a finalisation action merely because a button exists somewhere in the application. In Smart Job Brief, the tool set itself communicates what is currently safe and possible.
What's next
A production version would be a separate reviewed release, not a switch in this repository. It would add authenticated contact ownership, production-specific consent and retention review, provider approval, monitoring and a measured rollout alongside the existing Here4Homes journey.
Try the test-only app: here4homes-smart-job-brief.manyhands.chatgpt.site
Source and reproducible tests: github.com/latitude60/here4homes-webmcp-smart-job-brief
Built With
- chatgpt
- chatgpt-sites
- cloudflare
- cloudflare-workers
- javascript
- node.js
- openai
- openai-codex
- react
- vinext
- vite
- webmcp
Log in or sign up for Devpost to join the conversation.