← Tutti i progetti Mirko Olindo
AI agentica · progetto personale · 2026

Il mercato è la fonte inaffidabile.

Il mio ruoloTutto: architettura, agente, interfaccia
CommittenteNessuno, serve a me
Confine di autonomiaRaccoglie e ordina, non invia
StatoIn esercizio quotidiano

Un agente su Claude Code che fa retrieval sul mercato del lavoro. Attori Apify orchestrati via MCP per la raccolta, verifica alla board primaria prima del ranking, memoria persistente su file, e una predizione di callback calibrata sul mio base rate osservato. L'invio resta manuale.

Livello di autonomiaRaccoglie, verifica, ordina, propone

Non invia. Il confine è progettato, non è un limite tecnico.

StackClaude Code · MCP · Apify

Attori LinkedIn e Indeed, Google Search Scraper per il deanonimizzo. Rendering headless per i CV.

StatoIn esercizio quotidiano

È il sistema con cui ho trovato le posizioni a cui mi sto candidando.

Il problema

L'ottimizzazione sta a valle. Il collo di bottiglia sta a monte.

Tutta la letteratura sul job hunting lavora sull'artefatto finale: CV, lettera, personal branding. Assume che il set di candidati in input sia corretto. Nella pratica è rumoroso, stantio e in parte avversariale.

DuplicazioneStessa posizione, quattro record

Ripubblicata da board diverse con titoli diversi. Gonfia il conteggio e falsa qualunque stima di affollamento.

Ruoli chiusiNessuna invalidazione

Le board non ritirano gli annunci evasi. Una parte del set è composta da posizioni che non esistono più.

OccultamentoCommittente mascherato

Alcuni intermediari nascondono l'azienda e interpongono un proprio matching automatico prima che un umano legga la candidatura.

Architettura

Sei stadi, e il sesto chiude il ciclo.

01 · ingestionAttori Apify via MCP

LinkedIn e Indeed in parallelo, più fetch mirati sulle board aziendali. Ridondanti di proposito.

02 · validazioneVerifica alla fonte primaria

Ogni record confermato sulla board del committente. Qui muoiono duplicati e ruoli chiusi, prima che ricevano un punteggio.

03 · normalizzazioneUno schema unico

Requisiti, seniority, RAL, contratto e applicant count forzati in un record confrontabile.

04 · predizioneProbabilità calibrata

Base rate osservato, corretto per match sui requisiti e per affollamento della posizione.

05 · generazioneShortlist e CV mirato

Rendering headless con page-fitting su una pagina, per le posizioni che superano soglia.

06 · memoria

Legge prima dello stadio 04, scrive dopo ogni esito. Le regole derivate dai rifiuti rientrano nello scoring al ciclo successivo. È il motivo per cui il sistema si restringe nel tempo invece di allargarsi.

Il funnel, in tempo reale

Alta cardinalità in ingresso. Bassa in uscita.

Ogni riga è un record normalizzato: ruolo, settore, applicant count. Alla soglia tratteggiata avviene la validazione. Gli scarti riportano il motivo, i sopravvissuti si accumulano in shortlist.

PIPELINE esaminati 0   scartati 0   shortlist 0
Il segnale è nell'applicant count: chi passa ne ha 20-35, chi cade ne ha 100-200.
Retrieval avversariale

Le board che non sono indicizzate.

Molte career page montano le posizioni via client-side rendering: il markup iniziale è vuoto e le offerte arrivano dopo, da un widget di terze parti. Crawler, motori e aggregatori indicizzano la pagina vuota, quindi per loro quelle posizioni non esistono.

Quello che indicizza il crawler
0 posizioni trovate
Quello che c'è nel sorgente
<div id="grnhse_app"></div> <script src="boards.widget.io/embed/job_board/js   ?for=nomeazienda"></script>   window.location.hash = "#gh_jid=4512207"
URL canonica ricompostaboards.widget.io/nomeazienda/jobs/4512207
Un ruolo trovato così aveva 25 candidati, contro i 140-200 dei comparabili

Le altre due tecniche: deanonimizzare l'intermediario cercando una frase letterale dell'annuncio su Google Search Scraper, e non scartare ruoli vivi quando una migrazione di ATS manda in 404 tutti i link storici.

Persistenza

Il contesto è effimero. Lo stato no.

La difficoltà di un agente che opera su orizzonti lunghi non è il reasoning, è la continuità: la finestra di contesto termina. Quindi lo stato vive in un file versionato, con provenienza e data: ogni candidatura col proprio esito, ogni regola con l'incidente che l'ha generata.

01Ogni regola porta la sua causa

Una regola senza l'incidente che l'ha prodotta non si può falsificare, quindi non viene mai ritirata.

02Le correzioni si propagano all'indietro

Quando un presupposto è risultato falso ho riscritto anche ogni decisione che ci si appoggiava, non solo quella sbagliata.

03Il post-mortem alimenta lo scoring

Un rifiuto in 24 ore ha cambiato quali ruoli il sistema propone. I successi informano quasi zero.

Predizione e calibrazione

Una predizione vale quanto il numero da cui parte.

Per ogni posizione il sistema produce una predizione: la probabilità che quella candidatura porti a un contatto. Non un'etichetta qualitativa, un numero. Il prior viene dal mio storico reale di candidature e risposte, poi corretto per aderenza ai requisiti e per affollamento. Un sistema che restituisce 35% quando il base rate onesto è 8% non sta assistendo, sta compiacendo.

Il priorTra il 5 e il 10 per cento

Osservato su circa venti candidature. Tutto parte da lì.

Il test di onestàProduce anche negativi

Su otto record, tre escono con verdetto negativo. Un ranking che non ordina non è un ranking.

Cosa non èNon è un modello predittivo addestrato

Nessun training set. È un'euristica ancorata a un base rate osservato, e dichiararlo fa parte del design.

Output dello scoring

La predizione, messa alla prova su otto posizioni.

Ruolo Settore e sede Applicant P(callback) Verdetto
Ciclo di settembre 2026. Ragioni sociali rimosse, il resto è output reale
La prima riga proviene dalla board aziendale non indicizzata, non dagli aggregatori.
Livelli di autonomia

L'agente propone. Il confine è progettato.

È la stessa domanda di un assistente conversazionale che decide quando fare escalation a un operatore, e di un modello documentale che decide cosa non imputare. Tre prodotti, un principio.

Autonomia dell'agenteRetrieval, validazione, scoring

Quali attori invocare e la verifica alla board primaria. La normalizzazione. Il ranking, e la dichiarazione di incertezza quando i dati non bastano. La prima stesura del CV. Cosa scrivere in memoria.

Riservato a meGiudizio e verificabilità

Ogni invio è manuale. Se una posizione vale il compromesso che chiede. E il controllo sostanziale: il sistema non produce affermazioni che non posso difendere in colloquio. Quando una regola ha smesso di valere.

Generazione dei documenti

Retargeting del CV sulla singola posizione.

I fatti non cambiano. Cambiano gerarchia e lessico: quali cinque anni vengono raccontati per primi, e con il vocabolario di quel settore. Rendering headless, con misurazione dell'altezza per far stare tutto in una pagina.

Retargeting per

Output reale

Tre posizioni, tre varianti.

variante 01variante 02variante 03          
Mirko Olindo
Senior Product Designer, AI First Design Engineer, Design Systems in Code Product Designer, Fintech e Marketplace
Milano · +39 380 260 6957 · mirkoolindo.xyz
Profilo

Progetta prodotti AI andati in produzione: assistenti conversazionali ancorati alle fonti, progettazione dell'incertezza e del passaggio alla persona.

Disegna e spedisce codice: front-end in React come pull request, design system che vivono nel repository invece che in Figma.

Cinque anni su prodotti finanziari e marketplace: percorso investitore, qualificazione, conversione su ticket alti.

Competenze in evidenza
LLM in produzioneConversational designRAGFallback umano
ReactDesign tokenClaude CodeHandoff
Percorso investitoreOnboardingAnalyticsKYC
Esperienza, identica in tutte e ventidue
NovaVista, Design Lead, co-fondata
2024 → oggi
YELDO, UX/UI Designer, fintech real estate
2022 → 2025
Lio Capital, Junior UX/UI Designer
2021 → 2022
Accenture, stage UX/UI, Digital Consulting
2019 → 2020
Cosa cambia

Titolo, profilo e competenze in evidenza. Vengono riordinati sui requisiti letti nell'annuncio, non riscritti.

Cosa non cambia mai

Aziende, ruoli, date e risultati. Il vincolo è nel prompt e nei dati: l'agente può scegliere cosa mettere davanti, non può aggiungere niente.

Il vincolo di forma

Rendering headless con adattamento a una pagina sola. Se il contenuto sfora, si taglia dalla coda: mai due pagine.

Ventidue varianti in archivio · nessun contenuto inventato tra l'una e l'altra
La divisione del lavoro

Cosa decide la macchina, e cosa decido io.

Progettato e deciso da me
  • L'architettura a sei stadi, e il fatto che la memoria legga prima dello scoring
  • La regola che nessun record riceva un punteggio prima di essere verificato alla fonte primaria
  • La calibrazione della predizione sul mio base rate osservato, invece che su una stima a sentimento
  • Dove si ferma l'agente: raccoglie, verifica, ordina, propone
  • Le regole derivate dai rifiuti, che rientrano nel ciclo successivo
  • Ogni candidatura effettivamente inviata
Eseguito dalla macchina
  • La raccolta: attori Apify su LinkedIn e Indeed, orchestrati via MCP
  • La ricomposizione delle URL canoniche sulle board renderizzate lato client
  • La normalizzazione dei record in uno schema unico
  • Il punteggio e l'ordinamento della shortlist
  • La prima stesura del CV mirato e il rendering su una pagina

Il confine non è tecnico, è progettato. L'agente potrebbe inviare, e non lo fa. La persona sta dove l'errore diventa costoso e difficile da rilevare: candidarsi a una posizione sbagliata non produce un messaggio di errore, produce un colloquio che non porta da nessuna parte.

Il limite, dichiarato

Human-in-the-loop per scelta, non per limite tecnico.

È un sistema conversazionale che guido io, non un job schedulato. Non si sveglia di notte a inviare candidature. Il giudizio su cosa vale il mio tempo, e il controllo su cosa è vero, sono la parte che voglio tenere. Un agente che asseconda sempre è un agente che prima o poi ti fa entrare impreparato in una stanza.

scorri, oppure frecce · F a schermo intero