OpenParable
Skip to content
← Back to skills

apartment-finder

Apps & Automation

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".

View on GitHub ↗
QUICK START

How to use this skill

Bring this guide into your coding agent with a prompt tailored to the tool you use.

  1. Open your project in Codex.
  2. Copy and paste the prompt below.
  3. Review files and risks before approving any action.
Prompt to paste
Inspect the Agent Skill at https://github.com/hanzili/hanzi-browse/blob/HEAD/server/skills/apartment-finder/SKILL.md and all supporting files. Report provenance, permissions, scripts, dependencies, and security risks. Propose an exact installation into .agents/skills/apartment-finder, but wait for my approval before writing files or running scripts.

Copying this prompt does not install or run the skill. Review third-party files before use.

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.

  1. Install from the Chrome Web Store: https://chromewebstore.google.com/detail/hanzi-browse/iklpkemlmbhemkiojndpbhoakgikpmcd
  2. The extension will walk you through setup (~1 minute)
  3. Then come back and run this again

What You Need From the User

Before opening a browser, confirm all of the following:

  1. Location — city, neighborhood, or zip code (the more specific, the better)
  2. Budget — monthly rent range (min and max)
  3. Bedrooms — studio / 1BR / 2BR / etc.
  4. Move-in date — approximate date or "ASAP"
  5. Roommates — solo or shared? If shared, how many people total?
  6. Commute destination — address or neighborhood to estimate commute from (optional but useful)
  7. Must-haves — pets, parking, laundry, furnished, utilities included, etc.
  8. 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:

  1. Navigate to the site and apply filters (location, price, bedrooms, move-in date)
  2. Scroll through results and collect the top listings (aim for 5–10 per platform)
  3. 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
  4. Take a screenshot of each platform's results page

Platforms and starting URLs:

PlatformURL
Zillowhttps://www.zillow.com/homes/for_rent/
Apartments.comhttps://www.apartments.com/
Craigslisthttps://[city].craigslist.org/search/apa
Redfinhttps://www.redfin.com/apartments-for-rent

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:

  1. Find the contact method — inquiry form, email, or phone number
  2. 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]
  1. Wait for explicit approval before submitting. Never send without confirmation.
  2. After sending, take a screenshot as confirmation.
  3. 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