כל הפרויקטים

פלטפורמת אגרגציה לנדל"ן — ישראל

פיד מאוחד בזמן אמת מיד2, מדלן, Homeless ופייסבוק — מנורמל ב-AI בעברית.

המטרה

חיפוש דירה בישראל דורש ניטור 5+ פלטפורמות פעמים רבות ביום בזמן שדירות נעלמות תוך דקות. המטרה הייתה אגרגטור אחד בזמן אמת שנותן יתרון של ראשון.

הפתרון

פלטפורמת פרודקשן מקצה לקצה: סקרייפרים ב-Python/Playwright ל-4 מקורות ישראלים בתדר 3–10 דקות, backend ב-Node.js/Express עם Redis+Bull, נרמול טקסט עברי ב-OpenAI gpt-4o-mini, שכפול תמונות ל-S3, MongoDB, frontend Vue 3 + Tailwind מובייל-פירסט, בודק liveness, מנוע התראות, ותשתית AWS מלאה ב-Terraform.

עיקרי הדברים

  • 4 מקורות הטרוגניים מאוחדים דרך base_scraper משותף + שכבת נרמול AI
  • ~0.002$ למודעה לנרמול עברית מלא ב-AI
  • soft-delete + שכפול תמונות ב-S3 הופכים מקורות עוינים לנתונים עמידים
  • כל ה-stack ב-AWS מסופק ב-Terraform (EC2, ALB, CloudFront, Route53)

האתגר

פייסבוק מזהה וחוסם בוטים בצורה אגרסיבית, אבל הוא המקור הכי טרי של מודעות אמיתיות.

מנהל חשבונות מבוסס Playwright שמנהל sessions מחוברים, שומר עוגיות, מגביל ל-instance יחיד דרך thread-pool ייעודי, ו-backoff על דפי challenge.

ארבעה מקורות עם ארבעה מבנים שונים — JSON API, GraphQL, HTML, וטקסט חופשי בעברית.

class מופשט base_scraper עם מחזור חיים קבוע fetch→parse→normalize→persist, ו-OpenAI gpt-4o-mini כמנרמל אוניברסלי לטקסט חופשי בעברית (~0.002$ למודעה) כך שהקוד אחרי כן אדיש למקור.

מודעות נעלמות תוך דקות — הסקרייפרים חייבים לרוץ כל כמה דקות בלי לחטוף חסימות IP/מכסה.

APScheduler עם executor לכל מקור (Facebook 10 דק' יחיד, יד2/Homeless/מדלן 5, liveness 30), סקרייפרים resumable, ו-BrightData ליד2. misfire_grace_time מכסה חלונות פריסה.

URLs של תמונות במקור פגי תוקף ומודעות נמחקות לפני שמשתמשים רואים אותן.

הורדת כל התמונות ל-S3 בסריקה ראשונה והגשה דרך CloudFront. יחד עם soft delete (`isActive: false`) ההקשר ההיסטורי נשמר מעבר לחיי המקור.

מה נמסר

  • סקרייפרים ב-Python (פייסבוק, יד2, מדלן, Homeless) עם base class משותף
  • Backend ב-Node.js/Express עם תור אסינכרוני Redis+Bull
  • Frontend ב-Vue 3 + Tailwind מובייל-פירסט + דאשבורד admin
  • Terraform IaC ל-AWS (EC2, ALB, CloudFront, S3, Route53, ACM)
  • שירות APScheduler עם executors נפרדים ובודק liveness
  • מסמך ארכיטקטורה PROJECT.md

תוצאות

4

מקורות משולבים

3–10 min

תדירות רענון

~$0.002

עלות AI למודעה

Terraformed AWS

תשתית

מה זה לימד אותי

  • ל-NLP בעברית על תוכן משתמש, gpt-4o-mini בנקודה המתוקה של דיוק/עלות שבה regex נכשל
  • soft-delete + שכפול תמונות הופכים data חולף ל-dataset עמיד
  • base_scraper משותף הופך הוספת מקור לעוד כמה מאות שורות, לא pipeline חדש