Ha trasformato Claude Code in una catena di candidature: 69 invii, 20 colloqui

Il genere degli strumenti per «candidature con l'IA» ha un problema di credibilità, e non è tecnico. Tutti sospettano che il risultato sia un PDF imbottito di parole chiave che un recruiter fiuta in quattro secondi.
La prima cosa che vale la pena raccontare di ai-job-search, framework con licenza MIT di Mads Lorentzen che trasforma Claude Code in una pipeline di ricerca del lavoro, è quindi cosa ci ha fatto l'autore: 69 candidature, 20 primi colloqui e un'offerta firmata come AI engineer. Dice anche di aver avvisato ogni datore di lavoro che lo stava usando. O è un segnale ottimo, o è molta fortuna. Probabilmente entrambe le cose.
La seconda cosa è che l'ingegneria interessante non sta nella scrittura. Sta nella verifica.
I tre comandi che contano
/setup riempie il profilo. Tre modi per entrare: puntarlo a una cartella documents/, incollare un singolo CV, oppure rispondere a domande da colloquio. L'autore è brutale: la profondità del profilo è il fattore singolo più importante per la qualità dell'output. Un profilo magro produce candidature generiche, e nessun prompt furbo lo salva.
/scrape cerca sui portali di lavoro, deduplica e ordina per affinità. Il supporto ai portali dipende dal mercato: quelli inclusi coprono la Danimarca (Jobindex, Jobnet, Jobbank, Jobdanmark), più due skill transfrontalieri — uno per l'endpoint pubblico non autenticato di LinkedIn con un flag di regione, uno per un'API REST gratuita dedicata ai ruoli tech. Gli altri mercati richiedono /add-portal, che genera e collauda un nuovo skill.
/apply <url> è quello interessante. Esegue otto passaggi: analizza l'annuncio, assegna un punteggio di affinità, redige un CV e una lettera di presentazione in LaTeX su misura, affida entrambi a un agente revisore separato con un contesto proprio, che studia l'azienda e critica la bozza, poi revisiona, compila, ispeziona il PDF renderizzato e infine esegue un controllo ATS.
Perché compilare e guardare il PDF è tutto il trucco
Chiunque abbia fatto generare un documento LaTeX a un modello linguistico conosce il modo in cui va storto. Il sorgente sembra perfetto. Il PDF ha un titolo orfano in fondo alla prima pagina, la lettera è traboccata su una seconda pagina con una sola riga sopra, e un elenco è silenziosamente ricaduto su un altro carattere.
Questo progetto chiude il cerchio. Il CV deve compilare con lualatex in esattamente due pagine, senza titoli orfani. La lettera deve compilare con xelatex in esattamente una pagina, con la firma visibile. L'agente legge le pagine renderizzate e itera finché i vincoli tengono.
Quando il CV si allunga, non taglia il lavoro più vecchio. Assegna un punteggio a ogni riga in base alla rilevanza per questo annuncio, all'unicità nel documento e al fatto che la lettera ci si appoggi, poi elimina quella con il totale più basso. È un dettaglio piccolo e una differenza grande: è il comportamento di chi ha davvero sfoltito un CV per un ruolo specifico, non di chi segue una regola.
Il controllo ATS è la parte che nessun altro fa
I sistemi di tracciamento delle candidature non leggono la tua bella impaginazione. Leggono il livello di testo incorporato, e LaTeX è famigerato per produrne di tecnicamente presenti e praticamente spazzatura: font di icone che vengono resi come simbolo email ed estratti come niente, legature che rompono il matching delle parole chiave, colonne che rimescolano l'ordine di lettura.
Il framework estrae il livello di testo con pypdf o pdftotext, verifica che i contatti compaiano come testo letterale, controlla mojibake e ordine di lettura, poi confronta la copertura delle parole chiave con l'annuncio. Se nessuno dei due strumenti è installato, degrada a un controllo visivo delle parole chiave invece di saltare il passaggio in silenzio.
Questa è la differenza tra uno strumento che produce documenti e uno che produce documenti capaci di sopravvivere al contatto con un sistema di selezione.
Il vincolo onesto: si rifiuta di inventare
La regola dichiarata è nessuna competenza e nessuna esperienza inventata. Le parole chiave che il profilo non può sostenere vengono marcate come lacune invece di essere infilate dentro. È una posizione etica e insieme pratica: l'esperienza inventata salta fuori al colloquio, e il compito dello strumento è portarti fino a lì.
C'è anche un filtro linguistico. /setup raccoglie ogni lingua di lavoro e il livello; una lingua non dichiarata è un rifiuto netto, un livello insufficiente viene segnalato invece che scartato in automatico. Quasi tutti gli strumenti per il lavoro ignorano del tutto questo punto, ed è così che ti ritrovi una candidatura che suona fluente per un ruolo che richiede tedesco C1.
La trappola sulla privacy su cui non devi mettere il piede
Questa è la parte che metterei in grassetto sulla pagina di download, e l'autore lo fa, ma merita di essere ripetuta: il fork di un repository pubblico è sempre pubblico. GitHub non consente fork privati di repo pubblici. E /setup scrive nome, contatti, storico professionale e aspettative salariali in file tracciati da git.
Fai il fork, lanci setup, fai push, e hai appena pubblicato il tuo CV e le tue aspettative salariali su internet, con tanto di cronologia dei commit.
La strada corretta, documentata nella guida di installazione del progetto, è creare un repository privato e aggiungere l'originale come remote upstream. Ottieni lo stesso flusso di aggiornamento senza l'esposizione. Fai il fork solo se intendi contribuire al codice.
Postura sulla sicurezza, detta chiara
Gli annunci di lavoro sono trattati come input non fidato: le istruzioni incorporate non vengono eseguite, i link al loro interno non vengono seguiti. L'autore ci tiene a precisare che questa è difesa a livello di istruzioni, non una sandbox. Gli skill dei portali girano sulla tua macchina senza approvazione, quindi gli skill presi in prestito da altri fork vanno letti riga per riga: guarda dove vanno le richieste di rete, controlla il manifest del pacchetto per dipendenze e script di lifecycle, esegui i test offline. La copia della cartella è volutamente manuale esattamente per questo motivo.
Lo skill di LinkedIn arriva con un avviso tutto suo: l'automazione viola i termini della piattaforma e va usata a bassa frequenza, per uso personale.
Il costo del ciclo
Niente di tutto questo è gratis, e l'autore lo dice. Claude Code non ha un piano gratuito; serve un abbonamento o credito API. Il passaggio compila-e-guarda brucia token in più, perché l'agente legge le pagine renderizzate e itera — a volte tre o quattro volte su un singolo CV.
Se lo scambio valga la pena dipende da quanto pensi che costi il tuo tempo. Quattro cicli di revisione su un documento che manderai una volta sono tanti. Quattro cicli su un documento che altrimenti avrebbe un titolo orfano nel margine inferiore sono pochi, perché quel titolo è la differenza tra «accurato» e «trascurato» nella prima impressione di chi legge.
C'è un secondo costo facile da perdere di vista: il lavoro sul profilo. /setup premia la concretezza — progetti, strumenti, risultati quantificati, quello che hai fatto tu rispetto a quello che ha fatto il tuo team. Un profilo magro produce la candidatura generica che tutti producono in questa categoria. Lo strumento non può inventare il materiale che non ha, e l'autore è insolitamente diretto nel dire che il fattore limitante è qui, non nel modello.
Cosa non fa
Non ti procura una segnalazione, e le segnalazioni sono dove si vincono davvero la maggior parte dei lavori. Non negozia, e dello stipendio sa solo il numero che hai digitato durante il setup. Non sa che l'hiring manager è un ex collega, né che l'annuncio è aperto da sette mesi perché il team non riesce a mettersi d'accordo sul ruolo.
Quello che fa è togliere la scusa. La candidatura sarà su misura, il PDF compilerà, il livello di testo sarà interpretabile e i requisiti linguistici saranno rispettati. Cosa ci fai, resta comunque la ricerca del lavoro.
Che cos'è davvero
Togli la confezione IA e resta un sistema di build per le candidature: sorgente in ingresso, artefatto in uscita, con uno stadio di verifica in mezzo. Il modello è il compilatore. L'ispezione del PDF e il controllo del testo ATS sono i test. L'agente revisore è la code review.
È quella inquadratura a renderlo più interessante della sua categoria. Non promette di trovarti un lavoro. Promette che il documento che invii sarà di due pagine, leggibile da una macchina, onesto sulle tue lacune e su misura per l'annuncio, e ti dirà quando queste promesse saltano.
Sessantanove candidature e venti colloqui sono un campione decente. Non sono una prova. Ma sono una base di evidenza migliore di quella che hanno quasi tutti gli strumenti di questo spazio, e la pipeline che l'ha prodotta puoi leggerla.
Articoli correlati
I Big Five usano l'IA in silenzio per le copertine dei libri
Wired rivela che almeno tre dei cinque grandi editori americani generano copertine e testi con l'IA senza dichiararlo né consultare gli autori.
Character.AI in bancarotta, Disney offre 20 milioni per i brevetti
Character.AI chiede la protezione fallimentare e Disney entra come stalking horse con 20 milioni, per asset scelti e una licenza brevetti. Del Serie A da 150 milioni restano i brevetti.
XERJ: un motore di ricerca locale per agenti di codice che ammette i propri numeri
XERJ indicizza il codice in locale con tree-sitter per far leggere meno file agli agenti: 2,7 volte meno token di grep, non i 40 del titolo. Il maintainer lo ammette da solo.
Smettiamo di insegnare agli agenti a guardare lo schermo: CLI-Anything dà una riga di comando a ogni programma
Non serve insegnare agli agenti a guardare lo schermo. CLI-Anything genera in sette fasi CLI testate e documentate per GIMP, Blender o LibreOffice, che l'agente si limita a digitare.