Skip to content

Pipeline automatizzata per la ricerca di acceleratori in Europa e l'analisi dei portfolio startup.

Notifications You must be signed in to change notification settings

Luigina2001/StartupScoutingAI

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

23 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

logo

Startup Scouting AI

Google Apps Script Gemini API Status

Un agente intelligente integrato in Google Sheets per automatizzare il discovery di Acceleratori e lo scouting di startup in Europa.

Questo progetto automatizza il processo di ricerca e analisi di acceleratori e startup attraverso una pipeline integrata in Google Sheets. Funziona su tre livelli:

  1. Ricerca Acceleratori: identifica automaticamente nuovi programmi di accelerazione in Europa.
  2. Scouting Startup: estrae e analizza i portfolio degli acceleratori.
  3. Generazione Pitch: crea value proposition standardizzate per ogni startup.

Google Sheet


⚙️ Installazione e Configurazione

Per utilizzare il tool, è necessario installare il codice (o aprire il foglio condiviso) e configurare obbligatoriamente la Gemini API Key (ottenibile su Google AI Studio).

1. Installazione

Se parti dal codice sorgente su GitHub, segui questi passi. Se hai già accesso al Google Sheet pronto, salta direttamente al punto 2. Configurazione Sicurezza.

  • Prerequisiti: Node.js installato e Clasp (npm install @google/clasp -g).
  • Deploy:
    git clone https://github.com/Luigina2001/StartupScoutingAI.git
    cd StartupScoutingAI
    clasp login
    clasp create --type sheets --title "AI Scouting"
    clasp push

2. Configurazione Sicurezza

Le API Key sono gestite tramite il PropertiesService di Google. Il tool viene fornito senza chiavi: è necessario inserire la propria per poterlo utilizzare.

  1. Genera la tua chiave gratuita su Google AI Studio.
  2. Apri il Google Sheet.
  3. Nel menu in alto, vai su Estensioni > Apps Script.
  4. Nel nuovo editor, clicca sull'icona Impostazioni del progetto nella barra laterale sinistra.
  5. Scorri in basso fino alla sezione Proprietà script e clicca su Aggiungi proprietà script.
  6. Inserisci questi valori:
    • Proprietà: GEMINI_API_KEY
    • Valore: [Incolla qui la tua chiave ottenuta da Google AI Studio]
  7. Clicca su Salva proprietà script.

Manuale Operativo e Workflow

Una volta configurata la chiave, ricarica la pagina del Google Sheet. Dopo qualche secondo vedrai comparire un nuovo menu personalizzato chiamato "Startup Scouting AI" (come illustrato nello schema riassuntivo in basso).

Warning

Autorizzazione Primo Utilizzo: La prima volta che esegui un comando, Google chiederà i permessi. Clicca su Continue > Seleziona il tuo account > Advanced > Go to AI Scouting (Unsafe) > Allow.

Ecco le funzionalità disponibili e come utilizzarle:

1. Set Up Database

  • Funzione: Inizializza l'ambiente di lavoro. Crea i fogli accelerators e startups se non esistono, applica la formattazione (header blu, righe bloccate) e rimuove i fogli vuoti inutili.
  • Procedura: Clicca su Startup Scouting AI > Set Up Database. Usalo al primo avvio.

2. Scouting Accelerators

  • Funzione: Cerca 10 nuovi programmi di accelerazione in Europa, verifica che i siti siano attivi e filtra i duplicati già presenti nel tuo database.
  • Procedura:
    1. Clicca su Startup Scouting AI > Scouting Accelerators.
    2. Attendi il messaggio "Running script".
    3. Dopo circa 30-60 secondi, le nuove righe appariranno nel foglio accelerators.

3. Update Startups

  • Funzione: Visita il sito dell'acceleratore, trova la pagina portfolio ed estrae le startup usando l'AI. Gestisce il merging N-to-N: se una startup esiste già, aggiunge solo il nuovo tag senza duplicare la riga.
  • Procedura:
    • Metodo A (Consigliato): Nel foglio accelerators, seleziona col mouse le righe degli acceleratori che vuoi analizzare e clicca su Update Startups.
    • Metodo B (Manuale): Clicca sul comando senza selezionare nulla e digita un sito web (es. ycombinator.com) nella box di input.

4. Generate Value Propositions

  • Funzione: Visita il sito di ogni startup e genera un pitch di una frase seguendo il pattern: "Startup X helps [Target] do [Action] so that [Benefit]".
  • Procedura:
    1. Nel foglio startups, seleziona le celle vuote (o quelle che vuoi riscrivere) nella colonna Value Proposition (Colonna E).
    2. Clicca su Startup Scouting AI > Generate value propositions.
    3. Conferma il range e osserva le celle popolarsi in tempo reale.
image

Architettura AI & Engineering

Perché gemini-2.5-flash?

La scelta del modello "Flash" non è casuale, ma risponde a specifici vincoli architetturali dell'ambiente serverless di Google Apps Script:

Sfida Tecnica 🛑 Soluzione Gemini Flash ⚡
Timeout Apps Script (6 min) Ultra-Low Latency
Flash permette di processare interi batch di startup sequenzialmente senza mandare in timeout l'esecuzione dello script.
Dirty HTML & Token Limits High Context Window (1M+)
Lo scraping web produce HTML "sporco" e voluminoso. Flash gestisce finestre di contesto grandi a costi frazionari, permettendo di analizzare il DOM grezzo senza complesse logiche di chunking.
Precisione vs Costi Extraction Capabilities
Per task di Information Extraction (Testo -> JSON), i benchmark mostrano che i modelli Flash eguagliano i modelli "Pro" in accuratezza, ma con un'efficienza superiore.

Strategie Anti-Allucinazione

La sfida principale nell'uso di LLM leggeri (gemini-flash) per l'estrazione dati è la tendenza all'allucinazione. Questo progetto implementa una pipeline di validazione basata su letteratura scientifica recente:

1. Simil-ReACT / Thought Traces

Ispirato al paper "ReAct: Synergizing Reasoning and Acting in Language Models" (Yao et al., 2022). Forziamo il modello a generare un campo "thought" (pensiero esplicito) prima di estrarre il dato JSON. Questo obbliga l'LLM a giustificare la rilevanza dell'acceleratore o della startup nel contesto fornito, riducendo i falsi positivi dovuti a menzioni casuali nel testo.

2. Prompt Repetition

Implementazione della tecnica descritta in "Prompt Repetition Improves Non-Reasoning LLMs" (Xu et al., 2024). I vincoli critici e le istruzioni di formato vengono ripetuti alla fine del prompt (post-context). Questo mitiga il fenomeno del "Lost in the Middle", garantendo che il modello aderisca alle regole anche dopo aver processato migliaia di token di HTML "sporco".

3. DOM Grounding (Verifica Fattuale)

Ogni entità estratta dall'AI subisce una verifica incrociata con il DOM (Document Object Model) della pagina.

  • L'algoritmo cerca una corrispondenza tra il nome estratto e i tag href (link reali) presenti nell'HTML.
  • Se l'AI "inventa" una startup che non ha un link corrispondente nella pagina, il sistema notifica l'anomalia o applica euristiche di fallback.

⚠️ Limitazioni e Gestione Errori

  • Anti-Bot Resilience: Siti protetti che bloccano UrlFetchApp non causano il crash dello script. Il sistema applica un Soft Fallback: logga un warning e tenta un inserimento basato su euristiche sintattiche del dominio.
  • No Cascading Delete: Se un acceleratore viene rimosso dal foglio, le startup a esso associate rimangono nel database come record "orfani".
  • Token Limits: L'HTML viene troncato a ~30k caratteri per rispettare i limiti TPM del tier gratuito.
  • API Quota: Gestione degli errori 429 con arresto controllato.

Struttura della Repository

📦 StartupScoutingAI
├── 📄 Accelerators.js    # Agente di ricerca Acceleratori
├── 📄 Startups.js        # Core logic: Scraping, Merging & AI Extraction
├── 📄 Setup.js           # Inizializzazione DB e Menu UI
├── 📄 Utils.js           # API Handler, HTML Parsing, URL Normalization
├── 📄 appsscript.json    # Configurazione Manifest
└── 📄 README.md          # Documentazione tecnica

About

Pipeline automatizzata per la ricerca di acceleratori in Europa e l'analisi dei portfolio startup.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published