מקרה בוחן

מנוע לאיתור לקוחות שאומר לצוות מכירות למי להתקשר, ולמה דווקא היום

לידים שמאותרים במידע ציבורי צרפתי, מקבלים ציון מתוך 100 ותדריך מ-AI שאסור לו להמציא, ונשארים במעקב ב-CRM מובנה.

התפקיד שלי

זה מוצר שלי, שנבנה יחד עם לקוח ראשון: מפיץ של מכונות צילום ותקשורת לעסקים בצרפת. אני תכננתי אותו ואני כותב את כולו, לבד.

המצב

בענף הזה יש סיבה אמיתית אחת שבגללה חברה מחליפה את מכונת הצילום או את ספק הטלפוניה שלה: החוזה הנוכחי עומד להסתיים. המוצר, המחיר והפיץ׳ חשובים הרבה פחות מלהתקשר ברגע הנכון. ליועץ מכירות עם רשימה של שמות חברות אין שום דרך לדעת איזו מהן נמצאת שלושה חודשים לפני הרגע הזה. לכן המשימה אף פעם לא הייתה לכתוב הודעות מכירה טובות יותר. היא הייתה למצוא את התזמון, במידע שכל אחד יכול לקרוא ולאף אחד אין זמן לקרוא, ולשים אותו מול היועץ כרשימה קצרה להיום.

האילוץ

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

אי אפשר היה להרשות ל-AI להמציא דברים. תדריך שיחה שמצטט נתון שגוי עולה ליועץ בשיחה. המודל מקבל רק רשימה קבועה של עובדות, חייב לכתוב ״לא ידוע״ כשמשהו חסר, ובדיקה בשרת שלי זורקת כל תדריך שמכיל מספר או שם שלא היו בעובדות האלה.

לכל שירות חיצוני שעולה כסף יש תקרה יומית והוא נרשם ביומן עלויות, כך שצוות עסוק לא יכול לייצר חשבון מפתיע.

מה בניתי

אפליקציית ווב אחת, בצרפתית, שמשתמשים בה מהטלפון או מהמחשב:

  • איתור לידים ממידע ציבורי. לחברות, האפליקציה משווה שתי תמונות מצב של מרשם החברות הצרפתי ושומרת את מה שהשתנה (מעבר כתובת, סניף חדש, שינוי במספר העובדים), כל שינוי עם התאריך האמיתי שלו. לרוכשים ציבוריים, היא קוראת חוזי רכש שפורסמו ומעריכה מתי כל אחד מהם מסתיים.
  • ציון מתוך 100 עם הפירוט שלו גלוי; 70 הוא הקו ל״איכותי״. לידים ישנים ולידים עם ציון נמוך יוצאים מהרשימה עם הזמן, כך שהיא מתמלאת מחדש מעצמה.
  • רק לידים שאפשר להתקשר אליהם: כל ליד איכותי נבדק שיש לו מספר טלפון צרפתי לפני שהוא מגיע לרשימה.
  • תדריך שיחה לכל ליד: למה להתקשר עכשיו, מה ידוע ומאיפה זה מגיע, ומשפט פתיחה.
  • מערכת CRM מובנית: טבלה שאפשר למיין עם תצוגות שמורות, כרטיסים בטלפון, סטטוסים, תאריכי מעקב שה-AI מציע והיועץ מחליט עליהם, רשימת שיחות יומית, תצוגת תכנון ולוח בקרה.
  • שיחות: מתקשרים בלחיצה, מקליטים ברמקול אחרי הודעה משפטית או מדביקים תמלול; האפליקציה מנסחת את דוח השיחה ונותנת לשיחה ציון. היועץ עורך ומאשר הכול.
  • מגבלות לכל משתמש: מנהל מערכת קובע כמה לידים חדשים כל אחד רשאי לקחת ביום, ודף עלויות מראה כמה הוצא.

המספרים

  • 70 / 100הציון שליד צריך כדי להיחשב איכותי
  • 46נקודות קצה בשרת מאחורי המסכים
  • 101מקרי בדיקה עצמית בסקריפט אחד
  • 209קומיטים, מ-24 בספטמבר עד 9 בנובמבר 2026

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

מה זה, ומה זה לא

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

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

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

מה הייתי עושה אחרת: להפוך את העלייה לפרודקשן לאוטומטית מהשבוע הראשון. פיצ׳רים שהושלמו באוקטובר עדיין חיכו בנובמבר לעלייה ידנית.

הסטאק

  • Next.js
  • TypeScript
  • Claude API
  • Google Speech-to-Text
  • Google Places API
  • Firebase Auth
  • Firestore
  • Cloud Storage
  • Firebase App Hosting
  • Tailwind CSS

לראות

רוצים משהו כזה?

ספרו לי מה אתם בונים, או מה אתם עדיין עושים ידנית, ואני אגיד לכם איך הייתי ניגש לזה. בלי התחייבות.