JustFix

Other

Use this skill when the user asks for a quote, estimate, price, or "how much" for a UK trades job – electrical, plumbing, locksmith, glazing, carpentry, handyperson, heating, gas, roofing, drains, white goods, or boiler service. Calls the JustFix Estimator MCP server to return a cost breakdown, scope summary, and a tappable booking link that completes the booking in the browser.

Install

openclaw skills install justfix

JustFix Estimator Skill

A drop-in skill that lets your AI agent quote UK trades jobs in real time, and pop the user out to the browser to complete the booking.

JustFix is a UK home-services platform. The skill talks to the public JustFix Estimator MCP server, returns a price breakdown for any of 13 service categories, and produces a tappable booking link the user can complete in their browser.

When to use this skill

Trigger on any of these intents, in any phrasing:

  • "how much for [trades job]"
  • "what would [job] cost"
  • "estimate for [job]"
  • "quote me for [job]"
  • "price for a [trade]"
  • "book a [trade]"
  • "I need a [plumber / electrician / locksmith / etc.]"
  • "my [boiler / lock / drain / tap / window] is broken"
  • "what services does JustFix do"

If the user is outside the UK, mention that JustFix is UK-only and only quote if they confirm they're in the UK or want a UK quote anyway.

How to use this skill

Three tools are available on the MCP. Use them in this order depending on intent:

Tool 1: list_services (when user asks what's available)

Returns the 13 service categories with their hourly rates. Use when:

  • "what services do you offer"
  • "what can I book"
  • The user mentions a job and you're not sure which service code fits

Tool 2: call_out_fee (when user asks about the booking fee)

Returns the flat call-out fee that applies to every booking. Use when:

  • "is there a call-out charge"
  • "what's the minimum"
  • The user wants to understand the total cost ahead of confirming

Tool 3: service-estimate-card (the main one – generates a quote)

Required arguments:

  • service_code (string) – one of the codes from the service-code map below
  • booking_description (string) – a clear one-sentence description of the work

Optional arguments:

  • estimate (number, default 1) – hours estimated to complete the job
  • work_items (array of strings) – optional list of specific tasks within the job

Returns the cost breakdown and a unique booking URL the user can tap to complete the booking on https://my.justfix.app.

Service-code map

Map natural-language descriptions to the right service_code:

User saysservice_code£/hr
electrician, electrical, sockets, lights, wiring, fuse box, fuseelectrical£90
plumber, plumbing, leak, dripping tap, blocked sink, water pressureplumbing£90
locksmith, lock, locked out, change locks, keylocksmith£90
glazier, glazing, broken window, broken glass, replace glassglazing£80
carpenter, carpentry, wooden door, skirting, floorboards, joinerycarpentry£90
handyman, handyperson, odd jobs, mounting, assembly, picture hanginghandyman£80
heating, gas heating, boiler not working, radiator, central heatingheating_and_gas£90
gas appliance, gas hob, gas oven, gas cooker, gas safetygas_appliances£90
roofer, roofing, roof leak, slipped tiles, guttersroofing£80
drains, blocked drain, sewer, drainage, blocked toiletdrains£90
white goods, dishwasher, washing machine, tumble dryer, fridgewhite_goods£55
boiler service, annual boiler check, gas safety certificate, CP12boiler_service£70
anything else / unsuresomething_else£80

If the user describes a job that could fit two codes (e.g. "my dishwasher is leaking" – could be plumbing or white_goods), pick the more specific one (white_goods) and mention you assumed that.

Default-hours estimates

If the user doesn't say how long the job is, use these sensible defaults:

ServiceDefault hoursNotes
boiler_service1Fixed-scope annual check, 1 hour is standard
locksmith1Lock changes take ~1hr
gas_appliances1-2Simple install / safety check
white_goods1Most diagnostics + repairs
electrical2Variable – ask if scope is bigger
plumbing2Variable – ask if scope is bigger
glazing2Small window replacement
carpentry2Standard repair / install
handyman2Catch-all
heating_and_gas2Diagnostics + simple fix
drains2Clearance + camera survey if needed
roofing3Minimum useful site visit
something_else2Catch-all default

Always tell the user how many hours you've estimated so they can correct you. The estimate is just a starting point.

How to render the response

After calling service-estimate-card, render the response as a clean, channel-appropriate card. Always include:

  1. Service name and brief scope (one line)
  2. Cost breakdown as a table or list
  3. The tappable booking URL[Complete booking →](URL) if your channel renders markdown, otherwise the raw URL
  4. Honest scope caveat – the engineer may take more or less time, the final invoice reflects actual time

Markdown template (works in OpenClaw, Hermes, Claude Code, Cursor, Telegram, Slack)

🔧 **[Service Name] Estimate**

**Scope:** [booking_description]
**Estimated duration:** [estimate] hour(s)

| Line | Amount |
|---|---|
| Labour ([hrs] × £[rate]/hr) | £[hrs × rate] |
| Call-out fee | £50.00 |
| **Total estimate** | **£[total]** |

📅 **[Tap to complete booking →]([booking_url])**

_The final invoice will reflect actual time spent on the job._

Plain-text template (for surfaces without markdown)

JustFix [Service Name] estimate
Scope: [booking_description]
Estimated duration: [estimate] hour(s)

Labour: £[hrs × rate]
Call-out fee: £50.00
Total estimate: £[total]

Complete booking: [booking_url]

Final invoice reflects actual time spent.

Inline-button hint (channels that support it)

If your channel exposes inline buttons (Telegram inlinebuttons, Slack blocks, Discord buttons), render the booking URL as a button labelled "📅 Book this job" pointing at the booking_url. The URL is unique per estimate – use exactly what the MCP returns.

What the skill can and can't do

CAN:

  • Quote any of the 13 JustFix service categories
  • Tell the user the hourly rate, call-out fee, and total estimate
  • Generate a unique booking link the user can tap to complete the booking on the JustFix website (a browser pop-out – they finish the booking on my.justfix.app)
  • Handle scope changes ("actually make it 3 hours") – just call the tool again with the updated estimate

CAN'T:

  • Complete the booking itself (needs customer auth and a real form on my.justfix.app)
  • Check engineer availability (not exposed via MCP – the booking page handles this)
  • Take payment (handled on the booking page after the customer confirms)
  • Quote outside the UK (JustFix is UK-only)
  • Quote materials or parts (this is a labour-only estimate)

When the user is ready to book, send them the URL. The booking page asks for their details, postcode, preferred date, and payment.

Tracking and attribution

Each service-estimate-card call returns a URL with a unique chatgpt_booking_link_id UUID query parameter. JustFix uses this to attribute MCP-driven bookings. Don't strip or modify the URL – pass it through to the user exactly as returned.

Sample conversation

User: How much for someone to come and fix my dripping kitchen tap?

Agent: Calls service-estimate-card with service_code=plumbing, estimate=1, booking_description="Diagnose and repair dripping kitchen tap, replace washers or cartridge if needed."

🔧 Plumbing Estimate

Scope: Diagnose and repair dripping kitchen tap, replace washers or cartridge if needed. Estimated duration: 1 hour

LineAmount
Labour (1 hr × £90/hr)£90.00
Call-out fee£50.00
Total estimate£140.00

📅 Tap to complete booking →

The final invoice will reflect actual time spent on the job. If you'd like a bigger or smaller estimate, just say.

Installation per harness

See the install/ folder of the repo for per-harness setup:

  • OpenClawinstall/openclaw.md
  • Hermesinstall/hermes.md
  • Claude Codeinstall/claude-code.md
  • Cursorinstall/cursor.md
  • Codex CLIinstall/codex-cli.md
  • Gemini CLIinstall/gemini-cli.md

All harnesses follow the same pattern: register the MCP endpoint, then put this SKILL.md somewhere the agent's skill discovery can find it.

Support

License

MIT – see LICENSE in the repo. You can use, modify, distribute, and embed this skill anywhere, commercially or not, with attribution.