Copertina: Bricks: l'alternativa open-source e locale a Clay per il lead enrichment

Bricks: l'alternativa open-source e locale a Clay per il lead enrichment

Una piattaforma MIT, self-hosted e local-first che trasforma CSV grezzi in dati commerciali strutturati con agenti AI, scraping e automazione browser.

31 agosto 20267 min di lettura
Brickslead enrichmentalternativa Clayopen sourceB2B salesagenti AIscrapingself-hosted

Cos'è Bricks

Bricks è una piattaforma open-source di B2B data enrichment rilasciata con licenza MIT e ospitata su GitHub nel repository BraaMohammed/bricks. Si presenta esplicitamente come alternativa locale e self-hosted a Clay.com, uno dei servizi più noti (e costosi) per l'arricchimento dei dati commerciali: partendo da un semplice file CSV di aziende o contatti, Bricks permette di aggiungere colonne calcolate automaticamente — email verificate, informazioni societarie, segnali di mercato, messaggi di outreach personalizzati — usando agenti AI, web scraping e automazione del browser.

L'autore lo ha costruito, racconta nel README, per sostituire un abbonamento Clay da circa 350 dollari al mese. La filosofia è riassunta nel motto del progetto: your data, your machine, your keys — i dati restano sul proprio computer, le chiamate AI usano le proprie chiavi API a prezzi di listino (oppure modelli locali gratuiti), e nessun intermedario applica ricarichi o sistemi di crediti proprietari.

Perché il lead enrichment è un tema caldo

Chi vende servizi B2B — agenzie, consulenti, software house, PMI con un'attività commerciale strutturata — conosce il problema: una lista di lead grezza vale poco. Serve sapere chi è il decisore, qual è la sua email valida, cosa fa davvero l'azienda, che tecnologie usa, se ha appena raccolto un finanziamento. Queste informazioni esistono sul web, ma raccoglierle a mano è lento e farlo con piattaformhe cloud costa parecchio: le soluzioni commerciali combinano un canone base (spesso 200-400 dollari al mese) con un sistema a crediti per ogni singola operazione di enrichment.

C'è poi un tema non secondario per il mercato italiano ed europeo: la riservatezza dei dati. Caricare l'intera lista clienti o prospect su un server esterno significa cedere a terzi un asset commerciale sensibile, con tutte le valutazioni del caso sul piano del GDPR. Un approccio local-first come quello di Bricks rovescia il modello: è il software a scendere dove stanno i dati, non il contrario.

Come funziona: architettura e componenti

Dal punto di vista tecnico Bricks è un'applicazione in due parti. Il frontend è una SPA React 18 con Vite, Zustand per lo stato e Tailwind/shadcn-ui per l'interfaccia a tabella: si lavora su una griglia simile a un foglio di calcolo, in cui ogni colonna può essere programmata. Il backend è un'API Next.js 15 (App Router) che gira in locale sulla porta 3000 e ospita la logica pesante: un pool di browser Puppeteer con gestione della memoria e code, gli endpoint di ricerca e lettura delle pagine, e un gateway AI compatibile con le API OpenAI.

Il cuore concettuale è il Formula Editor: ogni colonna della tabella accetta una "formula" che può essere JavaScript grezzo per pulire e trasformare dati, un prompt AI diretto, uno script Puppeteer, un agente di ricerca web autonomo oppure il modulo di ricerca email. La griglia diventa così uno strumento programmabile, più vicino a un ambiente di data workbench che a un CRM tradizionale.

I moduli principali

Agente di ricerca web autonomo

Si assegna a una colonna un'istruzione in linguaggio naturale — ad esempio "trova l'ultimo round di finanziamento di questa azienda e chi lo ha guidato" — e Bricks avvia un agente che formula query, interroga gli endpoint interni di search e reader, legge il markdown delle pagine trovate e scrive la risposta nella cella. Se il primo tentativo non produce nulla di concreto, l'agente continua a cercare con query riformulate.

Email finder con validazione a cascata

Invece di dipendere da un unico servizio commerciale di ricerca email, l'agente genera sistematicamente i pattern più probabili (nome.cognome@azienda.it e varianti) partendo dai dati del lead, poi valida ogni candidato attraverso una cascata di servizi di verifica (Hunter, MillionVerifier, QuickEmailVerification). Vengono restituite solo email confermate come consegnabili. Sfruttando i free tier dei validatori, l'autore stima 2.000-3.000 email verificate al mese a costo zero.

Sistema di outreach a doppio agente

È il modulo più originale. Invece di generare una bozza con un singolo prompt, Bricks fa girare due agenti in loop: un writer che scrive il messaggio a partire dai dati del lead, e un prospect che interpreta il ruolo di quel lead specifico, legge il messaggio e lo critica. Il ciclo continua finché il prospect non lo approva. Il risultato è un testo già "collaudato" contro la persona target prima di arrivare negli appunti dell'utente.

Motore Puppeteer stealth

Per i siti che bloccano le API standard, richiedono JavaScript o servono contenuti diversi agli IP noti degli scraper, Bricks usa un'istanza Puppeteer locale con plugin stealth, code intelligenti, connection pooling, ritardi "uman-like" e blocco a livello di rete di oltre 30 domini di analytics e tracker. Tutto gira dalla macchina e dall'IP dell'utente, senza abbonamenti a scraping API.

Gateway AI a cascata sui free tier

Il backend espone un endpoint OpenAI-compatible (/api/ai/v1) che smista ogni richiesta di chat completion attraverso una catena di provider con free tier — Ollama, Nvidia NIM, Cloudflare, OpenRouter, Google AI Studio, Groq — finché uno non risponde. I provider in rate-limit vengono automaticamente messi in pausa e saltati. In pratica, qualsiasi SDK OpenAI può puntare al gateway locale e ottenere inferenza a costo (quasi) zero, senza modificare il codice.

Installazione e prerequisiti

Il setup è quello tipico di un progetto Node.js: si clona il repository, si entra nella cartella api/bricks-api, si installano le dipendenze con npm e si avvia il backend con npm run dev. Serve almeno una chiave per la ricerca web (Serper o Tavily); in assenza, il sistema ripiega automaticamente sullo scraping gratuito di DuckDuckGo. Il frontend è già distribuito pubblicamente su Netlify, quindi non è obbligatorio avviarlo in locale: basta aprire l'app, inserire le proprie chiavi AI (OpenAI, Gemini, Groq) oppure l'URL del proprio server Ollama, e caricare un CSV.

Due avvertenze pratiche documentate nel progetto. Primo: poiché il frontend pubblico è servito in HTTPS e il backend gira in locale, i browser Chromium bloccano di default le chiamate verso la rete locale; bisogna disattivare il flag local-network-access-check in chrome://flags. Secondo: per usare Ollama occorre impostare la variabile OLLAMA_ORIGINS e riavviare completamente il servizio, altrimenti il browser rifiuta le richieste cross-origin verso il modello locale. Sono scogli di configurazione, non di codice, ma vanno conosciuti prima di partire.

Limiti e punti di attenzione

Bricks è un progetto giovane, nato come build di sette giorni, e va valutato con onestà. Non offre la profondità di integrazioni di Clay (che dispone di decine di data provider nativi), né la robustezza enterprise: il browser pool e la gestione della memoria sono artigianali, e i workflow complessi richiedono dimestichezza tecnica. È uno strumento da founder smaliziato, growth marketer o sviluppatore che vuole costruirsi il proprio stack di enrichment, non un prodotto per l'utente finale non tecnico.

C'è infine il capitolo responsabilità, che l'autore sottolinea in un disclaimer esplicito: lo scraping va fatto nel rispetto dei termini di servizio dei siti e delle normative applicabili, e l'invio di comunicazioni commerciali non richieste è regolato da leggi anti-spam e, in Europa, dal GDPR. L'email finder va usato con criterio: verificare la deliverability di un indirizzo non equivale ad avere un consenso al contatto.

Perché conta

Al di là del singolo strumento, Bricks è un buon esemplare di una tendenza più ampia: la commoditizzazione dei workflow GTM (go-to-market) grazie agli LLM. Quello che fino a ieri richiedeva piattaforme verticali da migliaia di euro l'anno — ricerca, arricchimento, personalizzazione dei messaggi — oggi si scompone in operazioni elementari (cerca, leggi, scrivi, verifica) che un agente sa orchestrare in locale. Per le PMI e le agenzie italiane, che raramente possono giustificare abbonamenti enterprise americani, strumenti come questo abbassano concretamente la barriera d'ingresso alla prospezione data-driven, a patto di investire tempo tecnico invece che budget.

Dove trovarlo

Il codice è su GitHub all'indirizzo github.com/BraaMohammed/bricks, con licenza MIT. Il README documenta installazione, configurazione del browser, gateway AI e architettura; la demo dell'interfaccia è accessibile pubblicamente, mentre il backend resta rigorosamente locale. Per iniziare bastano Node.js 18+, una chiave di ricerca web e un CSV di prova.

Hai letto fino a qui

🤔 Hai domande su questo argomento?

Posso aiutarti a capire come applicarlo al tuo business. Scegli come vuoi parlarmi.

— oppure —

💬 Chat: risposta immediata · 📧 Email: risposta personale entro 24h · 🔒 Niente spam

Continua a leggere