agent-zero

Interact with the AgentZero real estate listing tracker (local Rust/Axum backend at http://localhost:8000). Use when asked to add a property listing by URL, refresh an existing listing, or list search profiles/scenarios. AgentZero parses Redfin and REW.ca URLs; Zillow and Realtor.ca are blocked (saves stub only). When a listing is added via agent-suggest, the backend automatically triages it with Claude (assigns a search profile or skips it) — no manual profile selection needed. The Daily Email Scan workflow reads Redfin alert emails via himalaya (IMAP) and opens Gmail in the openclaw browser to extract listing URLs — explicit user consent and himalaya configuration are required before use. After any action, log a summary to agent_zero_logs/YYYY-MM-DD.md in the workspace.

Safety Notice

This listing is from the official public ClawHub registry. Review SKILL.md and referenced scripts before running.

Copy this and send it to your AI assistant to learn

Install skill "agent-zero" with this command: npx skills add yzhong52/agent-zero

AgentZero Skill

AgentZero is a personal real estate listing tracker. Backend at http://localhost:8000.

Prerequisites

Before using this skill, ensure the following are in place:

RequirementDetails
AgentZero backendMust be running at http://localhost:8000 (Rust/Axum). Start with ./scripts/run_backend.sh in the project directory.
ANTHROPIC_API_KEYRequired for automatic listing triage. Set in your environment before starting the backend. Get your key at console.anthropic.com.
himalayaCLI email client — must be installed (brew install himalaya or similar) and configured with your Gmail account via IMAP. Config at ~/.config/himalaya/config.toml.
himalaya credentialsGmail app password or OAuth token stored in keychain. Required for the Daily Email Scan workflow.
openclaw browserUsed by the Daily Email Scan to open Gmail and click listing links. Start with openclaw browser --browser-profile openclaw start.
AgentZero frontend (optional)Vite UI at http://localhost:5173 for reviewing listings. Start with ./scripts/run_frontend.sh.

Privacy & Email Access

The Daily Email Scan workflow accesses your Gmail inbox. Specifically it:

  • Reads envelope metadata (subject, sender, ID) of Redfin alert emails via himalaya envelope list
  • Opens Gmail in the openclaw browser to click through listing links (no email body text is read or stored)
  • Records processed email IDs and listing URLs in ~/.openclaw/<WORKSPACE>/skills/agent-zero/agent_zero_claw_logs/

The scan only runs when explicitly triggered (cron or manual) and is scoped to from:redfin.com emails only.


Key APIs

ActionMethodEndpointBody / Params
Add listing (AI)POST/api/listings/agent-suggest{"url": "..."}
List all listingsGET/api/listings?status=...
Get single listingGET/api/listings/:id

Responses are JSON Property objects (see field list below).

Workflow: Add a Listing by URL

  1. POST /api/listings/agent-suggest with {"url": "<url>"}.
  2. On 409 CONFLICT response: the listing already exists. Parse the JSON body for existing_id and existing_title and report to user.
  3. On success: the listing is saved as AgentPending. The backend agent will further review i.
  4. Log a summary to the daily notes file (see Logging section).

Logging — agent_zero_claw_logs/

After every action (add, refresh, skip), append a summary to:

~/.openclaw/<WORKSPACE>/skills/agent-zero/agent_zero_claw_logs/YYYY-MM-DD.md

Here <WORKSPACE> is the name of your OpenClaw workspace for the specific agent; it can be workspace if it is the default agent; or workspace followed by the agent name.

Create the folder and file if they don't exist.

Format:

## HH:MM — Added listing #38
- **Email:** https://mail.google.com/mail/u/0/#inbox/<thread_id>
- **Title:** 7778 Nanaimo St, Vancouver - 6 beds/3.5 baths
- **URL:** https://www.redfin.ca/...
- **Price:** $2,198,000
- **Status:** AgentPending (agent review running in background)

## HH:MM — Skipped listing
- **Email:** https://mail.google.com/mail/u/0/#inbox/<thread_id>
- **URL:** https://...
- **Reason:** No search profile matches — listing is in Burnaby, all profiles target Vancouver.

The thread_id is the hex ID visible in the Gmail URL after opening the email in the browser.

Workflow: Daily Email Scan (Cron)

This is the workflow for the scheduled daily cron task.

Requires: himalaya configured with Gmail + openclaw browser running. See Prerequisites above.

Step-by-step

  1. Notify your user (via whatever messaging channel is configured): "🏠 AgentZero daily scan starting — checking Redfin emails..."

  2. Write scan-start entry to ~/.openclaw/<WORKSPACE>/skills/agent-zero/agent_zero_claw_logs/YYYY-MM-DD.md immediately (create file/folder if needed):

    ## HH:MM — Scan started
    - Checking Redfin emails...
    
  3. Load state file ~/.openclaw/<WORKSPACE>/skills/agent-zero/agent_zero_claw_logs/processed_emails.json

    • If missing, treat as {"processed_ids": [], "date_counts": {}}
    • Format: {"processed_ids": ["57471", ...], "date_counts": {"2026-03-09": 2}}
    • processed_ids are himalaya envelope IDs (sequential integers) — used to avoid re-processing emails already handled in previous scans
    • Append to log:
      ## HH:MM — Loaded state
      - Already processed IDs: 57471, 57457
      - Processed today: 1
      
  4. Check daily limit: count how many emails were processed today (from date_counts[today]). If ≥ 3, append to log and notify your user:

    ## HH:MM — Skipped scan
    - Reason: Daily limit (3) already reached.
    
  5. List emails via himalaya:

    himalaya envelope list --output json 2>/dev/null
    

    Filter to emails where from.addr contains redfin.com and ID is NOT in processed_ids. Take up to 3 - already_processed_today.

    Append to log immediately:

    ## HH:MM — Found N new Redfin email(s)
    - Email IDs: 57493, 57490
    - Already processed today: 1 (limit: 3)
    
  6. For each email:

    a. Append to log before opening:

    ## HH:MM — Processing email <id>: "<subject>"
    - Opening in Gmail...
    

    b. Open the email in Gmail via browser (run openclaw browser --browser-profile openclaw start if not already running):

    • Navigate to Gmail and search using the subject and sender from the himalaya envelope (e.g. from:listings@redfin.com subject:"<subject from step 5>")
    • Click the matching email to open it

    c. For each listing link visible in the email body:

    • Skip "Go tour it", "Tour home", "Schedule a Tour", and "View all saved open houses" links — these go to booking pages, not listings
    • Skip full address links (e.g. "930 Cambie St, Vancouver, BC, V6B 5X6") — these go to Google Maps
    • Click the short property name links (e.g. "7778 Nanaimo St" or "2094 E 7th Ave") — these are the actual Redfin listing links
    • Read the final URL from the new tab (e.g. https://www.redfin.ca/bc/vancouver/.../home/200788210)
    • Close the tab
    • ⚠️ Never construct or guess URLs. Only use URLs extracted directly by clicking through the email. Do not derive URLs from propertyId params or address strings.
    • Append to log before submitting:
      - Found listing URL: https://www.redfin.ca/...
      - Submitting to AgentZero...
      
    • Submit via Add Listing workflow above (no profile selection needed — agent assigns it)
    • Append result to log immediately after each listing (success, skip, or 409)

    d. Mark email as processed:

    • Update processed_ids in state file with this email ID
    • Increment date_counts[today]
    • Add agent_zero label in Gmail via himalaya:
      himalaya message copy <email_id> "agent_zero"
      
    • Append to log:
      - Email <id> marked as processed.
      
  7. Append final summary to log:

    ## HH:MM — Scan complete
    - Processed N emails, added M listings (K skipped).
    
  8. Notify your user with summary and a prompt to review new listings in the frontend:

    ✅ AgentZero scan complete — processed 2 emails, added 3 listings (agent review running in background).
    
    🏡 New listings will appear in Review once the agent finishes: http://localhost:5173/inbox
    

State file location

~/.openclaw/<WORKSPACE>/skills/agent-zero/agent_zero_claw_logs/processed_emails.json

Source Transparency

This detail page is rendered from real SKILL.md content. Trust labels are metadata-based hints, not a safety guarantee.

Related Skills

Related by shared tags or category signals.

Automation

ImmoScout24 Search

Search ImmoScout24 (Germany) real estate listings using their mobile API. Bypasses anti-bot/DataDome protection. Search apartments, houses for buy/rent with...

Registry SourceRecently Updated
1030Profile unavailable
Automation

Tour Booking

Sub-agent for outbound listing-office calls to request and confirm property showing slots using a provided call script and structured payloads. Use when a pa...

Registry SourceRecently Updated
7000Profile unavailable
General

Real Estate Listing Writer

Turn raw property details into an MLS-ready listing description plus matching Instagram, Facebook, short-form video, and email-blast variants. Use whenever t...

Registry SourceRecently Updated
781Profile unavailable
General

Willhaben Real Estate Search

Search willhaben.at real estate listings (apartments, houses) via their public webapi. No browser needed. Search any Austrian state and district with price/r...

Registry SourceRecently Updated
1070Profile unavailable