City Rental Hunt
/install city-rental-hunt
City Rental Hunt
Turn fuzzy apartment-hunting requests into a repeatable workflow:
- normalize constraints
- generate zone-aware search keywords
- search social listings
- extract listing facts
- filter red flags
- produce a shortlist and contact brief
Quick start
When the user asks to hunt rentals in a Chinese city:
-
Normalize requirements first
- city
- target zones
- budget range
- room count
- must-have constraints
- one-vote vetoes
-
Generate search keywords
- Run:
python3 skills/city-rental-hunt/scripts/keyword_plan.py \ --city 北京 \ --zones "北苑,霍营,清河" \ --budget "6000-9000" \ --rooms "两居" \ --must "整租,电梯,次新" \ --optional "可养猫,房东直租,转租" - This produces reusable search phrases for each zone.
- Run:
-
Search platforms in this order
- First: Xiaohongshu via TikHub
- Second: Douyin via TikHub
- Use the existing social-media skill/tooling instead of inventing new scraping flows.
-
Collect only listing-relevant facts
- platform
- post id / URL
- title / short summary
- price if present
- neighborhood / subway / zone
- freshness
- landlord / agent / unclear
- pet policy if present
- likely keep / maybe / discard
-
Output a shortlist, not a dump
- Keep the result decision-oriented.
- Separate high-confidence leads from weak leads.
Workflow
Step 1 — Normalize the requirement brief
Use this compact schema:
city: 北京
zones: [北苑, 霍营, 清河]
budget: 6000-9000
rooms: 两居
must_have:
- 整租
- 电梯
- 次新/不要老小区
soft_preferences:
- 客厅大
- 房东直租
- 靠近地铁
- 宠物友好
vetoes:
- 老小区
- 合租
- 商住
- 非民水民电
If the user gives vague input, infer only the search structure, not the final preference.
Step 2 — Build search buckets by zone
Do not search one giant keyword first. Split by zone.
For each zone, create 3 buckets:
- broad:
北苑 整租 两居 - quality:
北苑 次新 电梯 两居 - conversion:
北苑 房东直租 两居/北苑 转租 两居/北苑 可养猫
If a known neighborhood appears repeatedly, promote it into its own bucket.
Step 3 — Search Xiaohongshu first
Use TikHub endpoints exposed by the existing social-media skill. Typical flow:
- check
help - check
list-endpoints xiaohongshuwhen needed - search notes with short, high-signal phrases
Prefer short Chinese queries over long natural-language queries. TikHub/XHS search often degrades on long keyword strings.
Step 4 — Search Douyin as a supplement
Use Douyin only after XHS has produced a first-pass pool.
Douyin is useful for:
- video walk-throughs
- “刚空出来” style posts
- transfer/转租 leads
Do not let Douyin dominate the run unless XHS is thin in that city/zone.
Step 5 — Extract and classify leads
For every lead, classify:
- keep: fresh, plausibly matches constraints, enough information to contact
- maybe: missing price / pet policy / building age, but still promising
- discard: clear red flag
Use the red-flag checklist in references/playbook.md.
Step 6 — Produce two outputs
Output A: analyst-facing search record
Include:
- keywords used
- leads found
- keep/maybe/discard reasoning
- repeated neighborhoods worth deeper follow-up
Output B: user-facing morning brief
Include only:
- top leads
- why they matter
- what to contact first
- key uncertainties to verify
Scoring heuristics
Use these dimensions:
- freshness: today / yesterday / within 7 days / stale
- constraint fit: rooms, budget, elevator, new-enough community
- contactability: landlord direct > personal transfer > unclear > obvious agent spam
- risk: old community, no elevator, price missing, ad tone, commercial apartment, shared rental smell
- special upside: pet-friendly, unusually concrete price, exact move-in date, strong transit fit
A listing with incomplete price can still rank high if it is very fresh and structurally fits.
What to avoid
- Do not treat every social post as a real listing.
- Do not present stale posts as active inventory.
- Do not bury the user in 30 weak links.
- Do not confuse “cheap” with “good fit”.
- Do not publish or embed private commute addresses or personal names when turning a private search workflow into a reusable skill.
Default report shape
Use this structure unless the user asks otherwise:
# Rental hunt brief
## Requirement snapshot
## Zones searched
## Top leads
- lead
- lead
- lead
## Backup leads
## Repeated neighborhoods worth deeper checking
## Risks / unknowns to verify
- price
- pet policy
- landlord vs agent
- building age / elevator
## Contact-first order
1. ...
2. ...
3. ...
When to read the reference
Read references/playbook.md when you need:
- a fuller keyword-building pattern
- a reusable evidence schema
- a red-flag checklist
- a morning-brief template
- Make sure OpenClaw is installed (local or Docker)
- Run the install command in chat:
/install city-rental-hunt - After installation, invoke the skill by name or use
/city-rental-hunt - Provide required inputs per the skill's parameter spec and get structured output
What is City Rental Hunt?
Search and triage rental listings from Chinese social platforms, especially Xiaohongshu via TikHub and optionally Douyin, for apartment hunting. Use when a u... It is an AI Agent Skill for Claude Code / OpenClaw, with 120 downloads so far.
How do I install City Rental Hunt?
Run "/install city-rental-hunt" in the OpenClaw or Claude Code chat to install it in one step — no extra setup required.
Is City Rental Hunt free?
Yes, City Rental Hunt is completely free, licensed under MIT-0. You can download, install and use it at no cost.
Which platforms does City Rental Hunt support?
City Rental Hunt is cross-platform and runs anywhere OpenClaw / Claude Code is available (cross-platform).
Who created City Rental Hunt?
It is built and maintained by Dario Zhang (@dario-github); the current version is v0.0.1.