Skip to main content
Digi4

Digi4 Prospector — B2B Lead Sourcing Engine

A signal-and-audit engine that detects, verifies and prioritizes prospects before any first contact.

Design & development

Delivered at Digi4, where I am Tech Lead & IT Project Manager.

Angular Node.js Express MySQL Playwright Gemini AI
73
Leads generated (test run)
36+
Sourcing modules
29
Commits in ~4 weeks

The challenge

At Digi4, a Moroccan software agency targeting the French market, sales prospecting ran on time-consuming manual scouting: spotting companies with a genuine digital gap (an aging website, an outdated tech stack, no CRM) meant hours scattered across directories, social networks and word of mouth, with no technical check ever confirming the diagnosis before the first contact. Saad built Digi4 Prospector to replace that guesswork with a measurable signal: continuously detect companies showing a real digital gap, then audit them first-hand with genuine technical tools before a salesperson ever reaches out.

The solution

The core of the system is a six-stage pipeline, each stage independent and replayable:

  • Sourcing — over 36 scheduled harvester modules pulling from the French SIRENE registry, France Travail job postings, tender/legal-notice registries (BOAMP, BODACC, TED), and international registries (UK Companies House, Norway's BRREG, GLEIF)
  • Normalizer — drops legally-protected records, deduplicates, disqualifies poor fits
  • Enrichment — contact/email discovery with mail-server validation
  • Audit Engine — a genuine technical audit via Playwright and Lighthouse
  • Prioritizer — a weighted heat score
  • AI Brief Generator — a channel-agnostic, actionable sales brief

A human then picks the outreach channel — cold email, a warm partner introduction, a marketplace proposal, or an inbound reply — with cold email deliberately ranked last.

The results

The sourcing-and-audit engine, the one layer that is fully operational today, has already produced measurable results across test runs: one run generated 73 leads (56 queued, 12 resolving, 4 audited, 1 contacted), a SIRENE harvesting pass kept 78 out of 100 candidate companies after filtering, and a BOAMP tenders pass kept only 7 out of 50 as good fits. The cold-email automation layer stays deliberately gated behind manual validation: it will only ship once a hand-built pilot of 30-50 leads produces 2-3 real conversations — a milestone not yet reached.

Methodology and project management

An internal audit caught a bug before launch that would have silently broken the tool: "signal" is a reserved keyword in MySQL/MariaDB, which corrupted the core leads table the first time the schema actually ran — fixed by backtick-quoting the name across the schema and models. The database deliberately carries no foreign key constraints; integrity is enforced in application code through a shared Repository base class, parent-existence pre-checks, transactional cascades, and a weekly orphan-sweeper cron job. The team also refuses to automate cold email until a manual pilot validates the channel — a deliberate anti-premature-automation discipline.

Technical architecture and performance

The backend runs on Node.js/Express 4 with JWT authentication via Passport, serving an Angular 19 frontend styled with Tailwind 3, backed by MySQL 8 (database digi4_prospector). The audit engine combines Playwright, Lighthouse, the Google PageSpeed Insights API and the Chrome UX Report for real performance measurements rather than guesses. The AI layer is provider-swappable — Gemini as the free-tier default, with fallback to OpenAI, Anthropic, Groq, Cerebras, OpenRouter or Mistral — and systematically strips personal data before any call to the free-tier API, re-inserting it locally in Node once the response comes back. Built across 29 commits over roughly four weeks.

AI-Augmented Delivery Enablement

Common questions about this kind of engagement

Have a similar project?

Get in touch to discuss it.

Chat on WhatsApp