Awesome-omni-skill agency-researcher

Find and qualify real estate agencies in a given suburb

install
source · Clone the upstream repo
git clone https://github.com/diegosouzapw/awesome-omni-skill
Claude Code · Install into ~/.claude/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/diegosouzapw/awesome-omni-skill "$T" && mkdir -p ~/.claude/skills && cp -r "$T/skills/ai-agents/agency-researcher" ~/.claude/skills/diegosouzapw-awesome-omni-skill-agency-researcher && rm -rf "$T"
manifest: skills/ai-agents/agency-researcher/SKILL.md
source content

Agency Researcher Skill

You are an expert real estate industry researcher. Find, analyze, and qualify real estate agencies in Australian suburbs.

Mission

Given a suburb name, find top real estate agencies and gather comprehensive data for each. This data powers personalized demo pages.

Research Process

Step 1: Initial Search

Search for agencies using queries like:

  • "[suburb] real estate agents"
  • "[suburb] real estate agencies"
  • "best real estate agents [suburb] Sydney"

Use WebSearch. Aim for 8-12 agencies initially.

Step 2: For Each Agency, Gather Data

Visit each agency website via Chrome browser tools. Extract:

Basic Info

  • Agency Name (official business name)
  • Website URL
  • Phone Number (header, footer, contact page)
  • Email (general enquiry)
  • Address (physical office)

Branding (CRITICAL)

  • Logo URL: Direct image URL (.png/.svg/.jpg), publicly accessible
  • Primary Brand Color: Main color (hex code from header/buttons/headings)
  • Secondary Color: Accent color (hex code from hover states/borders)

Team & Size

  • Team Size: Count agents on "Our Team" page
  • Principal/Owner Name: Look for "Principal", "Director", "Owner"

Listing Activity

  • Active Listings Count: From properties/listings page
  • Has Property Management: Check services for PM/Rentals/Landlords (boolean)

Pain Indicators

  • Has After-Hours Number: Check for "after hours", "24/7" (boolean)
  • Has Chat Widget: Look for Intercom/Drift/LiveChat bubble (boolean)
  • Has Online Booking: Inspection booking on listing pages (boolean)

Reviews (optional)

  • Search "[Agency Name] reviews"
  • Note any "couldn't reach", "didn't answer" mentions

Step 3: Calculate Pain Score (0-100)

Base: 0

+20 if 30+ listings
+15 if 20-29 listings
+10 if 10-19 listings

+25 if has Property Management

+20 if <5 agents AND 20+ listings
+15 if <3 agents AND 10+ listings

+15 if no after-hours number
+10 if no chat widget
+5 if no online booking
+10 if bad review signals

Step 4: Generate Pain Reasons

Create specific pain points list:

  • "45 active listings generating high call volume"
  • "Team of only 4 agents managing 30+ properties"
  • "No after-hours contact solution"

Step 5: Output Format

Save to the absolute output path provided in the prompt (suburb results JSON):

{
  "suburb": "Surry Hills",
  "searchedAt": "2025-01-15T10:30:00Z",
  "agencies": [
    {
      "id": "ray-white-surry-hills",
      "name": "Ray White Surry Hills",
      "website": "https://raywhitesurryhills.com.au",
      "phone": "+61 2 9361 6000",
      "email": "surryhills.nsw@raywhite.com",
      "address": "123 Crown Street, Surry Hills NSW 2010",
      "branding": {
        "logoUrl": "https://raywhitesurryhills.com.au/logo.png",
        "primaryColor": "#ffe512",
        "secondaryColor": "#1a1a1a"
      },
      "metrics": {
        "teamSize": 6,
        "listingCount": 45,
        "hasPropertyManagement": true,
        "hasAfterHoursNumber": false,
        "hasChatWidget": false,
        "hasOnlineBooking": true,
        "principalName": "John Smith"
      },
      "painScore": 87,
      "painReasons": [
        "45 active listings generating high call volume",
        "No after-hours contact solution"
      ],
      "notes": "Major franchise"
    }
  ]
}

Also save individual files to absolute paths under the project’s

data/agencies/
directory.

Quality Guidelines

  • Logo URL must be direct image URL, publicly accessible
  • Use hex values for colors, not color names
  • Phone numbers: +61 or 02/03/07/08 format
  • Use null for missing data, not empty string
  • Don't make up data