Find your next apartment in Israel before everyone else does.
Scans Yad2 + Onmap every 15 minutes. Telegrams you the moment a new listing matches your spec β with a one-tap WhatsApp link to the owner and a market-fit score.
The Israeli rental market moves fast. A good listing in a tight neighborhood is gone within hours. Refreshing Yad2 manually doesn't scale and the official saved-search emails are slow and noisy.
appscanner runs the search for you on a 15-minute cadence and only pings when something actually new appears that matches your spec. It also tells you whether the apartment is a deal compared to the local market.
- π‘ Two sources, one feed β Yad2 (via a proxy to bypass anti-bot) and Onmap, deduped to a single stream
- π― Sharp filters β neighborhoods, rooms, price, square meters, floor, amenities, agency/private
- π Smart geo-fallback β when a listing's neighborhood field is empty, coordinates are reverse-geocoded so you don't miss it
- π Market-fit score β ranks every listing 0β100 against your ideal price / size / floor / amenities, with explainable factor breakdown
- πΈ βͺ/mΒ² vs city mean β every alert tells you if the listing is cheap (top 25%) or pricey (bottom 25%) for the city
- π₯ Hot-deal flag β private listings priced β₯10% below city mean get highlighted
- π² Telegram alerts β one message per listing with photo, address, owner phone (where available), prefilled WhatsApp link, and source-deep-link
- π₯ Multi-chat fan-out β DM yourself + share a group chat for collaborative hunting
- π Active hours β pause overnight, scan during the day
- πΊοΈ Web dashboard β searches, optimal ranking, map with clustering, activity charts
- π₯ Shared tracker β collaborative tab for 2-3 roommates: shortlist apartments from any source, track status (interested β contacted β visited β signed), assign who's reaching out, leave notes
You need: Node 20+, a free Supabase project, a Telegram bot (@BotFather β /newbot), and optionally a free ScraperAPI key for Yad2.
git clone https://github.com/roeimichael/appscanner.git
cd appscanner
npm install
cp .env.local.example .env.local # then fill it inApply the schema to your Supabase project (paste both files into the SQL editor, in order):
supabase/migrations/0001_init_appscanner_schema.sql
supabase/migrations/0002_tracker.sqlRun it:
npm run dev
# open http://localhost:3000Open /settings, save your Telegram bot token + chat id, then /searches/new to create your first search.
Free tier on both is plenty.
vercel link
vercel env add SUPABASE_URL production
vercel env add SUPABASE_SERVICE_ROLE_KEY production
vercel env add SCRAPERAPI_KEY production # optional
vercel env add CRON_SECRET production
vercel env add ROOMMATES production # comma-separated names for tracker tab
vercel deploy --prodVercel Hobby cron caps at one fire/day, so the live trigger runs from Supabase:
create extension if not exists pg_cron with schema extensions;
create extension if not exists pg_net with schema extensions;
select cron.schedule('appscanner-scan-15min', '*/15 * * * *', $cron$
select net.http_post(
url := 'https://YOUR-DEPLOYMENT.vercel.app/api/scan',
headers := jsonb_build_object('Authorization', 'Bearer YOUR_CRON_SECRET'),
body := '{}'::jsonb
);
$cron$);After your first deploy, hit /api/scan?force=1&bootstrap=1 once β it backfills the dedup state silently so you don't get a flood of "new!" pings for every listing already on the market.
π₯ 6,800 βͺ (hot deal) β Χ€ΧͺΧ ΧͺΧ§ΧΧΧ
ΧΧΧ¨ ΧΧΧΧ©ΧΧΧͺ β’ Krause 12
4 rooms β’ 95 sqm β’ floor 3
π βͺ72/sqm β 14% below avg, top 25% (cheap)
π€ ΧΧΧ ΧͺΧΧΧΧ (private)
π ΧΧ’ΧΧΧͺ β’ πΏ ΧΧ¨Χ€Χ‘Χͺ β’ π ΧΧ ΧΧ β’ π‘οΈ ΧΧ"Χ
π 050-XXX-XXXX β WhatsApp
π View on Onmap
Next.js 16 Β· TypeScript Β· Tailwind 4 Β· shadcn/ui Β· Supabase Postgres (with pg_cron) Β· Vercel Β· Leaflet Β· ScraperAPI Β· OSM Nominatim Β· Telegram Bot API
- Yad2 hides owner phones behind an authenticated reveal β only the source-deep-link gets sent for Yad2 listings. Onmap exposes phones freely.
- ScraperAPI free tier covers ~5000 reqs/month; default cadence + active-hours stays well under that.
- Designed around the Israeli market β Hebrew neighborhood names, βͺ currency, IL phone format.
MIT β see LICENSE. Use it, fork it, swap in your own city.
