Appearance
Search & Filters
The listings page supports full-text search, multiple filter criteria, and two view modes (grid and map).
View Modes
Toggle between Grid and Map views using the switcher in the page header:
- Grid view — paginated listing cards (20 per page)
- Map view — interactive Google Maps with clustered markers, bounds-based filtering (up to 200 listings)
All filters apply equally to both views. The view mode is stored in the URL (?view=map) so it can be bookmarked.
The standalone /map route redirects to /listings?view=map.
Text Search
Search by keyword across listing titles and descriptions. The search is debounced (300ms) and uses case-insensitive matching.
Filters
Filters are accessed via the Filters button next to the search bar. This opens a sheet (bottom sheet on mobile, centered dialog on desktop) with all filter controls.
| Filter | Type | Description |
|---|---|---|
| Neighborhood | Multi-select | Filter by one or more Montreal neighborhoods (grouped by borough) |
| Borough | Select | Filter by borough (arrondissement) |
| Property Type | Multi-select | Select multiple types: Apartment, Condo, House, Studio, etc. |
| Price Range | Range slider | Dual-thumb slider ($0–$5,000+, step $50) with range labels below |
| Bedrooms | Multi-select | Select multiple: Studio, 1 bed, 2 beds, 3 beds, 4+ beds |
| Area | Range slider | Dual-thumb slider (0–3,000+ ft², step 50) with range labels below |
| Postal Code | Text input | Filter by postal code prefix (e.g., H2T) |
| Pet Friendly | Toggle | Only show pet-friendly listings |
| Parking | Toggle | Only show listings with parking |
| Laundry | Toggle | Only show listings with laundry |
| Price Drops | Toggle | Only show listings with recent price decreases |
Filters are applied instantly as you adjust them. A "Clear all filters" button resets everything.
The Filters button shows an indicator when any filters are active.
Sorting
- Newest (default) — most recently published
- Oldest — earliest published
- Price: Low to High
- Price: High to Low
- Best Deal — sorted by percentile rank (cheapest relative to market first)
Price Rating
Each listing displays an AutoTrader-style price rating badge showing how it compares to similar listings:
| Badge | Color | Percentile |
|---|---|---|
| Great Deal | Green | Bottom 20% (cheapest) |
| Good Price | Teal | 20–40th percentile |
| Fair Price | Gray | 40–60th percentile (hidden on cards) |
| Above Average | Amber | 60–80th percentile |
| High Price | Red | Top 20% (most expensive) |
Ratings compare the listing's rent against the median for the same bedroom count and neighborhood, using up to 12 months of active and archived listings. Badges are hidden when fewer than 3 comparable listings exist.
On the detail page, additional insights include:
- Percentile explanation: "Cheaper than 78% of 2BR in Mile End"
- Median rent for the comparison group
- Price per sq ft vs. neighborhood average (when area data is available)
- Price drop badge when the scraper detects a rent decrease
Pagination
Results are paginated at 20 listings per page (grid view). Navigate between pages at the bottom of the results. Map view shows up to 200 listings within the current map bounds.
All filter, sort, and view state is synced with URL query parameters, so you can share or bookmark filtered views.
Postal Code Browsing
The Postal Codes section (/postal) lets you browse listings by geographic postal code area.
Index Page
The postal codes index shows an interactive map of all Forward Sortation Areas (FSAs) in Greater Montreal with color-coded boundary polygons. Areas with more listings appear in deeper blue; empty areas are gray. Click any area to see a popup with the FSA name, listing count, and average rent, with a link to the full area page.
Below the map is a searchable grid of all 193 FSA cards showing key stats.
FSA Pages (/postal/:fsa)
Each 3-character FSA (e.g., H2T) has a dedicated page with:
- Boundary map showing the area polygon with price markers for each listing
- Stats bar — listing count, average rent, bedroom breakdown
- Postal codes grid — all full 6-digit codes within the FSA with per-code stats
- Listings grid — all active listings in the area
Full Postal Code Pages (/postal/:fsa-:ldu)
Individual 6-digit postal codes (e.g., H2T-2Y2) show listings at that exact address area with a pin marker on the map and the parent FSA boundary for context.
Coverage includes 193 FSAs across Greater Montreal: H-prefix (Montreal island, Laval) and J-prefix (South Shore, Brossard, Longueuil, and suburbs within ~50km).