Papa Rent
One app for Dutch regulated rentals.
Brings social and mid-rent listings from different portals into one feed. Save a search, find matching homes, check eligibility and go straight to the original provider to apply.
01 / Ecosystem
Inside the ecosystem.
Fast listing detection with separate detail enrichment, saved-search matching and original-provider applications.
Hover, focus or select a node to see what happens there. Arrows show the direction of the work.
Selected step
Public housing sources
Source adapters read supported public housing listings, respecting load limits and technical access barriers.
- Public sources leads to Collect + normalise
Collect and normalise listings
Collectors normalise rent, location, area, rooms, segment, allocation model and deadline. Conditional requests and health records support repeated collection.
- Public sources leads to Collect + normalise
- Collect + normalise leads to Listings + events
- Collect + normalise leads to Enrich detailsSeparate queue
Enrich listing details
A separate queue enriches costs, eligibility, links and geocoding. Detection does not wait for every detail request.
- Collect + normalise leads to Enrich detailsSeparate queue
- Enrich details leads to Listings + eventsDetail updates
Listing records and events
The store records new, updated, price-changed, removed and reappearing listings, with conservative handling of partial feeds.
- Collect + normalise leads to Listings + events
- Enrich details leads to Listings + eventsDetail updates
- Listings + events leads to Match new listingsNew events
- Listings + events leads to App + listing detailFeed + facts

Saved searches and filters
People choose area, rent, rooms, segment and tags. Shared matching logic uses saved search preferences.
- Saved radars leads to Match new listingsSearch preferences
Match new listings to searches
New-listing events are matched to the saved radars. Closing-soon reminders remain future work.
- Listings + events leads to Match new listingsNew events
- Saved radars leads to Match new listingsSearch preferences
- Match new listings leads to Inbox + push + email

Inbox, push and email alerts
Implemented inbox, push and email senders use duplicate prevention, quiet hours and daily digest logic. Delivery speed is not claimed as a measured achievement.
- Match new listings leads to Inbox + push + email
- Inbox + push + email leads to App + listing detailListing link

Property details and eligibility
The app brings feed, map, housing facts, allocation model and eligibility context together.
- Listings + events leads to App + listing detailFeed + facts
- Inbox + push + email leads to App + listing detailListing link
- App + listing detail leads to Apply at source
Apply on the original portal
A link opens the original provider in an in-app browser. Papa Rent does not process applications or bypass access barriers.
- App + listing detail leads to Apply at source
Every step, explained.
Public sources
Source adapters read supported public housing listings, respecting load limits and technical access barriers.
- Public sources leads to Collect + normalise
Collect + normalise
Collectors normalise rent, location, area, rooms, segment, allocation model and deadline. Conditional requests and health records support repeated collection.
- Public sources leads to Collect + normalise
- Collect + normalise leads to Listings + events
- Collect + normalise leads to Enrich detailsSeparate queue
Enrich details
A separate queue enriches costs, eligibility, links and geocoding. Detection does not wait for every detail request.
- Collect + normalise leads to Enrich detailsSeparate queue
- Enrich details leads to Listings + eventsDetail updates
Listings + events
The store records new, updated, price-changed, removed and reappearing listings, with conservative handling of partial feeds.
- Collect + normalise leads to Listings + events
- Enrich details leads to Listings + eventsDetail updates
- Listings + events leads to Match new listingsNew events
- Listings + events leads to App + listing detailFeed + facts
Saved radars
People choose area, rent, rooms, segment and tags. Shared matching logic uses saved search preferences.
- Saved radars leads to Match new listingsSearch preferences
Match new listings
New-listing events are matched to the saved radars. Closing-soon reminders remain future work.
- Listings + events leads to Match new listingsNew events
- Saved radars leads to Match new listingsSearch preferences
- Match new listings leads to Inbox + push + email
Inbox + push + email
Implemented inbox, push and email senders use duplicate prevention, quiet hours and daily digest logic. Delivery speed is not claimed as a measured achievement.
- Match new listings leads to Inbox + push + email
- Inbox + push + email leads to App + listing detailListing link
App + listing detail
The app brings feed, map, housing facts, allocation model and eligibility context together.
- Listings + events leads to App + listing detailFeed + facts
- Inbox + push + email leads to App + listing detailListing link
- App + listing detail leads to Apply at source
Apply at source
A link opens the original provider in an in-app browser. Papa Rent does not process applications or bypass access barriers.
- App + listing detail leads to Apply at source
Detail enrichment is separate from detection, so collection does not wait for every detail request.
The current notification matcher handles new-listing events; other event types do not imply implemented closing-soon notifications.
02 / Product
What the product does.
Dutch social and mid-rent housing is spread across many portals. People need to discover relevant listings and reach the right application page before the opportunity closes.
An implemented app, API and collection engine connect housing feeds, saved radars and notification logic.
- Built for
- People seeking social or mid-rent housing in the Netherlands
- My role
- Product concept, research and system design
03 / Capabilities
Features and capabilities.
Explore each part of the product.
Collection & listing dataBring fragmented housing supply into a common listing format.
Source adapters
Source registry and adapters for public JSON, HTML and supported rendered pages
Collection controls
Repeated collection, conditional requests, per-source load limits and run-health records
Normalised fields
Normalised rent, location, area, rooms, segment, allocation model and deadline
Detail enrichment
Separate detail enrichment for costs, eligibility and links, plus PDOK geocoding
Listing events
Events for new, updated, price-changed, removed and reappearing listings
Partial feeds
Partial-feed handling and conservative removal checks
Radars & eligibilitySave what matters to a person’s housing search.
Radar wizard
Radar wizard for municipality or province, segment, maximum rent, rooms and tags
Saved-search controls
Create, edit, pause or delete saved radars
API filters
API filters also support radius, dwelling type, allocation model and excluded labels
Shared matching
Shared matching logic between the API and collection engine
Versioned classification
Versioned market-classification rules
Eligibility context
Household, income and age information shown with listing eligibility criteria
Alerts & inboxTurn a matching new listing into a useful notification.
New-listing matching
New-listing events matched to saved radars
Notification inbox
Notification inbox with read state and listing links
Delivery channels
Implemented push and email senders
Notification controls
Duplicate prevention, quiet hours and daily digest logic
Device health
Grouped push notifications and removal of invalid device tokens
App & listing detailScan the feed, understand a property and continue at its source.
Listing feed
Listing feed with saved-radar filters
Property detail
Detail view with map, housing facts, allocation model and eligibility
Provider application
Original-provider application link opened in an in-app browser
Map previews
Map-based previews instead of copied property photos
Languages
Dutch and English interface
Target platforms
Expo frontend for iOS, Android and web; static web export documented
Account & preferencesKeep search preferences and account controls together.
Authentication
Email-and-password registration, login and persistent sessions
Profile preferences
Profile preferences for language and eligibility information
Alert settings
Per-radar push, email and quiet-hour settings
Push registration
Device registration and notification permission flow
Account controls
Account-data export, account deletion and sign-out
04 / Status
Where it stands.
The app and supporting engine are implemented as a prototype. National coverage, measured alert latency and native-device validation remain unverified. Closing-soon reminders and registration nudges are not yet implemented. Applications stay with the original provider; technical access barriers are not bypassed.
A public copy with fictional data. The production code stays private.
Open the working prototypePassword protected. For access, email hello@rafamaretti.com.
Interface previews use illustrative data.