Tool tree
gradeNot graded
search_listingsAction
Search RentRadar's 200 San Francisco rental listings. Use whenever the user wants to find apartments, homes, or rentals. Filters by price, bedrooms (0 = studio), neighborhood, transit score, and amenities. Results update the user's browsing grid and map in real time so they can see what the agent found.
View tool JSON
{
"name": "search_listings",
"kind": "act",
"impl": "imperative",
"description": "Search RentRadar's 200 San Francisco rental listings. Use whenever the user wants to find apartments, homes, or rentals. Filters by price, bedrooms (0 = studio), neighborhood, transit score, and amenities. Results update the user's browsing grid and map in real time so they can see what the agent found.",
"inputSchema": {
"type": "object",
"properties": {
"maxPrice": {
"type": "number",
"description": "Maximum monthly rent in USD"
},
"minPrice": {
"type": "number",
"description": "Minimum monthly rent in USD"
},
"beds": {
"type": "integer",
"description": "Number of bedrooms (0 = studio)"
},
"neighborhoods": {
"type": "array",
"items": {
"type": "string"
},
"description": "SF neighborhood names, e.g. [\"Mission District\",\"SoMa\"]"
},
"minTransitScore": {
"type": "number",
"description": "Minimum transit score (0-100)"
},
"requiredAmenity": {
"type": "string",
"description": "A required amenity, e.g. \"Parking spot\", \"Pet friendly\", \"In-unit laundry\""
},
"keywords": {
"type": "string",
"description": "Free text to match in title/address"
},
"sort": {
"type": "string",
"enum": [
"price_asc",
"price_desc",
"commute",
"newest"
],
"description": "Sort order for results"
}
}
}
}rank_by_commuteAction
Rank the currently visible listings (or the user's shortlist) by public-transit commute time to a landmark. Use when the user mentions their workplace, school, or a place they need to commute to. Results reorder the user's grid live and show commute badges on each card.
View tool JSON
{
"name": "rank_by_commute",
"kind": "act",
"impl": "imperative",
"description": "Rank the currently visible listings (or the user's shortlist) by public-transit commute time to a landmark. Use when the user mentions their workplace, school, or a place they need to commute to. Results reorder the user's grid live and show commute badges on each card.",
"inputSchema": {
"type": "object",
"properties": {
"destination": {
"type": "string",
"enum": [
"fidi",
"mission",
"goldengatepark",
"ucsf"
],
"description": "Where to commute to: \"fidi\" = Financial District (work), \"mission\" = Mission District (nightlife), \"goldengatepark\" = Golden Gate Park (outdoors), \"ucsf\" = UCSF Medical Center"
},
"scope": {
"type": "string",
"enum": [
"visible",
"shortlist"
],
"description": "Rank visible results (default) or the user shortlist"
}
},
"required": [
"destination"
]
}
}compare_listingsAction
Compare 2-4 rental listings side by side — price, size, beds/baths, commute, walk/transit scores and amenities. The comparison appears as a banner above the user’s grid. Use when the user asks to compare options or decide between listings.
View tool JSON
{
"name": "compare_listings",
"kind": "act",
"impl": "imperative",
"description": "Compare 2-4 rental listings side by side — price, size, beds/baths, commute, walk/transit scores and amenities. The comparison appears as a banner above the user’s grid. Use when the user asks to compare options or decide between listings.",
"inputSchema": {
"type": "object",
"properties": {
"listingIds": {
"type": "array",
"items": {
"type": "string"
},
"description": "2-4 listing IDs (get them from search_listings results)"
}
},
"required": [
"listingIds"
]
}
}find_similarAnswer
Find listings similar to one the user liked — matching neighborhood, price band, size, type and amenities. Optionally auto-saves the top matches to the user's shortlist. Use after the user hearts a listing or says 'find me more like this'. This demonstrates the agent learning the user's taste.
View tool JSON
{
"name": "find_similar",
"kind": "answer",
"impl": "imperative",
"description": "Find listings similar to one the user liked — matching neighborhood, price band, size, type and amenities. Optionally auto-saves the top matches to the user's shortlist. Use after the user hearts a listing or says 'find me more like this'. This demonstrates the agent learning the user's taste.",
"inputSchema": {
"type": "object",
"properties": {
"listingId": {
"type": "string",
"description": "The listing the user liked"
},
"count": {
"type": "number",
"description": "How many similar listings to find (default 12)"
},
"autoShortlistTop": {
"type": "number",
"description": "Auto-save top N matches to shortlist (default 3, 0 to disable)"
}
},
"required": [
"listingId"
]
}
}shortlist_listingAction
Add or remove a listing from the user's shortlist (the heart/save feature). The user's Saved panel updates instantly so they see the agent's action live. Use when the user asks to save, shortlist, heart, or organize listings.
View tool JSON
{
"name": "shortlist_listing",
"kind": "act",
"impl": "imperative",
"description": "Add or remove a listing from the user's shortlist (the heart/save feature). The user's Saved panel updates instantly so they see the agent's action live. Use when the user asks to save, shortlist, heart, or organize listings.",
"inputSchema": {
"type": "object",
"properties": {
"listingId": {
"type": "string",
"description": "Listing to shortlist"
},
"action": {
"type": "string",
"enum": [
"add",
"remove"
],
"description": "Default: add"
}
},
"required": [
"listingId"
]
}
}schedule_viewingSensitive Action
Book a property viewing (tour) appointment. The booking appears instantly in the user's Viewings panel. Use when the user wants to visit, tour, or schedule a viewing for a listing. Available slots: 10:00, 11:30, 13:30, 15:00, 17:30 — any day within the next 7 days.
View tool JSON
{
"name": "schedule_viewing",
"kind": "transact",
"impl": "imperative",
"description": "Book a property viewing (tour) appointment. The booking appears instantly in the user's Viewings panel. Use when the user wants to visit, tour, or schedule a viewing for a listing. Available slots: 10:00, 11:30, 13:30, 15:00, 17:30 — any day within the next 7 days.",
"inputSchema": {
"type": "object",
"properties": {
"listingId": {
"type": "string",
"description": "Listing to tour"
},
"date": {
"type": "string",
"description": "Day name like \"Saturday\"/\"tomorrow\" or YYYY-MM-DD. Default: next Saturday"
},
"timeSlot": {
"type": "string",
"enum": [
"10:00",
"11:30",
"13:30",
"15:00",
"17:30"
],
"description": "Time slot. Default: 11:30"
}
},
"required": [
"listingId"
]
}
}draft_landlord_messageAction
Draft an inquiry message to a listing's landlord. The draft appears in the listing detail panel for the user to review and send. Use when the user wants to contact a landlord or ask about a property.
View tool JSON
{
"name": "draft_landlord_message",
"kind": "act",
"impl": "imperative",
"description": "Draft an inquiry message to a listing's landlord. The draft appears in the listing detail panel for the user to review and send. Use when the user wants to contact a landlord or ask about a property.",
"inputSchema": {
"type": "object",
"properties": {
"listingId": {
"type": "string",
"description": "Listing to inquire about"
},
"tone": {
"type": "string",
"enum": [
"friendly",
"professional",
"enthusiastic"
],
"description": "Message tone. Default: friendly"
},
"moveInDate": {
"type": "string",
"description": "When the user wants to move in, e.g. \"October 1\""
}
},
"required": [
"listingId"
]
}
}