Skill: blueprintstudioco/contractor-marketing-cowork (version 1.0.0)

--- name: contractor-marketing-cowork description: "Cowork Plugin: AI marketing department for contractors and home service businesses. 12 slash commands + 6 background skills for SEO, ads, social media, proposals, job costing, competitor audits, and more. Works with Claude Cowork, Claude Code, and OpenClaw. Includes 74 proven strategies from Heavy Metric. Use when the user needs marketing help for a local service business." --- # Contractor Marketing — Cowork Plugin AI marketing department for contractors and home service businesses. Built by a contractor, not an agency. ## Commands | Command | What it does | |---------|-------------| | `/contractor-marketing:onboard` | Sets up your business profile (run once) | | `/contractor-marketing:gbp-post` | Generate + publish Google Business Profile posts | | `/contractor-marketing:review-response` | Respond to customer reviews (batch supported) | | `/contractor-marketing:social-batch` | Generate a week of social posts | | `/contractor-marketing:weekly-report` | SEO + ads performance report | | `/contractor-marketing:ad-creative` | Facebook, Instagram, and Google ad creatives | | `/contractor-marketing:content-calendar` | Full month of content + 4 blog post drafts | | `/contractor-marketing:competitor-audit` | Monthly competitor analysis | | `/contractor-marketing:proposal` | Professional proposal from "Mike, 2 acres, $4,600" | | `/contractor-marketing:job-cost` | Job profitability and margin tracking | | `/contractor-marketing:email-sequence` | Automated email sequences | | `/contractor-marketing:lead-followup` | Lead follow-up templates with timing | ## Background Skills Loaded automatically — Claude draws on these when relevant: - **contractor-seo** — local SEO, citations, keywords, service area pages - **contractor-ads** — Meta/Google campaigns, budgets, creative angles - **contractor-social** — content strategy, platform rules, review responses - **contractor-email** — sequences, lead follow-up, newsletters - **contractor-operations** — proposals, job costing, pricing, portfolios - **contractor-positioning** — UVP, messaging, competitive differentiation ## Strategy Library Connected to the Heavy Metric strategy library (74 proven strategies) via API: ```bash curl -s "https://dmlybcnpwtnaadmapdhl.supabase.co/rest/v1/strategies?or=(title.ilike.*QUERY*,category.ilike.*QUERY*)&select=title,slug,content&[REDACTED_SECRET]" \ -H "Content-Type: application/json" ``` ## Connectors Direct integrations or browser automation for: Google Business Profile, Meta Ads, Google Ads, Buffer/Later, Mailchimp/MailerLite, Google Search Console, GA4, Yelp/BBB, Jobber/HouseCall Pro ## Tone Write like a contractor, not an agency.

path: CONNECTORS.md
content: # Connectors

This plugin works with the following services. When a direct connector is not available, Claude uses computer use to navigate the browser.

## Direct connectors (if available)
- **Slack** -- team notifications and alerts
- **Google Drive** -- file storage and sharing

## Via computer use (browser automation)
- **Google Business Profile** -- post updates, respond to reviews, manage Q&A
- **Meta Ads Manager** -- create campaigns, check performance, manage budgets
- **Google Ads** -- search campaigns, keyword management, performance reports
- **Buffer / Later** -- schedule social media posts
- **Mailchimp / MailerLite** -- send email campaigns, manage sequences
- **Google Search Console** -- keyword rankings, indexing status
- **Google Analytics 4** -- traffic reports, conversion tracking
- **Instagram / Facebook** -- direct posting when scheduling tools unavailable
- **Yelp / BBB / directories** -- listing management
- **Jobber / HouseCall Pro** -- CRM data, customer lists, job records

## MCP server
- **Heavy Metric Strategies** -- 74 proven contractor marketing strategies. Claude queries these automatically when generating content, ads, positioning, or recommendations.


path: README.md
content: # Contractor Marketing Plugin

AI marketing department for contractors and home service businesses. Built by a contractor, not an agency.

Works with **Claude Cowork**, **Claude Code**, and **OpenClaw**.

## What it does

| Command | What it does |
|---------|-------------|
| `/contractor-marketing:onboard` | Sets up your business profile (run once) |
| `/contractor-marketing:gbp-post` | Generate + publish Google Business Profile posts |
| `/contractor-marketing:review-response` | Respond to customer reviews (batch supported) |
| `/contractor-marketing:social-batch` | Generate a week of social posts, schedule in Buffer |
| `/contractor-marketing:weekly-report` | SEO + ads performance report from your data |
| `/contractor-marketing:ad-creative` | Facebook, Instagram, and Google ad creatives |
| `/contractor-marketing:content-calendar` | Full month of content + 4 blog post drafts |
| `/contractor-marketing:competitor-audit` | Monthly competitor analysis |
| `/contractor-marketing:proposal` | Professional proposal from "Mike, 2 acres, $4,600" |
| `/contractor-marketing:job-cost` | Job profitability and margin tracking |
| `/contractor-marketing:email-sequence` | Automated email sequences for follow-up and retention |
| `/contractor-marketing:lead-followup` | Lead follow-up templates with timing |

## Background skills (loaded automatically)

Claude draws on these when relevant -- you don't need to invoke them:

- **contractor-seo** -- local SEO, citations, keywords, service area pages
- **contractor-ads** -- Meta/Google campaigns, budgets, creative angles
- **contractor-social** -- content strategy, platform rules, review responses
- **contractor-email** -- sequences, lead follow-up, newsletters, invoicing
- **contractor-operations** -- proposals, job costing, pricing, portfolios
- **contractor-positioning** -- UVP, messaging, competitive differentiation

## Includes: 74 proven strategies

Connected to the [Heavy Metric](https://heavymetric.com/strategies) strategy library via MCP. Claude automatically pulls relevant strategies when generating content, ads, or recommendations.

## Install

### Claude Cowork / Claude Code
```bash
claude plugin marketplace add blueprintstudioco/contractor-marketing
claude plugin install contractor-marketing
```

### OpenClaw
```bash
npx clawhub@latest install contractor-marketing
```

### Manual
Clone this repo and point Claude at it:
```bash
git clone https://github.com/blueprintstudioco/contractor-marketing.git
claude --plugin-dir ./contractor-marketing
```

## Set up scheduled tasks (Cowork)

After installing, set up these recurring tasks so Claude runs your marketing automatically:

| Task | Schedule | Command |
|------|----------|---------|
| GBP post + review check | Every Monday 7am | `/contractor-marketing:gbp-post` then check for new reviews |
| Social media batch | Every Sunday 6pm | `/contractor-marketing:social-batch` |
| Weekly performance report | Every Monday 8am | `/contractor-marketing:weekly-report` |
| Content calendar + blogs | 25th of each month | `/contractor-marketing:content-calendar` |
| Competitor audit | 15th of each month | `/contractor-marketing:competitor-audit` |

Use `/schedule` in Cowork to set these up, or just tell Claude: "Schedule a task to generate my GBP post every Monday at 7am."

## First time setup

1. Install the plugin
2. Run `/contractor-marketing:onboard` -- Claude asks 35 questions about your business
3. Save the generated `business-profile.md` file
4. Set up scheduled tasks (optional but recommended)
5. Start talking to Claude like it's your marketing employee

## Who this is for

Contractors and home service businesses: land clearing, landscaping, roofing, pressure washing, concrete, fencing, tree service, excavation, demolition, painting, HVAC, plumbing, electrical, and any trade that gets customers through local marketing.

## Who this is NOT for

SaaS companies, e-commerce, enterprise marketing teams. Use Anthropic's [official marketing plugin](https://github.com/anthropics/knowledge-work-plugins/tree/main/marketing) instead.

## Cost

The plugin is free. You need Claude Pro ($20/mo) or Claude Code to run it.

## Built by

[Heavy Metric](https://heavymetric.com) -- free marketing tools and strategies for contractors.

Built by a contractor who got tired of paying agencies.


path: commands/ad-creative.md
content: ---
description: Generate fresh ad creatives for Facebook, Instagram, and Google. Optionally creates campaigns via computer use.
disable-model-invocation: true
---

# Ad Creative Generator

Read the user's business profile. Query Heavy Metric strategies via MCP for ad-related strategies (search "advertising" or "ad creative").

## Facebook/Instagram -- 3 variations per batch

For each variation provide:
- Format (single image, carousel, video)
- Primary text (under 125 characters)
- Headline (under 40 characters)
- Description (under 30 characters)
- CTA button (Call Now, Learn More, Get Quote, Book Now)
- Specific image direction (not "show your work" -- describe the exact shot)
- Landing URL

## Angles (rotate through these)
1. **PROOF:** Google rating, review count, jobs completed, years in business
2. **PROBLEM-SOLUTION:** Homeowner's problem in their words, then the result
3. **SCARCITY:** Limited availability, booking ahead, seasonal demand
4. **LOCAL:** Reference specific city or neighborhood from service area
5. **EQUIPMENT:** Feature a specific machine -- contractors and machines look cool

## Google Ads -- 2 responsive search ads
- 15 headlines (30 characters each)
- 4 descriptions (90 characters each)
- Target keywords
- 15 negative keywords

## Performance rules
- Kill any ad with CTR below 1% (Facebook) or 3% (Google) after 1,000 impressions
- Scale winners by increasing budget 20%
- Rotate angles every 2 weeks

## Creating campaigns via computer use
If user says "set it up" or "create the campaign":
1. Open Meta Ads Manager in Chrome
2. Walk through campaign creation step by step
3. Pause before publishing and confirm with user
4. For Google Ads, open ads.google.com and follow same process


path: commands/competitor-audit.md
content: ---
description: Monthly competitor audit. Analyzes competitor websites, reviews, ads, social media, and pricing. Run on the 15th of each month.
disable-model-invocation: true
---

# Competitor Audit

Read the user's business profile for their competitor list. Query Heavy Metric strategies via MCP (search "competitor" or "positioning" or "brand").

## For each competitor (via web research or computer use)

### Website
- Any new pages or content since last audit
- New keywords they appear to be targeting
- Technical changes (speed, design, new features)

### Reviews
- Current Google rating and review count
- New reviews since last audit -- themes in praise and complaints
- How they respond to reviews (or don't)

### Advertising
- Check Meta Ad Library (facebook.com/ads/library) for active ads
- Check Google for their brand name -- are they running search ads?
- Note ad copy, offers, and landing pages

### Social media
- Posting frequency on each platform
- Engagement levels (likes, comments, shares)
- Content themes

### Pricing
- Any visible pricing changes on website
- Offers or promotions being advertised

## Report format

## Competitor Report: [Month Year]

### Landscape Summary
One paragraph on overall competitive environment.

### Scorecards
| Metric | Us | Competitor 1 | Competitor 2 | Competitor 3 |
Google rating, review count, website content pages, social followers, ad activity, posting frequency

### Steal This
What they do well that we should learn from. Be specific.

### Exploit This
What they do poorly that we can capitalize on. Be specific.

### 3 Priorities This Month
Ranked by impact. Specific actions, not vague advice.


path: commands/content-calendar.md
content: ---
description: Generate next month's full content calendar plus 4 blog post drafts. Run on the 25th of each month.
disable-model-invocation: true
---

# Monthly Content Calendar

Read the user's business profile. Query Heavy Metric strategies via MCP for content-related strategies (search "content" or "blog" or "social media").

## User provides
- 2-3 sentences about recent jobs
- Customer questions from the past month
- Any Search Console keyword opportunities (or Claude pulls via computer use)

## Content calendar
4 posts per week across platforms for the entire month.

### Post mix
40% project showcases, 20% educational, 15% behind-the-scenes, 15% social proof, 10% promotional

### For every post
Date/time | Platform | Format (photo/carousel/reel/story) | Image direction (specific) | Instagram caption (hook first, max 5 hashtags) | Facebook caption (no hashtags) | CTA

### Also include
10 Instagram Story ideas: 3 polls, 2 Q&As, 3 behind-the-scenes, 2 reposts

## Blog posts (4 drafts)

### For each post
1. Target keyword from striking-distance keywords. Never target a keyword already ranking #1-3.
2. Title tag under 60 chars with keyword and city
3. Meta description under 155 chars with CTA
4. URL slug: 3-5 words
5. Full article: 1,200-1,800 words

### Article rules
- Open with a real scenario, NOT "Are you looking for..."
- Write like a contractor, not a marketing agency
- Include local references (neighborhoods, county names, landmarks)
- 3+ internal links to service pages
- 1 external link to authoritative source
- FAQ section with 3-4 questions
- End with CTA: phone number and contact page link

### Monthly calendar
Week 1: Educational (how-to, cost guide)
Week 2: Project showcase (from recent job)
Week 3: Seasonal topic
Week 4: Local guide ("Best [service] in [city]")


path: commands/email-sequence.md
content: ---
description: Generate email sequences for post-job follow-up, seasonal re-engagement, win-back campaigns, and monthly newsletters. Optionally sets them up in Mailchimp or MailerLite via computer use.
disable-model-invocation: true
---

# Email Sequence Builder

Read the user's business profile. Query Heavy Metric strategies via MCP (search "email" or "follow-up" or "customer retention").

## Sequences

### 1. Post-job welcome (trigger: after completing a job)
- Day 0: Thank you + Google review link
- Day 7: Check-in + second review request for non-responders
- Day 30: Seasonal maintenance tip relevant to the work done
- Day 60: Referral ask ("Know anyone who needs similar work?")

### 2. Seasonal re-engagement (manual, 6 weeks before busy season)
- Email 1: "We're booking [season] now" + before/after photo
- Email 2 (5 days, non-openers only): Different subject line, same CTA
- Email 3 (10 days): Urgency + limited availability

### 3. Win-back (trigger: 12 months since last service)
- Email 1: "It's been a year since we worked on your property at [street]"
- Email 2 (7 days): Before/after from a job near their area
- Email 3 (14 days): Final check-in, no hard sell

### 4. Monthly newsletter (1st of each month)
3 sections max: project showcase, seasonal tip, CTA. Under 300 words total.

## Email rules
- Every email under 200 words
- Subject lines under 50 characters
- Mobile-first design
- From name: "[First name] at [Business name]"
- Always include unsubscribe + physical address
- Never "I hope this finds you well"
- Never "Dear valued customer"

## Setup via computer use
If user says "set it up":
1. Open Mailchimp (mailchimp.com) or MailerLite (mailerlite.com)
2. Walk through creating each automation sequence
3. Import customer list from CSV if provided
4. Set up triggers and timing
5. Confirm each sequence is active


path: commands/gbp-post.md
content: ---
description: Generate and optionally publish a Google Business Profile post. Rotates through project showcases, seasonal tips, availability updates, and equipment spotlights.
---

# GBP Post Generator

Read the user's business profile. If Heavy Metric strategies are available via MCP, query for relevant strategies (search "google business profile" or "local seo").

## Post rotation
Determine which type is next based on the current week:
- Week 1 of month: Project showcase (ask user for recent job details if not provided)
- Week 2: Seasonal tip tied to their services and current season
- Week 3: Availability update ("booking [month] now")
- Week 4: Equipment or team spotlight

## Post rules
- 100-300 words
- One CTA button (Call, Learn More, or Book)
- 1-2 keywords from their services naturally included
- No hashtags
- Conversational, not corporate
- Capitalize first letter
- Max 1 emoji

## If user wants to publish (computer use)
1. Open Chrome and go to business.google.com
2. Click "Add update" or "Create post"
3. Select "Add update" post type
4. Paste the post content
5. Add CTA button if supported
6. Click "Post"
7. Confirm to user that it was published

## Output
Provide the post text and ask: "Want me to post this to your Google Business Profile, or would you rather copy it yourself?"


path: commands/job-cost.md
content: ---
description: Calculate job profitability and track costs. Paste job data weekly for running totals and margin analysis.
disable-model-invocation: true
---

# Job Costing

Read the user's business profile for equipment list and team.

## Input format
User pastes: "[customer], [hours], [equipment used], [fuel gallons], [crew members], [price charged]"
Or provides in any format. Parse and calculate.

## Calculations

### Equipment cost per hour
(Purchase price / expected lifetime hours) + fuel cost per hour + (annual maintenance / annual hours)
If user has not provided equipment costs, ask once and remember.

### Labor cost per hour
Hourly wage + 25% burden (taxes, insurance, workers comp)

### Overhead per hour
Monthly overhead (insurance, truck, trailer, phone, software, marketing, fuel for driving, rent) / monthly billable hours

### Per job
- Total equipment cost = equipment rate x hours
- Total labor cost = labor rate x hours x crew size
- Materials (if any)
- Fuel cost = gallons x current diesel price
- Total cost = equipment + labor + materials + fuel + (overhead rate x hours)
- Profit = price charged - total cost
- Margin % = profit / price charged x 100

## Weekly report (Friday)
When user pastes multiple jobs:

| Job | Customer | Hours | Revenue | Cost | Profit | Margin |

Summary:
- Total revenue this week
- Total costs
- Total profit
- Average margin %
- Best job (highest margin)
- Worst job (lowest margin) -- diagnose why
- Month-to-date vs revenue target (if set)

## Flags
- Any job under 30% margin: flag and explain what drove costs up
- Any job under break-even: urgent flag
- Equipment cost per hour trending up: maintenance due?


path: commands/lead-followup.md
content: ---
description: Generate lead follow-up sequences for new inquiries. Text and email templates with timing. Speed wins -- first to respond gets the job.
disable-model-invocation: true
---

# Lead Follow-Up System

Read the user's business profile for phone number, services, and CRM.

## When user says "new lead" + details

Generate the full follow-up sequence:

### Website/form lead
- Minute 0: Auto-SMS confirming receipt + ask for property photos
- Minute 0: Auto-email confirming receipt with next steps
- Hour 1: Call attempt (remind user via notification)
- Day 1: SMS with scheduling options ("Reply 1 for morning, 2 for afternoon")
- Day 3: Email with recent project showcase near their area
- Day 5: SMS check-in ("Still interested in getting that quote?")
- Day 7: Closing email ("Just checking in one last time")

### Missed call
- Immediate: SMS ("Sorry I missed your call. I'm [name] from [business]. How can I help?")
- Next day: Call back attempt
- Day 2: SMS with easy reply option

### Facebook/social lead
- Reply on platform first (within 1 hour)
- Then SMS to move off-platform
- Follow day 1-7 sequence

## Template rules
- Texts under 160 characters
- 1 text per day maximum
- Always identify yourself by name and business
- STOP entire sequence the moment they respond
- "Not interested" = one polite reply + permanent stop
- Never more than 7 total touches
- Never send before 8am or after 8pm

## Output
Provide all templates ready to paste into CRM or Twilio. Include timing instructions.


path: commands/onboard.md
content: ---
description: Set up your business profile. Run this first -- Claude asks 35 questions about your business, then saves a profile that every other command uses automatically.
disable-model-invocation: true
---

# Business Profile Onboarding

Ask the user these questions one at a time. Wait for each answer before asking the next. Be conversational, not robotic.

## About the business
1. Business name (exact, as it appears on Google)
2. What do you do? (plain English -- "forestry mulching", "pressure washing", "roofing", etc.)
3. Website URL
4. Phone number
5. Business email
6. Physical address (must match Google Business Profile exactly)
7. Cities/counties/zip codes you serve
8. Ideal customer (type of person, property, budget range)
9. Average job size in dollars
10. Jobs completed per month
11. Google review rating and count
12. Years in business
13. Equipment owned (list major machines)
14. Employees (names and roles)
15. What makes you different from competitors (specific, not "quality work")
16. Top 3-5 competitors (names and websites)
17. Monthly marketing budget (including ad spend)
18. Current marketing activities
19. CRM/job management software (Jobber, HouseCall Pro, ServiceTitan, etc.)
20. Social media accounts (each platform + handle)
21. Google Business Profile status (verified/unverified/none)
22. Busy season vs slow season
23. Business hours
24. Licensed and insured? (numbers if applicable)
25. Biggest marketing problem to solve first

## Tools already set up (yes/no/not sure)
26. Website (what platform?)
27. Google Search Console
28. Google Analytics
29. Google Business Profile (verified?)
30. Facebook Business Page
31. Meta Ads Manager
32. Google Ads account
33. Email marketing tool (which one? how many contacts?)
34. Social media scheduling tool (which one?)
35. Payment methods (cash, check, Zelle, card? which processor?)

After all 35 answers, compile everything into a clean Business Profile document formatted as markdown. Save it to a file called `business-profile.md` in the current directory. Tell the user to keep this file -- every other command in this plugin references it automatically.


path: commands/proposal.md
content: ---
description: Generate a professional branded proposal from brief job details. Input like "Mike, 2 acres, brush clearing, $4,600" and get a full proposal.
disable-model-invocation: true
---

# Proposal Generator

Read the user's business profile for company info, equipment list, and services.

## Input format
User says something like: "[name], [address], [acreage], [what needs done], [price]"
Or provides more detail. Work with whatever they give.

## Generate

### Header
Business name, address, phone, email, website from profile. Logo if available.

### Customer information
Name, property address, contact info (if provided)

### Property assessment
Turn the user's brief notes into professional language. Reference specific conditions, vegetation, terrain as described.

### Scope of work
- Specific services to be performed
- Equipment to be used (pull from their equipment list in profile)
- Expected timeline
- Access requirements

### What is NOT included
Standard exclusions: stump grinding below grade, hauling debris off-site, grading, seeding (unless specified). Customize to their services.

### Timeline
Estimated start date, duration, and completion. Note weather dependencies.

### Pricing
- Line items if multiple services
- Total price
- Payment terms: due upon completion (no deposit unless user specifies otherwise)
- Accepted payment methods from profile

### Terms and conditions
- Change orders require written approval and may adjust price/timeline
- Customer responsible for marking property lines, utilities, underground obstacles
- Cancellation policy: 48-hour notice
- Not responsible for damage to unmarked underground utilities
- Work area should be clear of vehicles, pets, personal items

### Signature block
Customer signature, date, printed name. Company signature line.

## Output format
Clean HTML that can be saved as PDF (Ctrl+P > Save as PDF). Use the business's brand colors if specified in profile.


Security scan verdicts — ClawScan: suspicious | static analysis: suspicious | VirusTotal: clean | SkillSpector: suspicious (CRITICAL)