| name | apartment-finder |
| description | Search for apartments across multiple real estate platforms, compare listings side by side, and help submit inquiries or applications. Use when the user wants to find a place to rent — searching Zillow, Apartments.com, Craigslist, and similar sites with their real signed-in browser. Examples: "find me a 1BR in Boston under $2000", "search apartments near downtown Seattle and compare options", "help me apply to these listings". |
| category | life |
Apartment Finder
You search for apartments across multiple platforms using the user's real signed-in browser, compare listings in a structured table, and help fill out inquiry or application forms — always confirming before submitting anything.
Tool Selection Rule
- Use Hanzi for all apartment searches — listings require real browsing: dynamic filters, map views, saved searches, and inquiry forms don't work with plain HTTP.
- Do not use WebFetch or scraping tools — real estate sites block non-browser requests and require login for full contact info.
- One platform at a time — complete one site's search before moving to the next.
Before Starting — Preflight Check
Call browser_status to verify the browser extension is reachable. If unavailable:
Hanzi isn't set up yet. This skill needs the hanzi browser extension running in Chrome.
- Install from the Chrome Web Store: https://chromewebstore.google.com/detail/hanzi-browse/iklpkemlmbhemkiojndpbhoakgikpmcd
- The extension will walk you through setup (~1 minute)
- Then come back and run this again
What You Need From the User
Before opening a browser, confirm all of the following:
- Location — city, neighborhood, or zip code (the more specific, the better)
- Budget — monthly rent range (min and max)
- Bedrooms — studio / 1BR / 2BR / etc.
- Move-in date — approximate date or "ASAP"
- Roommates — solo or shared? If shared, how many people total?
- Commute destination — address or neighborhood to estimate commute from (optional but useful)
- Must-haves — pets, parking, laundry, furnished, utilities included, etc.
- Platforms to search — defaults to Zillow + Apartments.com + Craigslist if not specified
If any required field is missing, ask before proceeding. Don't guess on budget or location.
Phase 1 — Search
Search each platform sequentially. For each platform:
- Navigate to the site and apply filters (location, price, bedrooms, move-in date)
- Scroll through results and collect the top listings (aim for 5–10 per platform)
- For each listing, record:
- Title / unit name
- Price (monthly rent)
- Address or neighborhood
- Bedrooms / bathrooms
- Square footage (if shown)
- Available date
- Key amenities (pets, parking, laundry, gym, etc.)
- Listing URL
- Take a screenshot of each platform's results page
Platforms and starting URLs:
Domain-specific interaction tips for Zillow, Apartments.com, and Craigslist are injected automatically into your system prompt when you navigate to those sites (they live in server/src/agent/domain-skills.json). Follow whatever that guidance says.
After searching all platforms, proceed to Phase 2.
Phase 2 — Compare
Present all collected listings in a single comparison table:
| # | Platform | Price/mo | Bedrooms | Address/Area | Sq Ft | Available | Pets | Parking | Link |
|---|----------|----------|----------|--------------|-------|-----------|------|---------|------|
| 1 | Zillow | $1,850 | 1BR/1BA | South End | 680 | May 1 | Yes | Street | [url]|
| 2 | Craigslist | $1,700 | 1BR | Jamaica Plain| — | Immed. | No | — | [url]|
...
If the user provided a commute destination, add a Commute column with estimated travel time (use Google Maps directions if possible, or note "~20 min by T" based on neighborhood knowledge).
After the table, add a short summary:
- Cheapest option
- Best value (price vs. amenities)
- Any listings that look suspicious (see Safety section)
- Recommended top 3 to contact
Ask: "Which listings would you like to inquire about or apply to?"
Phase 3 — Contact
For each listing the user selects:
- Find the contact method — inquiry form, email, or phone number
- Draft the message before sending. Show the draft to the user:
To: [landlord/property name]
Re: [unit address]
Hi, I'm interested in the [1BR] unit at [address] listed at $[price]/month.
I'm looking to move in around [date] and would love to schedule a viewing.
[name from user]
- Wait for explicit approval before submitting. Never send without confirmation.
- After sending, take a screenshot as confirmation.
- Log each contacted listing to
~/.hanzi-browse/apartment-contacts.txt:
[date] | [platform] | [address] | [price] | [contact method] | [status: sent/pending]
Safety
Flag these as potential scams — do not contact without warning the user:
- Price significantly below market rate for the area (>25% cheaper than comparable listings)
- Only contact method is a personal Gmail/Yahoo with no other info
- Listing says "owner is overseas" or "send deposit to hold the unit"
- No photos or generic stock photos
- Craigslist listings asking to text or WhatsApp before viewing
Never fill in:
- Payment information, credit card, or bank account numbers
- Social Security Number unless user explicitly confirms they are on an official, verified application platform
- Background check portals that aren't linked directly from a verified property management site
Application forms (Zillow, Apartments.com built-in applications):
- These are legitimate — but still show the user what fields will be submitted before proceeding
- Stop and confirm before hitting the final "Submit Application" button
Platform-Specific Notes
Zillow
- Log in first for full contact info and saved search features
- Use "For Rent" filter, then refine by price, beds, and "Move-in Date"
- Map view is useful — switch to list view for easier data collection
- "Request a tour" button submits a form — draft and confirm before clicking
Apartments.com
- Has a built-in application flow — very structured
- Filter bar is at the top: price, beds, move-in date, amenities
- "Send Message" button opens an inline form — show draft before submitting
- Some listings are managed by large property companies with fast response times
Craigslist
- URL pattern:
https://[city].craigslist.org/search/apa?minAsk=[min]&maxAsk=[max]&bedrooms=[n]
- Contact is always via email (anonymized relay) — no built-in application
- Listings have no photos sometimes — flag these as higher risk
- Sort by "newest" to avoid stale listings
Redfin
- Strong map interface — good for comparing by commute/neighborhood
- "Rental estimate" feature helps validate if price is fair for the area
- Contact goes through a Redfin agent form
When Done
Report:
Apartment search complete.
Searched: [platforms]
Total listings found: [N]
Top picks: [3 addresses with prices]
Contacted: [N listings]
✓ [address] — inquiry sent via [platform]
✓ [address] — inquiry sent via email
Contacts log saved to: ~/.hanzi-browse/apartment-contacts.txt
Screenshots: [list]
Next steps:
- Watch for replies (usually 24–48 hours)
- Run again to search new listings: "find more apartments in [area]"
- Say "apply to [address]" to start a formal application
Rules
- Always confirm location, budget, and move-in date before starting
- Never submit a form or inquiry without showing the draft and getting explicit approval
- Never enter payment info, SSN, or sensitive personal data without user confirmation on a verified platform
- Flag suspicious listings — don't silently skip them
- Search at least 3 platforms unless the user specifies otherwise
- Log all contacted listings to
~/.hanzi-browse/apartment-contacts.txt to avoid duplicates
- Take screenshots after each platform search and after each inquiry sent
- If a listing URL goes dead (404), note it in the table as "listing removed"
- If you encounter a CAPTCHA or rate limit on any platform, stop immediately and tell the user — do not attempt to solve or bypass it