0 di 10 passi fatti circa 60 minuti in tutto
Partecipa — Giovani Campania, un progetto di sociologia pubblica

Laboratorio · da rifare a casa

Il radar delle
opportunità

Come costruirsi, da soli e gratis, un foglio che ogni lunedì mattina va a leggere i portali dei bandi, tiene solo quello che riguarda gli under 35 e prepara una mail di riepilogo. Dieci passi, tre quarti d'ora, nessuna riga di codice da scrivere.

Versione per casa dello schema di conduzione · Certosa di Padula, 1 agosto 2026 · a cura di Logika.studio per PARTECIPA — Giovani Campania

ti serveUn account GoogleAnche quello personale. Se hai Gmail, ce l'hai già.
ti serveUn computerDal telefono non si fa: la parte del codice ha bisogno di una tastiera.
tempoTre quarti d'oraIl passo 8 — controllare alla fonte — è il più lungo, ed è quello che conta.
costoZeroFoglio, Apps Script e Gemini hanno tutti un piano gratuito che basta e avanza.
non ti serveSaper programmareIl codice è già scritto: si copia e si incolla. I commenti spiegano cosa fa.
non ti serveUna carta di creditoIn nessun passaggio ti viene chiesta. Se te la chiede, hai sbagliato pagina.
1
3 min

Il foglio

Tutto il progetto vive dentro un solo Foglio Google. Non c'è nessun server, nessun sito da comprare, niente da installare sul computer: se un giorno vuoi buttare via tutto, butti via il foglio e non resta niente in giro.

la strada breve — parti dal foglio già pronto
  1. Apri questo indirizzo: Google ti mostra un solo pulsante, Crea una copia.
  2. La copia finisce sul tuo Drive, con dentro le tre linguette e il programma già scritto.
  3. Rinominala come vuoi, e salta al passo 2: i passi 3 e 4 non ti servono.
che cosa NON viaggia con la copia

La chiave di chi te l'ha data, la sua sveglia, i suoi destinatari. È giusto così: da adesso il radar è tuo, gira sul tuo account e consuma la tua quota, non quella di un altro.

la strada lunga — parti da un foglio vuoto
  1. Vai su sheets.new: nasce un foglio vuoto sul tuo Drive.
  2. In alto a sinistra, dove c'è scritto Foglio di lavoro senza titolo, clicca e scrivi Radar opportunità.
  3. Le tre linguette non le crei tu: le farà il programma al passo 4, con i nomi e le intestazioni giuste. È la parte in cui prima sbagliavano tutti.
è andata bene se

Hai un Foglio Google aperto, sul tuo Drive, che si chiama Radar opportunità. Se hai fatto la copia, in basso vedi già tre linguette: FONTI, OPPORTUNITÀ, LOG.

2
5 min

La chiave di Gemini

Gemini è il modello che legge le pagine dei bandi e ne tira fuori le opportunità. Per farlo lavorare per te serve una chiave: una lunga sequenza di lettere e numeri che dice «questa richiesta arriva da me». È gratuita entro un certo numero di richieste al giorno — molte più di quante ne farà il radar.

che cosa fare
  1. Vai su aistudio.google.com/apikey e accedi con lo stesso account Google del foglio.
  2. Premi Create API key (o Crea chiave API).
  3. Se ti chiede in quale progetto crearla, accetta quello che ti propone: va benissimo.
  4. Copia la chiave e tienila negli appunti. Fra due minuti la incolli e non ci pensi più.
che cosa vedi
una sequenza di una cinquantina di caratteri, che inizia con AIzaSy… oppure con AQ.…

Le chiavi nuove non somigliano a quelle vecchie: va bene lo stesso. Se invece ti compare una richiesta di carta di credito, sei finito sulla console a pagamento di Google Cloud: torna indietro e usa l'indirizzo qui sopra, che è quello di AI Studio.

attenzione

Quella chiave è come la password del citofono: chi ce l'ha può fare richieste a tuo nome, e consumare la tua quota. Non incollarla in una chat, non mandarla per mail, non scriverla dentro il codice. Al passo 5 la metti in un posto dove resta al sicuro anche se il foglio lo dai a qualcun altro.

3
5 min

Il programma dentro il foglio

Salta questo passo se hai fatto la copia del foglio pronto: il programma ce l'hai già. Serve solo a chi è partito da un foglio vuoto.

Dentro ogni Foglio Google c'è un editor di programmi che quasi nessuno sa che esiste. Si chiama Apps Script, è gratis, ed è lì che vivrà il radar. Sono due copia-incolla.

che cosa fare
  1. Dal foglio: Estensioni → Apps Script. Si apre l'editor in una scheda nuova.
  2. In alto a sinistra rinomina il progetto: Radar delle opportunità.
  3. Apri Codice.gs su GitHub, premi Copy raw file. Nell'editor: clicca nel codice, Ctrl+A, Canc, Ctrl+V.
  4. Nella colonna di sinistra, accanto a File, premi + → HTML. Chiamalo esattamente Pannello (senza scrivere .html).
  5. Apri Pannello.html, copia allo stesso modo, svuota il file nuovo e incolla.
  6. Salva con Ctrl+S.
l'unico nome che deve essere esatto

Pannello, con la P maiuscola: è l'unico che il programma cerca per nome. Se lo chiami diversamente, il menu funziona ma le impostazioni non si aprono.

è andata bene se

Nella colonna di sinistra vedi due file, Codice.gs e Pannello.html, e in alto non c'è più scritto «Modifiche non salvate». Nessuna conferma, nessun errore: il programma non è ancora partito, quindi non può dirti niente.

4
3 min

Il menu, e la schermata che spaventa

Da qui in poi non tocchi più il codice: tutto quello che serve sta in un menu, dentro il foglio.

che cosa fare
  1. Torna sulla scheda del foglio e ricaricala (F5). Dopo qualche secondo, nella barra dei menu in alto, dopo Guida, compare 🛰️ Radar.
  2. Apri 🛰️ Radar → Prepara il foglio.
  3. Google chiede l'autorizzazione: Rivedi autorizzazioni → scegli il tuo account.
  4. Compare una schermata che dice «Google non ha verificato questa app». In basso a sinistra: Avanzate → Apri Radar delle opportunità (non sicura).
  5. Leggi l'elenco dei permessi e premi Consenti.
perché quella schermata, e perché non è un allarme

Google non ha revisionato questo programma — e non lo farà: la revisione serve alle app che si pubblicano per migliaia di sconosciuti. Questo è un programma che tu hai messo nel tuo account e che gira solo sul tuo foglio. Quel messaggio dice esattamente questo, con parole che sembrano peggiori di quello che sono.

Quello che invece vale la pena leggere è l'elenco dei permessi: scrivere in questo foglio, uscire in rete per leggere i portali, creare bozze in Gmail. Non c'è il permesso di inviare: la mail resta ferma finché non la mandi tu. Se un giorno accenderai l'invio automatico, Google ti chiederà un permesso in più — ed è giusto che te lo chieda.

è andata bene se

Compare l'avviso «Foglio pronto» e in basso trovi le tre linguette FONTI, OPPORTUNITÀ, LOG, con le intestazioni blu, la prima riga bloccata e la tendina sì / no sulla colonna C.

5
4 min

Le impostazioni

Un pannello laterale con tutto quello che si può cambiare senza programmare. È anche il posto dove la chiave sta al sicuro: non finisce nel foglio, quindi non viaggia con le copie.

che cosa fare
  1. 🛰️ Radar → Impostazioni…: si apre il pannello a destra.
  2. Incolla la chiave nel primo campo e premi Prova la chiave.
  3. Apri la tendina Modello: contiene quelli che la tua chiave può usare davvero. Scegli il primo dell'elenco.
  4. Guarda A chi guardiamo: 14 e 35 sono i valori di partenza, cambiali se il tuo ufficio ha un'altra fascia.
  5. Premi Salva.
che cosa vedi
la chiave funziona e il modello risponde

Se invece dice che il modello non esiste, sceglilo dalla tendina — i nomi cambiano ogni pochi mesi e non sono gli stessi per tutte le chiavi. Se dice che la quota è esaurita, la chiave è buona: sta solo chiedendo di aspettare.

il campo che vale più di tutti gli altri

Regole aggiuntive è il posto in cui il radar diventa tuo: ci scrivi in italiano cosa tenere e cosa no — «tieni solo ciò che riguarda il Vallo di Diano», «scarta i corsi a pagamento». Una regola alla volta, e si riprova: due insieme non dicono quale ha funzionato. Le regole nate da un errore che hai visto valgono dieci volte quelle pensate a tavolino.

6
8 min

Le fonti, e chi riceve

È il passo che decide la qualità di tutto il resto. Il radar non gira per tutto internet: guarda solo le pagine che gli dai tu. È il suo limite più importante, e va detto ad alta voce ogni volta che lo mostri a qualcuno — se una fonte manca, non la vede.

che cosa fare
  1. Vai nella linguetta FONTI. Trovi già qualche riga d'esempio: tienile o cancellale.
  2. Per ogni portale: A un nome che riconosci, B l'indirizzo, C sì dalla tendina, D una nota per ricordarti perché l'hai messa.
  3. Nella colonna E scrivi gli indirizzi email di chi riceverà il riepilogo, uno per riga.
quali pagine funzionano — e perché quasi tutte no

Il radar legge la pagina così com'è: non esegue i programmi che il sito fa girare nel browser. Questo taglia fuori gran parte dei portali pubblici, che l'elenco dei bandi lo costruiscono proprio così — per il radar quelle pagine sono vuote, e infatti risponde, correttamente, che non c'è niente.

Due regole: mai le home (servono le pagine di elenco avvisi) e provare prima di fidarsi. Una fonte che non risponde lo scrive nel registro; una che risponde con soli menu sembra funzionare e non porta mai niente.

Provate il 2 agosto 2026 — funzionano

FonteIndirizzoEsito della prova
Giovani2030giovani2030.it/bandi-e-opportunita/8 opportunità con scadenze vere
Politiche Giovanilipolitichegiovanili.gov.it/comunicazione/avvisi-e-bandi/1 bando, scadenza corretta
Agenzia Giovaniagenziagiovani.it8 fra corsi e call europee
Eurodeskeurodesk.it/notizie8 voci
Cliclavorocliclavoro.gov.itrisponde bene

Provate — non funzionano così come sono

IndirizzoPerché no
bandi.sviluppocampania.itrisponde «JavaScript non è abilitato»: senza browser la pagina non esiste
portale-giovani.regione.campania.itpoche centinaia di battute di soli menu
le home dei portalisono vetrine: i contenuti stanno nelle pagine interne
la fonte che conta davvero

È la pagina avvisi del tuo Comune. Nessun portale nazionale la contiene, ed è esattamente il motivo per cui questo strumento ha senso in un ufficio piccolo: fa il lavoro che nessun altro sta facendo per il tuo territorio.

7
5 min

Il primo giro

Prima a secco, per sapere quanto costerebbe; poi davvero.

che cosa fare
  1. 🛰️ Radar → Quanto costerebbe il prossimo giro. Legge le fonti, applica i filtri e ti dice quante richieste servirebbero — senza farne nemmeno una.
  2. 🛰️ Radar → Esegui adesso. Da dieci secondi a un minuto.
  3. Guarda la linguetta OPPORTUNITÀ, poi LOG.
che cosa vedi
9 righe nuove nel foglio OPPORTUNITÀ. Il riepilogo è nelle BOZZE di Gmail: aprilo, controlla le scadenze alla fonte e solo allora invialo. Il radar non manda niente da solo.

Se dice nessuna riga nuova, non è un guasto: nel registro c'è scritto perché. Spesso vuol dire che le pagine non sono cambiate dall'ultima volta — ed è una buona notizia, perché quel controllo è gratis.

i tre risparmi, in ordine

Prima si scarta tutto quello che si può scartare gratis, e solo su quel che resta si spende: le pagine troppo corte o senza una sola parola da bando non arrivano al modello; le pagine identiche al giro precedente nemmeno — è il risparmio più grosso, perché un portale pubblica ogni due settimane e il radar passa ogni lunedì. Poi c'è un tetto duro di richieste per giro: quando si raggiunge, il giro si chiude in ordine e le fonti rimaste si leggeranno la volta dopo. Meglio un giro incompleto che una quota bruciata a metà.

8
10 min

Controllare alla fonte

È il passo che nessuno salta. Non serve a fidarsi del radar: serve a sapere quanto fidarsi, che è una cosa diversa e più utile.

che cosa fare
  1. Prendi tre righe a caso in OPPORTUNITÀ e apri il Link in colonna G.
  2. Controlla che il titolo corrisponda, e soprattutto la scadenza.
  3. Quando una riga è verificata, cambia la colonna Stato da da verificare a quello che vuoi: ok, segnalata, scartata. Quella colonna la scrive sempre una persona, mai il programma.
  4. Se trovi un errore, scrivilo nel LOG, poi aggiungi una regola nel pannello (Regole aggiuntive) e rilancia.
quello che il radar lascia vuoto apposta

Se un dato non è scritto per esteso nella pagina, la casella resta vuota. Non lo deduce, non lo stima, non lo ricava dal contesto. Una casella vuota si nota; una data sbagliata no.

Le pagine di elenco raccontano poco: spesso avrai titolo e scadenza, e il resto vuoto. È normale — il dettaglio sta nella pagina del singolo bando, che il radar per ora non apre.

i bandi già scaduti

Non entrano: se la data c'è ed è passata, la riga viene scartata e lo scarto finisce nel registro. Ma solo quando la data è scritta e leggibile: «prossimamente» o «fino a esaurimento fondi» vogliono dire non lo sappiamo, e allora la riga resta. Per togliere vale la stessa regola che vale per aggiungere: non si inventa niente.

9
3 min

La bozza, e chi la manda

Il radar prepara. Non spedisce. È la riga di codice che conta più di tutte le altre messe insieme.

che cosa fare
  1. Apri Gmail → Bozze: trovi «Radar opportunità — N novità del …».
  2. Leggila. In testa c'è scritto che quelle righe non sono state verificate: è vero, e chi la riceve deve saperlo.
  3. Quando sei pronto: 🛰️ Radar → Invia il riepilogo che aspetta. Ti mostra oggetto e destinatari e chiede conferma.
perché resta una bozza

Perché è ciò che rende questo strumento adottabile da un ufficio pubblico. Un agente che manda email da solo, di notte, con scadenze che nessuno ha controllato, è un problema nuovo — e la prima cosa che farebbe togliere di mano lo strumento. Nel pannello c'è un interruttore per l'invio automatico: è spento, e chi lo accende si prende quella responsabilità. Ogni invio automatico resta scritto nel registro.

10
2 min

La sveglia del lunedì

È questo passo a trasformare un programma in un agente: da qui in poi lavora quando tu non ci sei.

che cosa fare
  1. Nel pannello Impostazioni scegli giorno e ora (lunedì alle 8 è il valore di partenza), e salva.
  2. 🛰️ Radar → Accendi la sveglia settimanale.
  3. Per fermarlo: Spegni il radar. Non cancella niente, smette solo di svegliarsi.
è andata bene se

Compare «Da adesso parte da solo ogni lunedì verso le 8, anche a computer spento». Da 🛰️ Radar → Diagnostica vedi in ogni momento se la sveglia è accesa e com'è andato l'ultimo giro.

?

Quando si rompe

Prima cosa, sempre: 🛰️ Radar → Diagnostica. Controlla fogli, chiave, fonti, destinatari, sveglia e ultimo giro nell'ordine in cui le cose accadono, e dice a che punto si è rotto.

SintomoChe cosa è successo
«Manca il foglio…»una linguetta è stata rinominata: Prepara il foglio la rimette
«Manca la chiave di Gemini»hai copiato il foglio da qualcun altro: la chiave non viaggia con le copie, mettine una tua
«chiave rifiutata»chiave sbagliata o cancellata da AI Studio
«il modello non esiste»scegli il modello dalla tendina: i nomi cambiano ogni pochi mesi e non sono uguali per tutte le chiavi
«quota esaurita»finite le richieste gratuite di oggi: riprende al prossimo giro. Se capita spesso, scegli un modello lite
«risposta troncata»alza lunghezza massima della risposta nelle impostazioni avanzate
«il portale ha risposto 403»quel sito non si lascia leggere dai programmi: è un dato interessante, non un fallimento. Cerca un'altra pagina o toglila
nessuna riga, nessun erroreguarda il LOG: quasi sempre è «pagina identica al giro scorso». Per forzare: Fai rileggere tutte le pagine
le quattro cose da non rompere
  1. I nomi delle tre linguette e l'ordine delle colonne di OPPORTUNITÀ: il programma scrive contando le posizioni.
  2. La colonna E di FONTI: senza almeno un indirizzo, il riepilogo non può essere intestato a nessuno.
  3. La chiave nel pannello: se la scrivi nel foglio, viaggia con ogni copia che ne fai.
  4. La bozza: si può accendere l'invio automatico, ma sappi che cosa stai spegnendo — la persona che legge prima di mandare.
</>

Il codice, e dove vive

Tutto il programma è pubblico, con licenza MIT: si legge, si copia, si modifica, si porta nel proprio Comune. Sta qui — github.com/logika-studio/radar-opportunita.

una cosa che non troverai mai lì dentro

Nel codice non c'è nessuna chiave e nessun indirizzo email, ed è giusto che resti così. La chiave sta nelle proprietà del progetto (ci va dal pannello, passo 5) e gli indirizzi nella colonna E del foglio FONTI (passo 6). Vuol dire che questo codice lo puoi dare a chiunque per intero, senza toglierne niente — ed è esattamente quello che stiamo facendo.

Per installarlo bastano due file — è la cartella installazione-rapida/, che li impacchetta —, ma il programma vero è diviso in sette, e la divisione non è tecnica: segue l'ordine in cui le cose accadono.

FileChe cosa fa
00-Configurazionei valori di partenza — età, modello, tetto delle richieste, giorno della sveglia. Non si toccano dal codice: si cambiano dal pannello, e il codice resta com'è.
01-Fontiva a prendere le pagine e le riduce a testo. È il pezzo che dipende da cose che non controlli: quando un sito cambia veste, è qui che si rompe — e per questo ogni errore finisce nel LOG invece di fermare il giro. Qui stanno anche i due filtri che risparmiano.
02-Geminiil cuore: le istruzioni che il modello legge prima di ogni pagina, la forma della risposta, i ritentativi educati, lo scarto dei bandi già scaduti. È l'unico punto che spende.
03-Foglioscrive le righe e il registro. Poche righe, nessuna intelligenza: deve solo mettere le cose nella colonna giusta.
04-Radaril giro completo, la bozza, l'invio, la sveglia. Si legge dall'alto come uno schema.
05-Menuil menu 🛰️ Radar: è ciò che ha trasformato «apri l'editor ed esegui una funzione» in «scegli una voce».
06-Preparazionecrea le tre linguette con le intestazioni giuste, e la diagnostica.
Pannello.htmlil pannello delle impostazioni.
perché il codice è scritto così

I commenti sono in italiano, discorsivi, e spiegano perché una riga è fatta in quel modo — non cosa fa: quello si vede. È una scelta: questo programma nasce da un laboratorio pubblico, e il codice è parte di ciò che si insegna. Chi lo apre fra un anno, magari senza saper programmare, deve poterci capire qualcosa.

L'ordine dei controlli, nel giro, è la parte più importante di tutte: prima si scarta gratis tutto quello che si può scartare, e solo su quel che resta si spende una richiesta. Ogni riga che viene prima della chiamata al modello è una riga che fa risparmiare.

quello che si cambia senza toccare una riga

Fascia d'età, modello, giorno e ora della sveglia, tetto delle richieste, quanta parte di ogni pagina leggere, e soprattutto le regole aggiuntive — «tieni solo ciò che riguarda il Vallo di Diano», «scarta i corsi a pagamento». Tutto dal pannello. Nel codice si mette mano solo per cambiare come lavora, non cosa cerca.

la riga da non cambiare a cuor leggero

In 04-Radar c'è createDraft: crea la bozza. Sostituirla con l'invio diretto fa partire email da sole, di notte, con scadenze che nessuno ha controllato. È la cosa che rende oggi questo strumento adottabile da un ufficio pubblico — e la prima che glielo farebbe togliere di mano.

Se lo migliori, le cose più utili da rimandare indietro sono tre: fonti che funzionano (pagine di elenco avvisi che rispondono senza JavaScript, soprattutto comunali), regole nate da un errore che hai visto davvero, e i casi in cui ha sbagliato — quelli valgono più di tutto: il registro di un radar acceso da mesi è un dato raro su quanto sono affidabili questi strumenti dentro un ufficio pubblico.

Partecipa — Giovani Campania, un progetto di sociologia pubblica

Workshop · how to rebuild it at home

The opportunities
radar

How to build yourself, alone and for free, a sheet that every Monday morning reads the public-call portals, keeps only what concerns under-35s and drafts a digest email. Ten steps, three quarters of an hour, not a single line of code to write.

Home version of the workshop held at the Certosa di Padula, 1 August 2026 · by Logika.studio for PARTECIPA — Giovani Campania

you needA Google accountA personal one is fine. If you have Gmail, you already have it.
you needA computerNot from a phone: the code part needs a keyboard.
timeThree quarters of an hourStep 8 — checking against the source — is the longest, and the one that counts.
costZeroSheets, Apps Script and Gemini all have a free tier with room to spare.
you don't needProgramming skillsThe code is already written: you copy and paste it. The comments explain what it does.
you don't needA credit cardYou are never asked for one. If you are, you are on the wrong page.
1
3 min

The sheet

The whole project lives inside a single Google Sheet. No server, no website to buy, nothing to install on your computer: if one day you want to throw it all away, you throw away the sheet and nothing is left behind.

the short way — start from the ready-made sheet
  1. Open this address: Google shows you a single button, Make a copy.
  2. The copy lands on your Drive, with the three tabs and the program already inside.
  3. Rename it as you like, then skip to step 2: steps 3 and 4 are not for you.
what does NOT travel with the copy

The key of whoever gave it to you, their schedule, their recipients. And rightly so: from now on the radar is yours, it runs on your account and uses your quota, not someone else's.

the long way — start from an empty sheet
  1. Go to sheets.new: an empty sheet appears on your Drive.
  2. Top left, where it says Untitled spreadsheet, click and write Radar opportunità.
  3. You don't create the three tabs: the program will, at step 4, with the right names and headers. That used to be the part everybody got wrong.
it went well if

You have a Google Sheet open, on your Drive, called Radar opportunità. If you made the copy, at the bottom you already see three tabs: FONTI, OPPORTUNITÀ, LOG.

2
5 min

The Gemini key

Gemini is the model that reads the pages and pulls the opportunities out of them. To make it work for you, you need a key: a long sequence of letters and numbers saying «this request comes from me». It is free within a certain number of requests a day — many more than the radar will ever make.

what to do
  1. Go to aistudio.google.com/apikey and sign in with the same Google account as the sheet.
  2. Press Create API key.
  3. If it asks which project to create it in, accept the one it offers: that's fine.
  4. Copy the key and keep it in your clipboard. In two minutes you'll paste it and forget about it.
what you see
a string of about fifty characters, starting with AIzaSy… or with AQ.…

New keys don't look like the old ones: that's fine. If instead you are asked for a credit card, you ended up on Google Cloud's paid console: go back and use the address above, which is AI Studio.

careful

That key is like the password to your front door: whoever has it can make requests in your name and burn your quota. Don't paste it into a chat, don't email it, don't write it inside the code. At step 5 you'll put it somewhere safe — somewhere that stays behind even if you hand the sheet to someone else.

3
5 min

The program inside the sheet

Skip this step if you copied the ready-made sheet: you already have the program. This is only for those starting from an empty one.

Inside every Google Sheet there is a code editor almost nobody knows about. It is called Apps Script, it is free, and that is where the radar will live. It's two copy-pastes.

what to do
  1. From the sheet: Extensions → Apps Script. The editor opens in a new tab.
  2. Top left, rename the project: Radar delle opportunità.
  3. Open Codice.gs on GitHub and press Copy raw file. In the editor: click in the code, Ctrl+A, Delete, Ctrl+V.
  4. In the left column, next to Files, press + → HTML. Name it exactly Pannello (without typing .html).
  5. Open Pannello.html, copy it the same way, empty the new file and paste.
  6. Save with Ctrl+S.
the only name that must be exact

Pannello, capital P: it is the only one the program looks up by name. Call it anything else and the menu still works, but the settings panel won't open.

it went well if

In the left column you see two files, Codice.gs and Pannello.html, and «Unsaved changes» is gone from the top. No confirmation, no error: the program hasn't run yet, so it has nothing to tell you.

4
3 min

The menu, and the scary screen

From here on you never touch the code again: everything you need is in a menu, inside the sheet.

what to do
  1. Go back to the sheet tab and reload it (F5). After a few seconds, in the menu bar, after Help, 🛰️ Radar appears.
  2. Open 🛰️ Radar → Prepara il foglio.
  3. Google asks for authorisation: Review permissions → choose your account.
  4. A screen says «Google hasn't verified this app». Bottom left: Advanced → Go to Radar delle opportunità (unsafe).
  5. Read the list of permissions and press Allow.
why that screen, and why it isn't an alarm

Google hasn't reviewed this program — and it won't: review is for apps published to thousands of strangers. This is a program you put in your account, running only on your sheet. That message says exactly this, with words that sound worse than they are.

What is worth reading is the list of permissions: write in this sheet, reach the internet to read the portals, create drafts in Gmail. There is no permission to send: the email stays put until you send it yourself. If one day you turn on automatic sending, Google will ask for one more permission — and it is right that it does.

it went well if

You get the notice «Foglio pronto» and at the bottom you find the three tabs FONTI, OPPORTUNITÀ, LOG, with blue headers, the first row frozen and the sì / no dropdown on column C.

5
4 min

The settings

A side panel with everything you can change without programming. It is also where the key stays safe: it never touches the sheet, so it never travels with the copies.

what to do
  1. 🛰️ Radar → Impostazioni…: the panel opens on the right.
  2. Paste the key into the first field and press Prova la chiave (test the key).
  3. Open the Modello dropdown: it lists the models your key can actually use. Pick the first one.
  4. Look at A chi guardiamo (who we're looking for): 14 and 35 are the starting values — change them if your office works with a different age range.
  5. Press Salva.
what you see
la chiave funziona e il modello risponde

If it says the model doesn't exist, pick one from the dropdown — names change every few months and are not the same for every key. If it says the quota is exhausted, the key is good: it's just asking you to wait.

the field that matters most

Regole aggiuntive (extra rules) is where the radar becomes yours: write in plain language what to keep and what to drop — «keep only what concerns the Vallo di Diano», «drop paid courses». One rule at a time, then try again: two at once won't tell you which one worked. Rules born from a mistake you actually saw are worth ten times the ones imagined at a desk.

6
8 min

The sources, and who gets the digest

This step decides the quality of everything else. The radar doesn't roam the internet: it only looks at the pages you give it. That is its most important limit, and it should be said out loud every time you show it to someone — if a source is missing, it doesn't see it.

what to do
  1. Go to the FONTI tab. A few example rows are already there: keep them or delete them.
  2. For each portal: A a name you recognise, B the address, C sì from the dropdown, D a note to remind you why you added it.
  3. In column E write the email addresses of whoever will receive the digest, one per row.
which pages work — and why almost none do

The radar reads the page as it is: it does not run the programs the site executes in your browser. That rules out most public-administration portals, which build their list of calls exactly that way — to the radar those pages are empty, and it correctly answers that there is nothing there.

Two rules: never the home pages (you want the list of notices pages) and test before trusting. A source that doesn't answer writes it in the log; one that answers with menus only looks fine and never brings anything.

Tested on 2 August 2026 — these work

SourceAddressTest result
Giovani2030giovani2030.it/bandi-e-opportunita/8 opportunities with real deadlines
Politiche Giovanilipolitichegiovanili.gov.it/comunicazione/avvisi-e-bandi/1 call, correct deadline
Agenzia Giovaniagenziagiovani.it8 training courses and European calls
Eurodeskeurodesk.it/notizie8 items
Cliclavorocliclavoro.gov.itanswers well

Tested — these don't work as they are

AddressWhy not
bandi.sviluppocampania.itanswers «JavaScript is not enabled»: without a browser the page doesn't exist
portale-giovani.regione.campania.ita few hundred characters of menus only
portal home pagesthey are shop windows: the content lives in the inner pages
the source that really matters

It is your own municipality's notices page. No national portal contains it, and that is exactly why this tool makes sense in a small office: it does the work nobody else is doing for your area.

7
5 min

The first run

Dry first, to know what it would cost; then for real.

what to do
  1. 🛰️ Radar → Quanto costerebbe il prossimo giro. It reads the sources, applies the filters and tells you how many requests it would take — without making a single one.
  2. 🛰️ Radar → Esegui adesso. Ten seconds to a minute.
  3. Look at the OPPORTUNITÀ tab, then LOG.
what you see
9 righe nuove nel foglio OPPORTUNITÀ. Il riepilogo è nelle BOZZE di Gmail: aprilo, controlla le scadenze alla fonte e solo allora invialo. Il radar non manda niente da solo.

If it says no new rows, nothing is broken: the log says why. Most often it means the pages haven't changed since last time — and that is good news, because that check is free.

the three savings, in order

First everything that can be discarded for free is discarded, and only on what is left does it spend: pages too short or without a single word suggesting a call never reach the model; pages identical to the previous run don't either — that's the biggest saving, because a portal publishes every couple of weeks while the radar comes by every Monday. Then there is a hard cap of requests per run: once reached, the run closes tidily and the remaining sources are read next time. Better an incomplete run than a quota burnt halfway.

8
10 min

Check against the source

This is the step nobody skips. It isn't there to make you trust the radar: it is there to tell you how much to trust it, which is a different and far more useful thing.

what to do
  1. Take three random rows in OPPORTUNITÀ and open the Link in column G.
  2. Check that the title matches, and above all the deadline.
  3. Once a row is verified, change the Stato column from da verificare to whatever you want: ok, segnalata, scartata. That column is always written by a person, never by the program.
  4. If you find a mistake, write it in the LOG, then add a rule in the panel (Regole aggiuntive) and run again.
what the radar leaves empty on purpose

If a value isn't written out in the page, the cell stays empty. It doesn't infer it, doesn't estimate it, doesn't derive it from context. An empty cell gets noticed; a wrong deadline does not.

List pages say little: you will often get title and deadline and nothing else. That is normal — the detail lives in the individual call's page, which the radar does not open, for now.

calls that already expired

They don't get in: if the date is there and it has passed, the row is discarded and the discard goes into the log. But only when the date is written and readable: «prossimamente» or «while funds last» mean we don't know, and then the row stays. For removing, the same rule applies as for adding: nothing is made up.

9
3 min

The draft, and who sends it

The radar prepares. It does not send. That is the line of code that matters more than all the others put together.

what to do
  1. Open Gmail → Drafts: you'll find «Radar opportunità — N novità del …».
  2. Read it. At the top it says those rows have not been verified: that is true, and whoever receives it must know.
  3. When you're ready: 🛰️ Radar → Invia il riepilogo che aspetta. It shows you subject and recipients and asks for confirmation.
why it stays a draft

Because that is what makes this tool adoptable by a public office. An agent sending emails on its own, at night, with deadlines nobody checked, is a brand-new problem — and the first reason someone would take the tool away. The panel has a switch for automatic sending: it is off, and whoever turns it on takes that responsibility. Every automatic send is written in the log.

10
2 min

The Monday alarm

This is the step that turns a program into an agent: from here on it works when you are not there.

what to do
  1. In the Impostazioni panel choose day and hour (Monday at 8 is the starting value), and save.
  2. 🛰️ Radar → Accendi la sveglia settimanale.
  3. To stop it: Spegni il radar. Nothing is deleted, it just stops waking up.
it went well if

You read «From now on it runs by itself every Monday around 8, even with your computer off». From 🛰️ Radar → Diagnostica you can always see whether the alarm is on and how the last run went.

?

When it breaks

First thing, always: 🛰️ Radar → Diagnostica. It checks tabs, key, sources, recipients, alarm and last run in the order things actually happen, and tells you where it broke.

SymptomWhat happened
«Manca il foglio…»a tab was renamed: Prepara il foglio puts it back
«Manca la chiave di Gemini»you copied the sheet from someone: the key never travels with copies, add your own
«chiave rifiutata»wrong key, or deleted from AI Studio
«il modello non esiste»pick the model from the dropdown: names change every few months and differ per key
«quota esaurita»today's free requests are gone: it resumes next run. If it happens often, choose a lite model
«risposta troncata»raise lunghezza massima della risposta in the advanced settings
«il portale ha risposto 403»that site won't let programs read it: an interesting fact, not a failure. Find another page or drop it
no rows, no errorslook at the LOG: almost always «page identical to last run». To force it: Fai rileggere tutte le pagine
the four things not to break
  1. The three tab names and the column order of OPPORTUNITÀ: the program writes by counting positions.
  2. Column E of FONTI: without at least one address, the digest cannot be addressed to anyone.
  3. The key in the panel: write it in the sheet and it travels with every copy you make.
  4. The draft: you may turn on automatic sending, but know what you are switching off — the person who reads before sending.
</>

The code, and where it lives

The whole program is public, under an MIT licence: read it, copy it, change it, take it to your own town hall. It lives here — github.com/logika-studio/radar-opportunita.

one thing you will never find in there

The code contains no key and no email address, and it should stay that way. The key lives in the project properties (you put it there from the panel, step 5) and the addresses in column E of the FONTI tab (step 6). Which means you can hand this code to anyone, whole, without removing anything — and that is exactly what we are doing.

Installing it takes two files — that's the installazione-rapida/ folder, which packs them — but the real program is split into seven, and the split is not technical: it follows the order in which things happen.

FileWhat it does
00-Configurazionethe starting values — age range, model, request cap, alarm day. You never change them in the code: you change them from the panel, and the code stays as it is.
01-Fontifetches the pages and reduces them to text. It's the part that depends on things you don't control: when a site changes its skin, this is where it breaks — which is why every error goes into the LOG instead of stopping the run. The two free filters live here too.
02-Geminithe heart: the instructions the model reads before every page, the shape of the answer, the polite retries, the discarding of expired calls. The only part that spends.
03-Fogliowrites the rows and the log. Few lines, no intelligence: it only has to put things in the right column.
04-Radarthe full run, the draft, the sending, the alarm. It reads top to bottom like a diagram.
05-Menuthe 🛰️ Radar menu: what turned «open the editor and run a function» into «pick an item».
06-Preparazionecreates the three tabs with the right headers, and the diagnostics.
Pannello.htmlthe settings panel.
why the code is written the way it is

The comments are in Italian, discursive, and they explain why a line is the way it is — not what it does: that you can see. It is a choice: this program comes out of a public workshop, and the code is part of what is being taught. Whoever opens it a year from now, perhaps without knowing how to program, should be able to make sense of it.

The order of the checks inside the run is the most important part of all: first discard for free everything that can be discarded, and only on what is left spend a request. Every line that comes before the call to the model is a line that saves money.

what you change without touching a line

Age range, model, day and hour of the run, request cap, how much of each page to read, and above all the extra rules — «keep only what concerns the Vallo di Diano», «drop paid courses». All from the panel. You go into the code only to change how it works, not what it looks for.

the line not to change lightly

In 04-Radar there is createDraft: it creates the draft. Replacing it with direct sending makes emails leave on their own, at night, with deadlines nobody checked. It is what makes this tool adoptable by a public office today — and the first thing that would get it taken away.

If you improve it, the three most useful things to send back are: sources that work (list-of-notices pages that answer without JavaScript, municipal ones above all), rules born from a mistake you actually saw, and the cases where it got it wrong — those are worth most of all: the log of a radar running for months is rare evidence of how reliable these tools really are inside a public office.