Skip to content
Automation
Skill

/apartment-finder

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

From plugin
hanzi-browse
17512 skills
Install
$ npx -y skills add hanzili/hanzi-browse --skill apartment-finder --agent claude-code

How it fires

How this skill gets triggered: by you, by Claude, or both.

  • Fires itselfAuto-invocation. Claude auto-loads it when your prompt matches the work.Auto-invocation is when the right skill fires by itself at the right moment, driven by a FLOW.md router and a hook, instead of you invoking it by name. It is the difference between a skill being installed and a skill actually getting used.Read the full definition →
  • You can call itInvoke it directly when you want it.
  • Slash command/apartment-finder

Context preview

The summary Claude sees to decide when to auto-load this skill.

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

SKILL.md

apartment-finder.SKILL.md
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. > > 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:**

| Platform | URL | |----------|-----| | Zillow | https://www.zillow.com/homes/for_rent/ | | Apartments.com | https://www.apartments.com/ | | Craigslist | https://[city].craigslist.org/search/apa | | Redfin | https://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]

3. **Wait for explicit approval** before submitting. Never send without confirmation. 4. After sending, take a screenshot as confirmation. 5. 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 application

Read more
Ships withhanzi-browse

The context layer for browsing agents. Your browsing agent keeps failing on real sites — X uses Draft.js, LinkedIn hides the connect button, Gmail needs keyboard shortcuts.

Get the whole plugin

Other skills on hanzi-browse.