A browser extension + backend service that monitors real-estate listings on Yad2 and triggers alerts when new apartments match user-specified parameters.
- Automatic polling of Yad2 listings at scheduled intervals.
- Compares new listings against stored records in MongoDB to avoid duplicates.
- Alerts the user (via browser extension notification or badge) when relevant new listings are found.
- Lightweight Chrome Extension for front-end interaction + Node.js/Express backend for logic and data persistence.
- Frontend (Chrome Extension): JavaScript, Chrome Extension API, manifest.json, content/background scripts.
- Backend: Node.js, Express.js, MongoDB (Mongoose), Cron jobs (node-cron or equivalent), Axios/Fetch for API calls.
- Data & Automation: Scheduled tasks compare listing snapshots and trigger notifications when new entries appear.
- The Chrome extension loads in the background (service worker + content scripts) and triggers listing refresh events or user-initiated checks.
- The backend runs a cron job (e.g., every 15-30 minutes) to fetch the latest Yad2 listings via public API endpoint.
- The backend compares fetched listings against the stored listings collection in MongoDB. New listings = not matched in DB.
- When new matches are detected, the backend saves them and sends a notification signal to the extension (via Telegram).
- The extension displays an alert notification with info and link about the apartment.
homefinder/
├── extension/ # Chrome extension source code
│ ├── manifest.json
│ ├── background.js
│ ├── content.js
│ ├── popup.html/js (optional UI)
│ └── assets/
├── backend/ # Node.js / Express backend service
│ ├── server.js # App entrypoint
│ ├── routes/
│ ├── controllers/
│ ├── models/
│ ├── services/ # Fetching and processing logic
│ ├── cron/ # Scheduled tasks definitions
│ └── config/
├── db/ # Database schemas & migrations (if any)
└── README.md # This file
git clone https://github.com/Danmile/HomeFinder---chrome-extension.git
cd HomeFinder---chrome-extensioncd backend
npm install
# configure .env (MONGODB_URI, YAD2_API_ENDPOINT, etc)
npm start- Go to
chrome://extensions/ - Enable Developer mode
- Click Load unpacked → select
extension/folder - The extension icon should appear in your toolbar
- Configure any preferences (if applicable) and allow notification permissions
- Define environment variables in
.env:MONGODB_URI=your_mongo_connection_string YAD2_API_ENDPOINT=https://api.yad2.co.il/… (or scraping endpoint) CRON_SCHEDULE=*/15 * * * * # every 15 minutes ALERT_THRESHOLD_PRICE=… - In
backend/config/, adjust fetch parameters (locations, filters) as needed. - The extension’s popup (if present) may allow user settings such as notification filters, keywords, price limits.
Dan Milevski
Made with ❤️ for smart home seekers.