Free OpenClaw skill · No signup · v1.0.0

Free OpenClaw Skill for Handyman Businesses: Photo Quote and Triage Agent (Download)

A working OpenClaw skill for handyman businesses running the Mr. Handyman service model. Owns photo-quote triage, marketplace lead routing across Thumbtack, Angi, and TaskRabbit, and the hourly-versus-flat-fee logic that decides which jobs are worth taking, wired into Jobber or Housecall Pro.

Built and maintained by Adhiraj Hangal, OpenClaw Consult. Code I wrote runs inside OpenClaw's source, merged by the project's creator.

Free OpenClaw skill for handyman businesses

12 KB file. Free for any use. Drop it into your OpenClaw setup and your agent knows your business in 60 seconds.

v1.0.0

We email you a copy plus the install notes. One email, no list, no spam.

What this skill does for your handyman businesses

  • Takes photo-and-description inbound inquiries and drafts a tiered quote (hourly minimum, flat fee, multi-day) keyed to your published rate card.
  • Routes Thumbtack, Angi, and TaskRabbit leads through your accept-or-pass rules so you stop paying for jobs you would not take anyway.
  • Compiles the daily job queue with travel time, materials pickup, and the home-services routing order that minimizes drive time.
  • Drafts the repeat-customer recall message at 90, 180, and 365 days for seasonal jobs (gutter clean, weatherstripping, deck refresh, smoke alarms).
  • Flags every job above your trade scope (electrical panel, gas line, structural) for handoff to a licensed sub before the customer expects you to do it.

What's inside this OpenClaw skill

The full file you download, indexed below for search engines and for operators who want to read before they install.

---
name: handyman-photo-quote-agent
description: Photo-quote triage, marketplace lead routing, hourly vs flat-fee logic, and seasonal recall for handyman businesses. Integrates with Jobber, Housecall Pro, Thumbtack, Angi Leads, TaskRabbit.
version: 1.0.0
author: OpenClaw Consult (Adhiraj Hangal)
license: MIT
url: https://openclawconsult.com/skills/handyman-services
---

# OpenClaw Skill: Handyman Photo Quote and Job Triage

## Overview

This skill turns the OpenClaw agent into the lead-triage and quoting layer for
a handyman business running the Mr. Handyman service model. It owns photo-quote
drafting, marketplace lead routing (Thumbtack, Angi Leads, TaskRabbit), the
hourly-versus-flat-fee decision, and the seasonal repeat-customer recall.

It is designed for solo operators and small handyman businesses running 1 to 6
techs, with 200 to 1,500 active customers, on Jobber or Housecall Pro.

## What this skill does

1. Triages photo-and-description inbounds and drafts a tiered quote
2. Routes Thumbtack, Angi, TaskRabbit leads through accept-or-pass rules
3. Decides hourly vs flat fee from your rate card
4. Compiles the daily job queue with travel-time optimized routing
5. Drafts the 90, 180, 365-day recall for seasonal repeat jobs
6. Flags out-of-scope work (electrical panel, gas, structural) for handoff

## Triggers

```yaml
triggers:
  - type: heartbeat
    schedule: "0 7 * * *"           # Daily 7am
    action: triage_overnight_leads

  - type: heartbeat
    schedule: "0/30 * * * *"        # Every 30 min during business hours
    action: poll_marketplace_inboxes

  - type: heartbeat
    schedule: "0 9 * * 1"           # Mondays 9am
    action: compile_seasonal_recall_queue

  - type: on_event
    event: inbox.new_lead
    action: triage_and_draft_quote

  - type: on_event
    event: marketplace.new_lead
    action: apply_accept_rules_and_reply

  - type: on_event
    event: crm.job_completed
    action: log_to_repeat_customer_memory
```

## Workflow: photo quote triage

When a customer sends a photo and a description, the agent:

1. Parses the description into a job type (door repair, ceiling fan install,
   gutter section repair, drywall patch, fence post reset, etc.)
2. Estimates duration: under-2-hour, 2-to-6-hour, multi-day
3. Pulls the matching SKU from the rate card if it is a flat-fee job
4. Applies the hourly-minimum if the job is under 2 hours
5. Tags confidence (high, medium, low) on the quote
6. Drafts the reply with the quote, the timing window, and the next step

Low-confidence quotes get a clarifying question ("can you send a wider photo
showing where it meets the wall") or a site-visit offer instead of a hard
number. The skill will not anchor the customer on a quote the operator
cannot deliver against.

## Workflow: marketplace lead routing

For every Thumbtack, Angi, or TaskRabbit lead, the agent applies the accept
rules:

- Out of zone: auto-pass
- Out of scope (electrical panel, gas line, structural, asbestos, mold,
  full remodel): auto-pass
- Within zone and within scope: draft accept-and-quote reply
- Lead score below the company's threshold: auto-pass

The skill keeps a memory of which marketplaces convert and what the average
cost-per-acquired-job is by marketplace. Once a marketplace's CPA exceeds
your threshold, the skill flags the trend and recommends throttling spend.

## Workflow: hourly vs flat-fee decision

The decision logic, editable in the config:

1. If the job appears in the flat-fee SKU list, quote the flat fee
2. If estimated duration is under 2 hours and not on the flat-fee list,
   quote hourly with the 2-hour minimum
3. If estimated duration is 2 to 6 hours and not on the flat-fee list,
   route to the operator for a flat-fee estimate
4. If estimated duration is over 6 hours, route to the operator for a
   multi-day estimate with materials breakdown

The rule of thumb: flat fee where the operator can estimate accurately,
hourly where the scope is genuinely fuzzy.

## Workflow: travel-time optimized routing

Every morning the agent compiles the day's queue:

1. Reads confirmed appointments from the CRM
2. Reads accepted-but-not-yet-scheduled jobs from the queue
3. Groups jobs by zone (north, south, east, west, central)
4. Sequences within each zone to minimize drive time
5. Builds a materials pickup stop into the morning route if any job needs a
   non-stocked part
6. Drafts the day's schedule for the operator's approval

A solo operator running 4-6 stops per day usually saves 30-60 minutes of
drive time per day with zone batching alone.

## Workflow: seasonal recall

For seasonal repeat jobs the agent maintains a 90, 180, and 365-day recall
cadence:

- Gutter clean: spring and fall recall
- Weatherstripping check: fall recall
- Deck refresh and re-seal: spring recall
- Smoke and CO alarm battery check: annual recall on the anniversary date
- Window screen repair: spring recall
- Pressure wash: spring recall

The skill pulls every customer with a tagged seasonal job and drafts the
recall message at the right window.

## Memory keys

```yaml
memory:
  - key: handy.lead_state[{lead_id}]
    description: Marketplace lead pipeline state
    values: [received, auto_passed, accepted, quoted, won, lost, dormant]

  - key: handy.customer_history[{customer_id}]
    description: Customer service history for recall
    schema: { last_jobs: list, recurring_tags: list, preferred_window: string, ltv: number }

  - key: handy.marketplace_cpa[{marketplace}]
    description: Rolling cost-per-acquired-job by marketplace
    schema: { spend_30d: number, jobs_won_30d: int, cpa: number, conversion_rate: number }

  - key: handy.zone_queue[{zone}]
    description: Pending jobs by zone for routing
    schema: { jobs: list, recommended_day: string, est_drive_minutes: int }
```

## Message templates

```yaml
templates:
  photo_quote_high_confidence:
    channel: sms
    body: |
      Hi {customer_first_name}, this is {operator_first_name} from
      {company_name}. Got your photo of {job_short_description}.

      For this one, I quote {quoted_price} flat. That covers materials and
      labor, takes about {estimated_duration} on-site.

      Open windows this week: {available_windows}

      Want me to lock one in?

  photo_quote_low_confidence_clarifying:
    channel: sms
    body: |
      Hi {customer_first_name}, this is {operator_first_name} from
      {company_name}. Got your photo. To give you an accurate quote, can you
      send me {clarifying_request} (a wider shot, the back side, a tape
      measure across the damaged area, etc.)?

      Once I have that, I will come back with a firm number.

  marketplace_accept_and_quote:
    channel: marketplace
    body: |
      Hi {customer_first_name}, thanks for reaching out. {company_name} can
      handle this. Based on your description, it sounds like
      {job_short_description}.

      My rate is {hourly_rate} per hour with a 2-hour minimum, or
      {flat_fee_estimate} flat if the scope matches what you described.

      I have open slots {next_two_windows}. Want to lock one in?

  seasonal_recall_gutter_fall:
    channel: email
    subject: "Fall gutter clean time?"
    body: |
      Hi {customer_first_name},

      Last fall I cleaned your gutters on {last_gutter_clean_date}. With the
      leaves coming down again, want me to put you on the calendar for the
      fall round?

      My open windows for the next two weeks:
      {available_windows}

      Same rate as last year ({last_year_price}). Reply with a day that
      works.

      {operator_first_name}
      {company_name}

  out_of_scope_handoff:
    channel: sms
    body: |
      Hi {customer_first_name}, thanks for the photo. This one is outside
      what I work on (it is a {out_of_scope_category} job and you want a
      licensed {license_required}).

      A couple of folks in {service_zone} I trust for this:
      {referral_partners}

      Happy to come look at anything else if you need a handyman for the
      next thing on your list.
```

## Required integrations

| Integration             | Purpose                                       | Read | Write    |
|-------------------------|-----------------------------------------------|------|----------|
| Jobber                  | Jobs, customers, quotes                       | yes  | optional |
| Housecall Pro           | Jobs, customers, estimates                    | yes  | optional |
| Thumbtack (via email)   | Marketplace leads                             | yes  | no       |
| Angi Leads (via email)  | Marketplace leads                             | yes  | no       |
| TaskRabbit (via email)  | Marketplace leads                             | yes  | no       |
| Twilio (or similar)     | Outbound SMS                                  | no   | yes      |
| Email provider          | Outbound email                                | no   | yes      |
| Google Maps / Mapbox    | Travel-time routing                           | yes  | no       |
| OpenClaw Memory         | Cross-run state                               | yes  | yes      |
| OpenClaw Heartbeat      | Scheduled cadence triggers                    | yes  | yes      |

Marketplace integration is read-only because Thumbtack and Angi do not
expose broad public APIs for handyman accounts. The skill works off
forwarded lead emails and the operator sends the marketplace reply through
the standard marketplace interface.

## Out-of-scope flag list

```yaml
out_of_scope_default:
  - electrical_panel
  - electrical_subpanel
  - gas_line
  - gas_appliance_hookup
  - structural_framing
  - structural_load_bearing
  - asbestos_disturbance
  - lead_paint_remediation
  - mold_remediation
  - hvac_refrigerant
  - plumbing_main_line
  - roofing_full_replacement
  - chimney_relining
```

Editable. If your business holds an electrical license, remove
electrical_panel from the list. The skill defaults to conservative.

## Configuration

```yaml
config:
  company_name: "Your Handyman Business"
  operator_first_name: "Your First Name"
  approval_mode: operator_approves_all   # or "autonomous_after_2_weeks"
  service_zones:
    - name: "North"
      zip_codes: [00000, 00001, 00002]
    - name: "South"
      zip_codes: [00010, 00011]
  rate_card:
    hourly_rate: 89
    hourly_minimum: 2
    flat_fee_skus:
      - sku: "DOOR-REPAIR-INTERIOR"
        description: "Interior door repair, no new door"
        price: 245
      - sku: "CEILING-FAN-SWAP"
        description: "Ceiling fan swap, existing box"
        price: 189
      - sku: "GUTTER-SECTION-REPAIR"
        description: "Gutter section repair, up to 20 ft"
        price: 295
      - sku: "FENCE-POST-RESET"
        description: "Single fence post reset"
        price: 245
  marketplace_accept_rules:
    min_lead_score: 3
    max_cpa_threshold: 75
  autonomous_template_allowlist:
    - photo_quote_high_confidence_under_300
    - seasonal_recall_gutter_fall
    - seasonal_recall_smoke_alarm
```

## Quick install

```bash
mkdir -p ~/.claude/skills
mv handyman-services.md ~/.claude/skills/handyman-photo-quote-agent.md
# Edit the config block to match your business
```

Launch OpenClaw and the skill is live. Run `triage overnight leads` or
`compile seasonal recall queue` to invoke it on demand, or wait for
Heartbeat to fire it on the configured schedule.

## Want it wired to your stack?

This SKILL.md is the starting point. If you want it plugged into your specific
Jobber or Housecall Pro account, your specific lead marketplace forwarders,
your specific rate card, and your zone routing on a fixed-price two-week
clock, with the founder writing every line of the build, the door is at
https://www.adhirajhangal.com/work

Install in 60 seconds

  1. 1

    Drop the file into your OpenClaw skills directory

    Save the downloaded handyman-services.md as ~/.claude/skills/handyman-photo-quote-agent.md (or scope it in your project-level .claude/skills/). OpenClaw picks up new skill files on next agent launch.

  2. 2

    Connect your Jobber or Housecall Pro plus the lead marketplaces

    Edit the integrations block to point at your Jobber or Housecall Pro account and your Thumbtack, Angi Leads, and TaskRabbit inbox forwarders. Read access to leads, customers, and your rate card is enough to start.

  3. 3

    Start in approval mode, then flip safe templates to autonomous

    Run for two weeks with you approving every outbound quote. The skill's defaults route quotes over $500, multi-day jobs, and any job tagged out-of-scope (electrical panel, gas line, structural) to a human. After two weeks, flip the hourly-minimum and small-flat-fee templates to autonomous on jobs that match the safe-template criteria.

Example conversation

You

Pull this morning's marketplace leads and tell me which to accept.

Agent

Marketplace inbox reviewed. 17 new leads since 6am: 8 Thumbtack, 6 Angi Leads, 3 TaskRabbit. Filtered through your accept rules: 6 are auto-pass (outside service zone, electrical-panel work, full kitchen remodel asks). 11 are within scope: drafted accept-and-quote replies for all 11 using your $89/hour minimum with a 2-hour floor. 3 of the 11 included photos: drafted flat-fee quotes for those (gutter section repair $295, ceiling fan swap $189, fence post reset $245). Routed all 11 for your sign-off. Travel-time optimized: the 5 leads in the north zone fit Tuesday, the 6 in the south zone fit Thursday.

Founder-led · 14 days

Want this photo quote and job triage agent live in your handyman business in 14 days?

Adhiraj ships OpenClaw AI agents into real businesses. Short discovery to map it to Jobber, Housecall Pro, and your lead marketplaces, build in 14 days, then optional ongoing support so your OpenClaw system keeps working.

Build it with me

Common questions

Will this work for a one-person handyman business?

+

Yes, and especially well. The skill replaces the 1 to 2 hours per day that a solo operator spends on quoting, lead-marketplace triage, and customer follow-up. Most solo operators get back a full day per week.

Does it integrate with Thumbtack, Angi, and TaskRabbit directly?

+

Thumbtack and Angi do not offer broad public APIs, so the skill works off your forwarded lead emails and the marketplace inbox text. The skill parses the lead, applies your accept rules, and drafts a reply. The send goes back through the marketplace interface (or via SMS if the marketplace already shared the customer's number).

How does it draw the line on jobs out of scope?

+

The skill ships an out-of-scope flag list: electrical panel work, gas line work, structural framing, asbestos, lead paint, mold remediation, anything that requires a state license your handyman business does not hold. The list is editable. The agent will not auto-accept a job tagged out-of-scope; it routes to you to refer out or pass.

Can it draft photo-to-quote estimates?

+

It drafts a quote from the photo description and the customer's text. The skill does not extract dimensions from a photo with millimeter accuracy. It does a confidence-tagged estimate (high, medium, low) and flags low-confidence quotes for you to review with a site visit or a clarifying question to the customer.

How does it decide hourly versus flat fee?

+

The skill follows your published rate-card rules. Standard rule of thumb: under-2-hour jobs run hourly with a 2-hour minimum; predictable 2-to-6-hour jobs run flat fee from the SKU list; multi-day jobs route to a human estimator. The decision logic is editable per company.

Can I modify this skill?

+

Yes. MIT licensed. Edit the rate card, the accept rules, the marketplace routing, the recall cadences, the out-of-scope list. Most handyman operators fork it inside the first 30 days to match their specific service zone and rate structure.

What does this cost to run on top of OpenClaw?

+

Token cost depends on lead volume. A solo handyman running 30-60 jobs per month sees expected monthly token spend in the $15-$40 range using OpenClaw's default model selection. A 4-tech operation runs $50-$120.

What if my CRM is not Jobber or Housecall Pro?

+

The skill works on any CRM that can export to CSV or push to webhooks, including Workiz, ServiceM8, Kickserv, and Markate. We have wired it to a plain Google Calendar plus Google Sheets setup for a 1-person operation.

Does it replace my own judgment on which jobs are worth taking?

+

No. The skill applies the rules you set. The accept-or-pass logic is yours. The rate card is yours. The skill is the consistent execution of those rules across every inbound lead so a 6pm tired-operator decision does not blow up your margin on a job.

Want it built into your stack on a 14-day clock?

+

Yes. The free SKILL.md is the starting point. If you want it wired into your specific Jobber or Housecall Pro account, your specific lead marketplace forwarders, your specific rate card, and your zone routing on a fixed-price two-week clock, the door is at openclawconsult.com/hire.

Want the full implementation playbook?

Read the deep-dive guide for handyman businesses

The playbook covers workflows, software integrations, compliance, ROI math, and a four-week rollout plan. The skill file above is a working slice of that build.

Read the handyman businesses playbook →

Related free skills

Want it wired to your stack?

The free skill is the starting point. If you want it plugged into your actual software, on a fixed-price two-week clock, with the founder writing every line, this is the door.