RentSlam - Real-time Rental Alerts & Response Automation
Role: Full Stack Developer
Company: RentSlam (Netherlands rental market)
Goal: Help renters find listings faster and respond first by delivering relevant matches in near real-time.
The challenge
RentSlam’s value proposition depends on speed and signal:
-
Aggregate listings across a very large number of sources
-
Notify users quickly when a matching property appears (sub-minute)
-
Reduce noise (duplicates and irrelevant matches)
-
Help users respond fast enough to actually secure viewings
What I did
I worked across backend, frontend, and reliability to strengthen the end-to-end funnel from ingestion → matching → alerting → response:
1) Made the ingestion pipeline faster and more reliable
-
Built and maintained source connectors (site-specific adapters) and standardized raw data into a single listing schema (price, area, location, availability, images).
-
Improved ingestion robustness with retry/backoff, circuit breakers, and “poison message” handling so one bad source couldn’t stall the pipeline.
-
Added idempotency safeguards (content hashes + source IDs) to prevent duplicate listing records during retries.
Outcome: fresher inventory and fewer ingestion failures during traffic spikes.
2) Reduced duplicates and improved match quality
-
Implemented deduplication for cross-posted listings using address/geo + listing metadata similarity (e.g., rent, bedrooms, sqm) and text/image heuristics.
-
Tuned matching rules for saved searches (hard filters vs preferences) to reduce irrelevant alerts.
-
Added “why you received this alert” explanations to increase user trust and reduce churn.
Outcome: cleaner alerts, higher relevance, better engagement.
3) Improved alert latency to support “be first” behavior
-
Introduced async job processing for matching + notifications with queue workers and rate-limited dispatch per channel.
-
Optimized DB queries (indexes, pagination strategy, selective denormalization where needed) to keep matching fast at scale.
-
Added observability dashboards: p95/p99 alert latency, per-source ingestion lag, and notification delivery success rates.
Outcome: faster end-to-end alerts consistent with RentSlam’s promise of rapid notifications.
4) Shipped UX improvements that increased conversion to actions
-
Built UI flows for search profiles, saved listings, and notification controls in one place (reducing “setup friction”).
-
Added viewing status tracking (saved → contacted → viewing scheduled) to help users manage the process, aligning with the product’s “manage listings/notifications/viewings” story.
-
Improved performance (bundle splitting, query caching, optimistic updates) so the app felt instant on mobile.
Outcome: more users completing setup and acting quickly on listings.
5) Helped renters respond faster (templated / assisted messaging)
-
Built templated message generation and prefill from user profiles (move-in date, job/student, intro).
-
Added guardrails: cooldowns, per-domain throttling, consent gates, and audit logs to prevent accidental spam.
-
Instrumented the funnel (draft created → message sent → reply → viewing) to measure impact.
Outcome: faster responses and more “contact attempts” per high-quality match, supporting RentSlam’s “respond faster” positioning.
Tech stack
-
Frontend: React + TypeScript (Next.js), REST/GraphQL client, component library
-
Backend: Node.js (NestJS/Express)
-
Data: PostgreSQL (+ PostGIS)
- Infra/DevOps: Docker, CI/CD (GitHub Actions)
Results
-
Improved alert delivery performance (lower p95 latency, fewer delivery failures)
-
Reduced duplicate alerts and irrelevant matches, increasing user engagement
-
Increased conversion from “alert received” → “saved/contacted/viewing”
-
Improved system stability and visibility through dashboards and alerting