# Industry shortlist: commercial local services

Example run on November 10, 2026, America/Toronto. Offer: intros for local service companies to their own commercial buyers. Scored by hand with winner-clone-industries/rubric.md for a typical US metro. Every count field is "pull to confirm". Scores reflect general knowledge, not a list pull.

run.py command the skill documents (not used in this run; Codex CLI was not available):

```
python3 run.py --industries "commercial landscaping and snow removal; commercial HVAC; commercial pest control; janitorial; commercial roofing; paving and asphalt; contract metal fabrication; commercial window cleaning; residential lawn care" --out out/
```

## Ranked table

| rank | industry | ticket | commercial_buyers | persona_nameable | buyer_pullable | prospect_density | owner_reachable | fit_total | timing_hook | tier | compliance_flag |
|---|---|---|---|---|---|---|---|---|---|---|---|
| 1 | commercial landscaping and snow removal | 3 | 3 | 3 | 3 | 3 | 2 | 17 | 3 | GO | FALSE |
| 2 | commercial HVAC | 3 | 3 | 3 | 3 | 2 | 2 | 16 | 3 | GO | FALSE |
| 3 | commercial pest control | 3 | 3 | 3 | 3 | 2 | 2 | 16 | 2 | GO | FALSE |
| 4 | janitorial | 3 | 3 | 3 | 2 | 3 | 2 | 16 | 2 | GO | FALSE |
| 5 | commercial roofing | 3 | 3 | 3 | 2 | 2 | 2 | 15 | 3 | GO | FALSE |
| 6 | paving and asphalt | 3 | 3 | 3 | 2 | 2 | 2 | 15 | 2 | GO | FALSE |
| 7 | contract metal fabrication | 3 | 3 | 2 | 2 | 2 | 2 | 14 | 1 | GO | FALSE |
| 8 | commercial window cleaning | 2 | 2 | 2 | 2 | 2 | 2 | 12 | 1 | MAYBE | FALSE |
| 9 | residential lawn care | 1 | 1 | 1 | 2 | 3 | 3 | 11 | 2 | NO | FALSE |

Tiers are from the six fit criteria (max 18). Timing is a tiebreak only. Gates: ticket, commercial_buyers, or persona_nameable at 0 or 1 makes the tier NO. GO needs no gate, a total of 14 or more, and every fit criterion at least 2.

Inside a tier, rank is by fit total, then timing_hook, then ticket plus commercial_buyers.

## Reasons

### commercial landscaping and snow removal (GO, 17)

- ticket (3): one won property is typically a recurring grounds or snow contract, or a large install, so one buyer is worth real money over a year.
- commercial_buyers (3): office, retail, industrial, HOA, and campus work is a core line, and those buyers come back.
- persona_nameable (3): standard signers are clear across several types, including office park property managers and HOA board presidents.
- buyer_pullable (3): buyer organizations sit in clean Maps or directory categories, and the signer titles are searchable.
- prospect_density (3): likely many commercial landscapers in a metro this size, pull to confirm.
- owner_reachable (2): many owner-operated shops with a site, plus regional firms reached through a general inbox or branch managers.
- timing_hook (3): a weather season (snow and ice) and a spring contract cycle.
- compliance_flag: FALSE.

### commercial HVAC (GO, 16)

- ticket (3): commercial service and replacement agreements, plus larger project work, are recurring or large-ticket.
- commercial_buyers (3): businesses, campuses, and property managers are a core line.
- persona_nameable (3): facility managers, property managers, and plant maintenance managers are standard signers.
- buyer_pullable (3): commercial properties and facilities titles are listable from Maps, directories, and people search.
- prospect_density (2): some commercial HVAC shops in every metro, pull to confirm.
- owner_reachable (2): reachable through a site or general inbox; some groups are regional.
- timing_hook (3): heating and cooling seasons.
- compliance_flag: FALSE.

### commercial pest control (GO, 16)

- ticket (3): commercial accounts are typically recurring service agreements.
- commercial_buyers (3): restaurants, property managers, warehouses, and similar accounts are a core line.
- persona_nameable (3): property managers, restaurant managers, and warehouse facilities managers are nameable signers.
- buyer_pullable (3): those organizations and titles can be pulled from Maps, directories, and people search.
- prospect_density (2): some commercial-focused operators in every metro, pull to confirm.
- owner_reachable (2): mostly local operators with a site, plus a few national brands reached through a general inbox.
- timing_hook (2): inspection or seasonal treatment cycles.
- compliance_flag: FALSE.

### janitorial (GO, 16)

- ticket (3): commercial cleaning is usually a recurring contract.
- commercial_buyers (3): offices, schools, medical buildings, and similar sites are a core line.
- persona_nameable (3): office property managers, school district facilities directors, and similar titles sign.
- buyer_pullable (2): the buyer organizations are findable; the title search is easy, the Maps category is a little broader.
- prospect_density (3): likely many janitorial companies in a metro this size, pull to confirm.
- owner_reachable (2): many owner-operated firms with a site, plus some regional groups.
- timing_hook (2): budget and contract renewal cycles.
- compliance_flag: FALSE.

### commercial roofing (GO, 15)

- ticket (3): a commercial roof project or a maintenance agreement is a large ticket.
- commercial_buyers (3): property managers, facilities, and institutions are a core line.
- persona_nameable (3): property managers and facilities directors are standard signers.
- buyer_pullable (2): buildings are listable; some buyer types sit inside broader property categories.
- prospect_density (2): some commercial roofers in every metro, pull to confirm.
- owner_reachable (2): reachable through a site or general inbox.
- timing_hook (3): weather damage and inspection cycles.
- compliance_flag: FALSE.

### paving and asphalt (GO, 15)

- ticket (3): parking lot and roadway work is a large project, often with follow-on maintenance.
- commercial_buyers (3): property managers, municipalities among other commercial sites, and facility owners are a core line.
- persona_nameable (3): retail center property managers, industrial facility managers, and similar titles sign.
- buyer_pullable (2): properties are listable; some work sits in broader construction categories.
- prospect_density (2): some paving contractors in every metro, pull to confirm.
- owner_reachable (2): reachable through a site or general inbox.
- timing_hook (2): the construction season and a before-the-freeze window for crack sealing.
- compliance_flag: FALSE. (Municipal work can appear in the mix; it is not the only buyer.)

### contract metal fabrication (GO, 14)

- ticket (3): contract jobs for plants and OEMs are large projects.
- commercial_buyers (3): manufacturers and plants are the core line.
- persona_nameable (2): a signer exists, often a plant or purchasing lead, and the title varies.
- buyer_pullable (2): plants and OEMs can be listed, with more work in directories and people search than in a single Maps category.
- prospect_density (2): some shops in every metro, more in industrial metros, pull to confirm.
- owner_reachable (2): many shops have a site; some are reached through a general inbox.
- timing_hook (1): weak trigger, mostly project demand.
- compliance_flag: FALSE.

### commercial window cleaning (MAYBE, 12)

- ticket (2): repeat jobs or mid-size building contracts, not always a large annual agreement.
- commercial_buyers (2): a real commercial line exists next to residential work at many companies.
- persona_nameable (2): a signer exists, often a property manager or the owner, and the title varies.
- buyer_pullable (2): commercial buildings are listable; the category is a little mixed.
- prospect_density (2): some companies in every metro, pull to confirm.
- owner_reachable (2): mostly local operators with a site.
- timing_hook (1): weak trigger.
- compliance_flag: FALSE.
- Note: usable with a narrower list (one strong persona, a bigger metro) or after a real pull shows enough records.

### residential lawn care (NO, gated)

- ticket (1): occasional small jobs for a consumer. This trips the ticket gate.
- commercial_buyers (1): mostly consumers. This trips the commercial_buyers gate.
- persona_nameable (1): no business decision maker to name in the opener. This trips the persona gate.
- buyer_pullable (2): households can be listed, but they are not commercial buyers for this offer.
- prospect_density (3): likely many lawn care companies in a metro this size, pull to confirm.
- owner_reachable (3): mostly owner-operated with a website.
- timing_hook (2): a growing-season cycle, which does not override the gates.
- compliance_flag: FALSE.
- Tier is NO because of the gates, even though density and reachability are strong.

## Profile for the top GO pick: commercial landscaping and snow removal

This is the industry used for the variables and copy run.

### Personas

- office park property managers
- HOA board presidents
- retail center property managers

### service_need

snow removal this winter

(The November 10 run date sits in the skill's October to December window for this market: "snow removal this winter", only if the prospect lists snow or ice work.)

### Pull plan

Prospect list:

- Maps terms: commercial landscaping, landscape maintenance, snow removal, snow and ice management
- Directory keywords: commercial landscaping, landscape maintenance
- Website fit filter: the company itself does landscape maintenance or snow and ice work for commercial properties
- Lookalikes to drop: residential-only lawn care, landscape architects and designers who only draw plans, nurseries and supply yards, equipment dealers, directories
- prospect_count: pull to confirm

Buyer list, per persona (all counts: pull to confirm):

- office park property managers: office park and office campus listings from Maps or parcel records; title keywords: property manager, property management
- HOA board presidents: HOA and homeowners association community listings; title keywords: board president, HOA president, community manager
- retail center property managers: shopping center and retail plaza listings; title keywords: property manager, retail property manager

### markets.json entry

```json
{
  "market_name": "commercial landscaping and snow removal",
  "fit_definition": "maintains landscapes and/or plows and manages snow and ice for commercial properties (office, retail, industrial, HOAs, apartment communities, campuses), as its own business",
  "lookalikes": "residential-only lawn care or yard services, landscape architects and designers who only draw plans, nurseries and landscape supply yards, equipment dealers, lead marketplaces and directories",
  "buyer_examples": "office park property managers, HOA board presidents, retail center property managers, industrial facility managers, apartment community managers, hospital facilities directors",
  "service_windows": "Oct to Dec: snow removal this winter (only if they list snow or ice work). Jan to Mar: a grounds maintenance contract this spring. Apr to Sep: a grounds maintenance contract, fall cleanup."
}
```

This matches the existing `landscaping_snow` profile already shipped in winner-clone-variables/prompts/markets.json. The entry was not invented for this page.

## Why Ruppert Landscape was the prospect

After the shortlist, the run needed one public prospect website in the top GO industry. Ruppert Landscape's public site states full-service commercial landscaping across the eastern U.S., lists corporate office parks and HOA communities under Who We Serve, and lists snow and ice management, which is required for the November window. That made it a stronger public example than a site that only says "commercial" or does not list snow work.
