AgentZero is a personal real estate listing tracker. Backend at http://localhost:8000.
Before using this skill, ensure the following are in place:
| Requirement | Details |
|---|---|
| --- | --- |
| AgentZero backend | Must be running at http://localhost:8000 (Rust/Axum). Start with ./scripts/run_backend.sh in the project directory. |
| ANTHROPIC_API_KEY | Required for automatic listing triage. Set in your environment before starting the backend. Get your key at console.anthropic.com. |
| himalaya | CLI 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 credentials | Gmail app password or OAuth token stored in keychain. Required for the Daily Email Scan workflow. |
| openclaw browser | Used 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. |
The Daily Email Scan workflow accesses your Gmail inbox. Specifically it:
himalaya envelope list~/.openclaw//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.
| Action | Method | Endpoint | Body / Params |
|---|---|---|---|
| --- | --- | --- | --- |
| Add listing (AI) | POST | /api/listings/agent-suggest | {"url": "..."} |
| List all listings | GET | /api/listings | ?status=... |
| Get single listing | GET | /api/listings/:id | — |
Responses are JSON Property objects (see field list below).
/api/listings/agent-suggest with {"url": ""} .409 CONFLICT response: the listing already exists. Parse the JSON body for existing_id and existing_title and report to user.AgentPending. The backend agent will further review i.After every action (add, refresh, skip), append a summary to:
~/.openclaw/<WORKSPACE>/skills/agent-zero/agent_zero_claw_logs/YYYY-MM-DD.md
Here 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.
This is the workflow for the scheduled daily cron task.
> Requires: himalaya configured with Gmail + openclaw browser running. See Prerequisites above.
~/.openclaw//skills/agent-zero/agent_zero_claw_logs/YYYY-MM-DD.md immediately (create file/folder if needed):```markdown
## HH:MM — Scan started
```
~/.openclaw//skills/agent-zero/agent_zero_claw_logs/processed_emails.json {"processed_ids": [], "date_counts": {}}{"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```markdown
## HH:MM — Loaded state
```
date_counts[today]). If ≥ 3, append to log and notify your user:```markdown
## HH:MM — Skipped scan
```
```bash
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:
```markdown
## HH:MM — Found N new Redfin email(s)
```
a. Append to log before opening:
```markdown
## HH:MM — Processing email
```
b. Open the email in Gmail via browser (run openclaw browser --browser-profile openclaw start if not already running):
from:listings@redfin.com subject:"" )c. For each listing link visible in the email body:
https://www.redfin.ca/bc/vancouver/.../home/200788210)```markdown
```
d. Mark email as processed:
processed_ids in state file with this email IDdate_counts[today]agent_zero label in Gmail via himalaya:```bash
himalaya message copy
```
```markdown
```
```markdown
## HH:MM — Scan complete
```
```
✅ 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
```
~/.openclaw/
共 2 个版本