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