init
This commit is contained in:
commit
d295c7f139
1527 files changed
+270726
No files matched your search
@@ -0,0 +1,105 @@
|
||||
# career-ops -- Modalità in italiano (`modes/it/`)
|
||||
|
||||
Questa cartella contiene le traduzioni in italiano delle principali modalità di career-ops per i candidati che si rivolgono al mercato italiano.
|
||||
|
||||
## Quando usare queste modalità?
|
||||
|
||||
Usa `modes/it/` se si verifica almeno una di queste condizioni:
|
||||
|
||||
- Ti candidi principalmente ad **annunci di lavoro in italiano** (LinkedIn IT, Indeed IT, portali aziendali)
|
||||
- Il tuo **CV è in italiano** (o alterni tra italiano e inglese a seconda dell'annuncio)
|
||||
- Hai bisogno di risposte e lettere di presentazione scritte in un **italiano tech naturale**, non tradotte da una macchina
|
||||
- Devi gestire **specificità contrattuali italiane**: contratti a tempo indeterminato o determinato, CCNL, TFR, buoni pasto, assicurazione sanitaria integrativa, tredicesima, quattordicesima, periodo di prova, preavviso, permessi retribuiti e inquadramento come Quadro.
|
||||
|
||||
Se la maggior parte delle tue offerte è in inglese, ti conviene rimanere sulle modalità standard in `modes/`. Le modalità in inglese funzionano anche per le offerte in Italia, ma non conoscono in dettaglio le specificità del mercato italiano.
|
||||
|
||||
## Come attivarle?
|
||||
|
||||
### Opzione 1 -- Per singola sessione
|
||||
|
||||
All'inizio della sessione, dì all'agente:
|
||||
|
||||
> "Usa le modalità in italiano sotto `modes/it/`."
|
||||
|
||||
L'agente leggerà quindi i file di questa cartella anziché quelli di `modes/`.
|
||||
|
||||
### Opzione 2 -- In modo permanente
|
||||
|
||||
Aggiungi nel file `config/profile.yml`:
|
||||
|
||||
```yaml
|
||||
language:
|
||||
primary: it
|
||||
modes_dir: modes/it
|
||||
```
|
||||
|
||||
Ricordalo all'agente durante la tua prima sessione ("Guarda in `profile.yml`, ho configurato `language.modes_dir`"). L'agente utilizzerà automaticamente le modalità in italiano.
|
||||
|
||||
## Quali modalità sono tradotte?
|
||||
|
||||
Questa prima iterazione copre le quattro modalità a più alto impatto:
|
||||
|
||||
| File | Tradotto da | Ruolo |
|
||||
|------|-------------|-------|
|
||||
| `_shared.md` | `modes/_shared.md` (EN) | Contesto condiviso, archetipi, regole globali, specificità del mercato italiano |
|
||||
| `annuncio.md` | `modes/oferta.md` (ES) | Valutazione completa di un annuncio di lavoro (Blocchi A-F) |
|
||||
| `candidarsi.md` | `modes/apply.md` (EN) | Assistente live per compilare i moduli di candidatura |
|
||||
| `pipeline.md` | `modes/pipeline.md` (ES) | Inbox di URL / Second Brain per gli annunci raccolti |
|
||||
|
||||
Le altre modalità (`scan`, `batch`, `pdf`, `tracker`, `auto-pipeline`, `deep`, `contacto`, `ofertas`, `project`, `training`) rimangono in inglese/spagnolo. Il loro contenuto riguarda principalmente il tooling, i percorsi e i comandi, e deve rimanere indipendente dalla lingua.
|
||||
|
||||
## Cosa rimane in inglese
|
||||
|
||||
Volutamente non tradotto perché fa parte del vocabolario tecnologico standard:
|
||||
|
||||
- `cv.md`, `pipeline`, `tracker`, `report`, `score`, `archetype`, `proof point`
|
||||
- Nomi degli strumenti (`Playwright`, `WebSearch`, `WebFetch`, `Read`, `Write`, `Edit`, `Bash`)
|
||||
- Valori di stato nel tracker (`Evaluated`, `Applied`, `Interview`, `Offer`, `Rejected`)
|
||||
- Porzioni di codice, percorsi, comandi
|
||||
|
||||
Le modalità utilizzano un italiano tech naturale, come quello parlato nei team di engineering: testo corrente in italiano, termini tecnici in inglese laddove è d'uso comune. Evitiamo traduzioni forzate (ad esempio, lasciamo "Pipeline" invece di "Canalizzazione" o "Deploy" invece di "Dispiegamento").
|
||||
|
||||
## Lessico di riferimento
|
||||
|
||||
Per mantenere un tono coerente se decidi di modificare o estendere le modalità:
|
||||
|
||||
| Inglese | Italiano (in questa codebase) |
|
||||
|---------|-------------------------------|
|
||||
| Job posting | Annuncio di lavoro |
|
||||
| Application | Candidatura |
|
||||
| Cover letter | Lettera di presentazione |
|
||||
| Resume / CV | CV / Curriculum Vitae |
|
||||
| Salary | Stipendio / Retribuzione |
|
||||
| Compensation | Retribuzione |
|
||||
| Skills | Competenze |
|
||||
| Interview | Colloquio |
|
||||
| Hiring manager | Responsabile della selezione |
|
||||
| Recruiter | Recruiter / Selezionatore |
|
||||
| AI | IA (Intelligenza Artificiale) |
|
||||
| Requirements | Requisiti |
|
||||
| Career history | Percorso professionale |
|
||||
| Notice period | Periodo di preavviso |
|
||||
| Probation | Periodo di prova |
|
||||
| Vacation | Ferie |
|
||||
| 13th month salary | Tredicesima |
|
||||
| Permanent contract | Contratto a tempo indeterminato |
|
||||
| Fixed-term contract | Contratto a tempo determinato |
|
||||
| Freelance | Libero Professionista |
|
||||
| Collective agreement | CCNL (Contratto Collettivo Nazionale di Lavoro) |
|
||||
| Works council | RSU / Rappresentanza Sindacale |
|
||||
| Profit sharing | Premio di risultato / MBO / Partecipazione agli utili |
|
||||
| Meal vouchers | Buoni pasto |
|
||||
| Health insurance | Assicurazione sanitaria integrativa / Cassa sanitaria |
|
||||
| Disability/life insurance | Assicurazione vita |
|
||||
| RTT | Permessi retribuiti |
|
||||
| Cadre status | Quadro |
|
||||
|
||||
## Contribuire
|
||||
|
||||
Per migliorare una traduzione o aggiungere una modalità:
|
||||
|
||||
1. Apri una Issue con la tua proposta (vedi `CONTRIBUTING.md`)
|
||||
2. Rispetta il lessico indicato sopra per mantenere un tono coerente
|
||||
3. Traduci in modo idiomatico -- evita traduzioni letterali o da traduttore automatico
|
||||
4. Conserva gli elementi strutturali (Blocchi A-F, tabelle, blocchi di codice, istruzioni strumenti) esattamente come nell'originale
|
||||
5. Esegui un test con un vero annuncio in italiano prima di inviare la PR
|
||||
@@ -0,0 +1,206 @@
|
||||
# Contesto condiviso -- career-ops (Italiano)
|
||||
|
||||
<!-- ============================================================
|
||||
PERSONALIZZAZIONE DI QUESTO FILE
|
||||
============================================================
|
||||
Questo file contiene il contesto condiviso per tutte le modalità
|
||||
career-ops in versione italiana. Prima di usare career-ops, DEVI:
|
||||
1. Compilare config/profile.yml con le tue informazioni personali
|
||||
2. Creare cv.md nella cartella principale del progetto (CV in Markdown)
|
||||
3. (Opzionale) Creare article-digest.md con i tuoi proof point misurabili
|
||||
4. Adattare le sezioni contrassegnate come [PERSONALIZZARE] qui sotto
|
||||
============================================================ -->
|
||||
|
||||
## Fonti di verità (Leggere SEMPRE prima di ogni valutazione)
|
||||
|
||||
| File | Percorso | Quando |
|
||||
|------|----------|--------|
|
||||
| cv.md | `cv.md` (radice del progetto) | SEMPRE |
|
||||
| article-digest.md | `article-digest.md` (se presente) | SEMPRE (proof point dettagliati) |
|
||||
| profile.yml | `config/profile.yml` | SEMPRE (identità e ruoli target) |
|
||||
|
||||
**REGOLA: Non hardcodare MAI metriche provenienti dai proof point.** Leggerle da `cv.md` e `article-digest.md` al momento della valutazione.
|
||||
**REGOLA: Per metriche di articoli/progetti, `article-digest.md` ha priorità su `cv.md`** (`cv.md` può contenere dati meno recenti).
|
||||
|
||||
---
|
||||
|
||||
## North Star -- Ruoli target
|
||||
|
||||
Il sistema tratta TUTTI i ruoli target con la stessa cura. Nessuno è primario o secondario: ognuno è un successo se retribuzione e prospettive di crescita sono in linea:
|
||||
|
||||
| Archetipo | Assi tematici | Cosa compra l'azienda |
|
||||
|-----------|---------------|-----------------------|
|
||||
| **AI Platform / LLMOps Engineer** | Evaluation, Observability, Affidabilità, Pipeline | Qualcuno che porta l'IA in produzione con metriche concrete |
|
||||
| **Agentic Workflows / Automation** | HITL, Tooling, Orchestrazione, Multi-Agent | Qualcuno che costruisce sistemi agentici affidabili |
|
||||
| **Technical AI Product Manager** | GenAI/Agent, PRD, Discovery, Delivery | Qualcuno che traduce il business in prodotti IA |
|
||||
| **AI Solutions Architect** | Iperautomazione, Enterprise, Integrazioni | Qualcuno che progetta architetture IA end-to-end |
|
||||
| **AI Forward Deployed Engineer** | Client-facing, Consegna rapida, Prototipazione | Qualcuno che distribuisce soluzioni IA rapidamente dal cliente |
|
||||
| **AI Transformation Lead** | Change management, Adozione, Enablement | Qualcuno che guida la trasformazione IA nelle organizzazioni |
|
||||
|
||||
<!-- [PERSONALIZZARE] Adatta gli archetipi sopra ai tuoi ruoli target.
|
||||
Esempio per backend engineering:
|
||||
- Senior Backend Engineer
|
||||
- Staff Platform Engineer
|
||||
- Engineering Manager
|
||||
ecc. -->
|
||||
|
||||
### Framing adattivo per archetipo
|
||||
|
||||
> **Metriche concrete: leggerle da `cv.md` e `article-digest.md` al momento della valutazione. Non hardcodarle MAI qui.**
|
||||
|
||||
| Se il ruolo è... | Mettere in evidenza... | Fonti di proof point |
|
||||
|------------------|------------------------|----------------------|
|
||||
| Platform / LLMOps | Esperienza in produzione, observability, evals, closed-loop | article-digest.md + cv.md |
|
||||
| Agentic / Automation | Orchestrazione multi-agent, HITL, affidabilità, ottimizzazione costi | article-digest.md + cv.md |
|
||||
| Technical AI PM | Product discovery, PRD, metriche, gestione degli stakeholder | cv.md + article-digest.md |
|
||||
| Solutions Architect | Progettazione di sistemi, integrazioni, enterprise-ready | article-digest.md + cv.md |
|
||||
| Forward Deployed Engineer | Consegna rapida, vicinanza al cliente, da prototipo a produzione | cv.md + article-digest.md |
|
||||
| AI Transformation Lead | Change management, enablement dei team, adozione | cv.md + article-digest.md |
|
||||
|
||||
<!-- [PERSONALIZZARE] Associa i tuoi progetti/articoli concreti agli archetipi qui sopra -->
|
||||
|
||||
### Narrativa di transizione (usare in TUTTI i framing)
|
||||
|
||||
<!-- [PERSONALIZZARE] Sostituisci con la tua narrativa personale. Esempi:
|
||||
- "SaaS costruita e venduta dopo 5 anni. Ora 100% focus sull'IA applicata in azienda."
|
||||
- "Lead engineer in una startup Series-B durante una crescita x10. In cerca della prossima sfida."
|
||||
- "Transizione dalla consulenza al prodotto. Ricerca di ruoli ad alta responsabilità."
|
||||
Letta da config/profile.yml -> narrative.exit_story -->
|
||||
|
||||
Usare la narrativa di transizione da `config/profile.yml` per inquadrare TUTTI i contenuti:
|
||||
- **Nei summary PDF:** Fare il ponte tra passato e futuro -- "Applica ora le stesse [competenze] al dominio [dell'annuncio]."
|
||||
- **Nelle storie STAR:** Fare riferimento ai proof point di `article-digest.md`.
|
||||
- **Nelle bozze di risposta (Blocco G):** La narrativa di transizione va nella prima risposta.
|
||||
- **Quando l'annuncio menziona "imprenditoriale", "autonomia", "builder", "end-to-end":** È IL differenziatore n.1. Aumentare il peso del match.
|
||||
|
||||
### Vantaggio trasversale
|
||||
|
||||
Inquadrare il profilo come **"Builder tecnico con pratica dimostrabile"**, adattando il framing al ruolo:
|
||||
- Per PM: "Builder che riduce l'incertezza con prototipi veloci, poi rilascia in produzione in modo disciplinato"
|
||||
- Per FDE: "Builder che consegna valore dal giorno 1 con observability e metriche"
|
||||
- Per SA: "Builder che progetta sistemi end-to-end con vera esperienza di integrazione"
|
||||
- Per LLMOps: "Builder che porta l'IA in produzione con sistemi di quality assurance a ciclo chiuso"
|
||||
|
||||
Posizionare "Builder" come segnale professionale -- non come hobby. I proof point reali lo rendono credibile.
|
||||
|
||||
### Portfolio come proof point (usare nelle candidature ad alto impatto)
|
||||
|
||||
<!-- [PERSONALIZZARE] Se hai una demo live, un dashboard o un progetto pubblico, configuralo qui.
|
||||
Esempio:
|
||||
dashboard:
|
||||
url: "https://tuodominio.dev/demo"
|
||||
password: "demo-2026"
|
||||
when_to_share: "Ruoli LLMOps, AI Platform, Observability"
|
||||
Letto da config/profile.yml -> narrative.proof_points e narrative.dashboard -->
|
||||
|
||||
Se il candidato ha una demo live o un dashboard (verificare in `profile.yml`), proporne l'accesso nelle candidature pertinenti.
|
||||
|
||||
### Intelligence sulle retribuzioni (Comp Intelligence)
|
||||
|
||||
<!-- [PERSONALIZZARE] Cerca le fasce retributive per i tuoi ruoli target e adatta i valori -->
|
||||
|
||||
**Consigli generali:**
|
||||
- WebSearch per i dati di mercato attuali (Glassdoor, Levels.fyi, LinkedIn IT, portali locali)
|
||||
- Inquadrare per titolo di ruolo, non per singole competenze -- i titoli definiscono le fasce salariali
|
||||
- Le tariffe per Liberi Professionisti in Italia devono coprire tasse, contributi previdenziali (INPS Gestione Separata o Cassa di categoria), ferie e assenze -- generalmente il 40-60% in più rispetto al costo lordo di un dipendente equivalente
|
||||
- Il geo-arbitraggio funziona anche in remote: costo della vita più basso = risparmio netto maggiore
|
||||
|
||||
### Mercato italiano -- Specificità (IMPORTANTE)
|
||||
|
||||
Negli annunci e nelle trattative in Italia si usano termini e tutele specifici che vanno considerati con precisione:
|
||||
|
||||
| Termine | Significato | Impatto sulla valutazione |
|
||||
|---------|-------------|---------------------------|
|
||||
| **Contratto a tempo indeterminato** | Lavoro permanente. È lo standard in Italia | Standard atteso. Un contratto a termine per un profilo senior è un segnale d'allerta |
|
||||
| **Contratto a tempo determinato** | Contratto con durata prestabilita | Accettabile per progetti specifici. Altrimenti, capire perché non viene offerto l'indeterminato |
|
||||
| **Periodo di prova** | Fase iniziale per verificare la compatibilità (1-6 mesi a seconda del CCNL) | Standard. Segnalare se supera i limiti legali o previsti dal CCNL applicato |
|
||||
| **Periodo di preavviso** | Tempo minimo prima di potersi dimettere (di solito 1-3 mesi) | Da verificare per pianificare la data di inizio del nuovo ruolo |
|
||||
| **Quadro** | Categoria contrattuale per impiegati con mansioni direttive o alta specializzazione | La maggior parte dei ruoli senior/lead nel tech rientra qui. Verificare se menzionato |
|
||||
| **CCNL** (Contratto Collettivo Nazionale) | Accordo quadro di settore (es. Metalmeccanico, Terziario/Commercio). Fissa minimi salariali e scatti | Verificare CCNL e livello proposto per calcolare correttamente superminimo e retribuzione |
|
||||
| **Permessi retribuiti** | Ore di riposo accumulate (es. ex-festività) in aggiunta alle ferie | Un plus concreto da valorizzare nel calcolo del tempo libero annuale |
|
||||
| **Tredicesima** | Mensilità aggiuntiva erogata tipicamente a dicembre | Da includere nel calcolo della RAL (mensile x 13 + superminimo/bonus). Non dimenticarla nei confronti |
|
||||
| **TFR** (Trattamento di Fine Rapporto) | Liquidazione accumulata mensilmente (~7,4% della RAL) e liquidata a fine rapporto | Elemento fondamentale della retribuzione differita nel valore complessivo del pacchetto |
|
||||
| **Premio di risultato / MBO / Partecipazione utili** | Bonus variabili legati a performance individuali o aziendali | Può incrementare significativamente la retribuzione. Verificare i criteri di erogazione |
|
||||
| **Buoni pasto** | Ticket per il pranzo (es. Edenred, Ticket Restaurant), esenti da tasse entro soglie giornaliere | Benefit standard ma concreto. Può valere 1.000-2.000 EUR netti all'anno |
|
||||
| **Assicurazione sanitaria integrativa** | Fondo sanitario previsto dai CCNL (es. Metasalute, Fondo Est) | Standard contrattuale. Verificare se la copertura è estesa al nucleo familiare |
|
||||
| **Assicurazione vita** | Polizza vita obbligatoria secondo CCNL per Dirigenti | Importante da verificare in caso di inquadramento Quadro |
|
||||
| **RSU / Rappresentanza Sindacale** | Organo di rappresentanza sindacale in azienda | Più comune nei grandi gruppi, impatto minore nelle trattative individuali tech |
|
||||
| **Ferie** | Minimo di legge di 4 settimane (20-22 giorni), spesso estese dal CCNL | Sotto il minimo legale è illegale. Ottimo se superiore a 25 giorni più permessi retribuiti |
|
||||
| **Libero Professionista** | Collaborazione a Partita IVA | Alternativa al rapporto di lavoro dipendente. Attenzione alla gestione fiscale (regime forfettario) e alle clausole di esclusività |
|
||||
|
||||
### Script di negoziazione
|
||||
|
||||
<!-- [PERSONALIZZARE] Adatta alla tua situazione -->
|
||||
|
||||
**Aspettative retributive (framework generale):**
|
||||
> "Sulla base dei dati di mercato attuali per questo ruolo, miro a una fascia di [FASCIA da profile.yml] come RAL. Resto flessibile sulla struttura: ciò che conta è il valore complessivo del pacchetto e le prospettive di crescita."
|
||||
|
||||
**Risposta a offerte ridotte per localizzazione:**
|
||||
> "I ruoli per cui sono in selezione sono orientati ai risultati, non alla posizione geografica. Il mio track record non cambia con il codice postale."
|
||||
|
||||
**Se l'offerta è sotto il target:**
|
||||
> "In questo momento sto discutendo con altre aziende pacchetti nella fascia [fascia superiore]. La vostra realtà mi interessa molto per [motivo]. C'è margine per arrivare a [target]?"
|
||||
|
||||
**Chiarimento su Tredicesima / CCNL / Bonus:**
|
||||
> "Per confrontare i pacchetti in modo equo, potremmo dettagliare separatamente la RAL fissa (inclusa la tredicesima ed eventuali superminimi), la parte variabile e gli altri benefit?"
|
||||
|
||||
### Politica di localizzazione (Location Policy)
|
||||
|
||||
<!-- [PERSONALIZZARE] Adatta alla tua situazione. Letta da config/profile.yml -> location -->
|
||||
|
||||
**Nei moduli di candidatura:**
|
||||
- Domande binarie "Puoi lavorare in sede?": rispondere in base alla disponibilità reale in `profile.yml`
|
||||
- Campi liberi: indicare esplicitamente il fuso orario di lavoro e la disponibilità a trasferte
|
||||
|
||||
**Nelle valutazioni (scoring):**
|
||||
- Posizioni ibride fuori dal proprio paese di residenza: punteggio **3.0** (non 1.0)
|
||||
- Punteggio 1.0 solo se l'annuncio dichiara esplicitamente "presenza obbligatoria in sede 4-5 giorni a settimana, nessuna eccezione"
|
||||
|
||||
### Priorità time-to-offer
|
||||
|
||||
- Demo funzionante + metriche > perfezione formale
|
||||
- Candidarsi subito > approfondire all'infinito
|
||||
- Approccio 80/20, ogni attività è in timebox
|
||||
|
||||
---
|
||||
|
||||
## Regole globali
|
||||
|
||||
### MAI
|
||||
|
||||
1. Inventare esperienze o metriche
|
||||
2. Modificare `cv.md` o i file del portfolio
|
||||
3. Inviare candidature a nome del candidato senza il suo consenso
|
||||
4. Condividere un numero di telefono nei messaggi generati
|
||||
5. Raccomandare una retribuzione sotto il mercato
|
||||
6. Generare un PDF senza aver prima letto l'annuncio
|
||||
7. Usare jargon corporate o formule vuote
|
||||
8. Ignorare il tracker (ogni annuncio valutato va registrato)
|
||||
|
||||
### SEMPRE
|
||||
|
||||
0. **Lettera di presentazione:** Se il modulo lo consente, includerla SEMPRE. PDF con lo stesso design visivo del CV. Citazioni dell'annuncio mappate sui proof point. Massimo 1 pagina.
|
||||
1. Leggere `cv.md` e `article-digest.md` (se presente) prima di valutare un annuncio
|
||||
1b. **Prima valutazione di ogni sessione:** eseguire `node cv-sync-check.mjs` via Bash. In caso di avvisi, informare il candidato.
|
||||
2. Rilevare l'archetipo del ruolo e adattare il framing
|
||||
3. Citare righe esatte del CV durante il matching
|
||||
4. Usare WebSearch per dati retributivi e informazioni sull'azienda
|
||||
5. Registrare nel tracker dopo ogni valutazione
|
||||
6. Generare il contenuto nella lingua dell'annuncio (italiano se l'annuncio è in italiano, inglese altrimenti)
|
||||
7. Essere diretti e concreti -- nessun giro di parole
|
||||
8. Italiano tech naturale per i testi generati. Frasi brevi, verbi d'azione, evitare il passivo. Non tradurre forzatamente i termini tecnici (stack, pipeline, deployment, embedding, ecc.)
|
||||
8b. **URL dei case study nel Professional Summary del PDF:** Se il PDF menziona demo o case study, i relativi URL DEVONO comparire nel primo paragrafo (Professional Summary) -- i recruiter spesso leggono solo quello. Tutti gli URL in HTML con `white-space: nowrap`
|
||||
9. **Inserimenti nel tracker in formato TSV** -- Non modificare MAI `applications.md` direttamente per nuovi inserimenti. Scrivere il file TSV in `batch/tracker-additions/`, sarà `merge-tracker.mjs` a gestire la fusione
|
||||
10. **`**URL:**` in ogni intestazione di report** -- inserito tra Score e PDF
|
||||
|
||||
### Strumenti
|
||||
|
||||
| Strumento | Utilizzo |
|
||||
|-----------|----------|
|
||||
| WebSearch | Ricerca retribuzioni, tendenze, cultura aziendale, contatti LinkedIn, fallback annunci |
|
||||
| WebFetch | Fallback per estrarre annunci da pagine statiche |
|
||||
| Playwright | Verificare se gli annunci sono attivi (browser_navigate + browser_snapshot), estrarre annunci da Single Page Application (SPA). **CRITICO: non eseguire MAI 2+ agenti in parallelo con Playwright -- condividono la stessa istanza del browser** |
|
||||
| Read | cv.md, article-digest.md, cv-template.html |
|
||||
| Write | HTML temporaneo per PDF, applications.md, report .md |
|
||||
| Edit | Aggiornare il tracker |
|
||||
| Bash | `node generate-pdf.mjs` |
|
||||
@@ -0,0 +1,166 @@
|
||||
# Modalità: annuncio -- Valutazione completa A-F
|
||||
|
||||
Quando il candidato incolla o fornisce un annuncio di lavoro (testo o URL), fornire SEMPRE i 6 blocchi di valutazione.
|
||||
|
||||
## Blocco 0 -- Rilevamento dell'archetipo
|
||||
|
||||
Classificare l'annuncio in uno dei 6 archetipi di riferimento (vedi `_shared.md`). Se è un ruolo ibrido, indicare i 2 archetipi più vicini. Questa classificazione determina:
|
||||
- Quali proof point prioritizzare nel Blocco B
|
||||
- Come riformulare il summary del CV nel Blocco E
|
||||
- Quali storie STAR preparare nel Blocco F
|
||||
|
||||
## Blocco A -- Riepilogo del ruolo
|
||||
|
||||
Tabella con:
|
||||
- Archetipo rilevato
|
||||
- Settore (Platform / Agentic / LLMOps / ML / Enterprise)
|
||||
- Funzione (Build / Consulenza / Management / Deploy)
|
||||
- Seniority
|
||||
- Localizzazione (Full remote / Ibrido / In sede)
|
||||
- Dimensione del team (se menzionata)
|
||||
- TL;DR in una sola frase
|
||||
|
||||
## Blocco B -- Corrispondenza con il CV
|
||||
|
||||
Leggere `cv.md`. Creare una tabella che mappa ogni requisito dell'annuncio su righe esatte del CV.
|
||||
|
||||
**Adattamento per archetipo:**
|
||||
- FDE -> priorità a proof point su velocità di consegna e vicinanza al cliente
|
||||
- SA -> priorità a progettazione di sistemi e integrazioni complesse
|
||||
- PM -> priorità a product discovery e metriche di prodotto/business
|
||||
- LLMOps -> priorità a evals, observability e pipeline in produzione
|
||||
- Agentic -> priorità a orchestrazione multi-agent, HITL e gestione affidabile degli errori
|
||||
- Transformation -> priorità a change management, enablement e adozione organizzativa
|
||||
|
||||
Aggiungere una sezione **Gap** con strategia di mitigazione per ogni lacuna rilevata:
|
||||
1. È un blocco insormontabile o un nice-to-have?
|
||||
2. Il candidato può dimostrare un'esperienza affine o complementare?
|
||||
3. C'è un progetto nel portfolio che copre questa lacuna?
|
||||
4. Piano di mitigazione concreto (es. frase per la lettera di presentazione, mini-progetto rapido, ecc.)
|
||||
|
||||
## Blocco C -- Inquadramento e strategia
|
||||
|
||||
1. **Livello rilevato** nell'annuncio rispetto al **livello naturale del candidato** per questo archetipo.
|
||||
2. **Piano "valorizzare la seniority in modo autentico"**: formulazioni specifiche per l'archetipo, risultati concreti da evidenziare, come posizionare l'esperienza da founder/imprenditore come valore aggiunto.
|
||||
3. **Piano "se proposto per un livello inferiore (downlevel)"**: accettare solo se la retribuzione è equa, negoziare revisione a 6 mesi, concordare criteri di promozione chiari fin dall'inizio.
|
||||
|
||||
## Blocco D -- Retribuzione e mercato
|
||||
|
||||
Usare WebSearch per raccogliere:
|
||||
- Stipendi attuali per lo stesso ruolo (Glassdoor, Levels.fyi, LinkedIn IT, portali locali)
|
||||
- Reputazione retributiva dell'azienda (Glassdoor, recensioni online)
|
||||
- Andamento della domanda per questo ruolo sul mercato italiano
|
||||
|
||||
Presentare i dati in tabella con le fonti. Se non ci sono dati, dichiararlo esplicitamente -- non inventare.
|
||||
|
||||
**Mercato italiano -- Verifiche obbligatorie:**
|
||||
- La tredicesima / quattordicesima è menzionata? Includerla nel calcolo della RAL.
|
||||
- È prevista una parte variabile (bonus, MBO, stock option)?
|
||||
- Si fa riferimento a Premio di risultato o partecipazione agli utili? Verificare lo storico aziendale.
|
||||
- Quale CCNL viene applicato? Verificare inquadramento e livello contrattuale proposto.
|
||||
- Contratto a tempo indeterminato o determinato? Se determinato: durata, motivazione e possibilità di conversione.
|
||||
- Libero Professionista? Tariffa giornaliera, durata della collaborazione e rischio di contestazione per "falsa Partita IVA" (vincoli di orario e sede).
|
||||
|
||||
## Blocco E -- Piano di personalizzazione
|
||||
|
||||
| # | Sezione | Stato attuale | Modifica proposta | Giustificazione |
|
||||
|---|---------|---------------|-------------------|--------------------|
|
||||
| 1 | Summary | ... | ... | ... |
|
||||
| ... | ... | ... | ... | ... |
|
||||
|
||||
Fornire le 5 modifiche principali al CV + le 5 modifiche principali al profilo LinkedIn per massimizzare il match con l'annuncio.
|
||||
|
||||
## Blocco F -- Piano dei colloqui
|
||||
|
||||
6-10 storie in formato STAR+R mappate sui requisiti dell'annuncio (STAR + **Reflection**):
|
||||
|
||||
| # | Requisito dell'annuncio | Storia STAR+R | S | T | A | R | Reflection |
|
||||
|---|-------------------------|---------------|---|---|---|---|------------|
|
||||
|
||||
La colonna **Reflection** cattura cosa si è imparato o cosa si farebbe diversamente. Questo elemento segnala seniority: i profili junior descrivono cosa è successo, i senior ne traggono insegnamenti e linee guida.
|
||||
|
||||
**Story Bank:** Se `interview-prep/story-bank.md` esiste, verificare se le storie sono già presenti. In caso contrario, aggiungerle. Con il tempo si costruisce un archivio riutilizzabile di 5-10 storie principali adattabili a qualsiasi colloquio.
|
||||
|
||||
**Storie inquadrate per archetipo:**
|
||||
- FDE -> evidenziare velocità di consegna e vicinanza al cliente
|
||||
- SA -> evidenziare decisioni di architettura e trade-off tecnici
|
||||
- PM -> evidenziare product discovery e arbitraggi tra priorità
|
||||
- LLMOps -> evidenziare metriche, evals e hardening in produzione
|
||||
- Agentic -> evidenziare orchestrazione, gestione degli errori e cicli HITL
|
||||
- Transformation -> evidenziare adozione dell'IA e change management su persone e processi
|
||||
|
||||
Includere anche:
|
||||
- 1 case study raccomandato (quale progetto presentare e con quale struttura)
|
||||
- Domande a rischio (red flag) e come rispondere (es. "Perché ha venduto la sua azienda?", "Aveva un team sotto di sé?", "Come mai ha cambiato dopo poco tempo?")
|
||||
|
||||
---
|
||||
|
||||
## Post-valutazione
|
||||
|
||||
Eseguire **SEMPRE** dopo i blocchi A-F:
|
||||
|
||||
### 1. Salvare il report .md
|
||||
|
||||
Salvare la valutazione completa in `reports/{###}-{company-slug}-{YYYY-MM-DD}.md`.
|
||||
|
||||
- `{###}` = prossimo numero sequenziale a 3 cifre, zero-padded. Allocarlo in modo atomico eseguendo `node reserve-report-num.mjs` (restituisce `{###}` su stdout), scrivere il report, poi eseguire `node reserve-report-num.mjs --release {###}` per liberare la prenotazione.
|
||||
- `{company-slug}` = nome dell'azienda in minuscolo senza spazi (usare i trattini)
|
||||
- `{YYYY-MM-DD}` = data odierna
|
||||
|
||||
**Formato del report:**
|
||||
|
||||
```markdown
|
||||
# Valutazione: {Azienda} -- {Ruolo}
|
||||
|
||||
**Data:** {YYYY-MM-DD}
|
||||
**Archetipo:** {rilevato}
|
||||
**Punteggio:** {X/5}
|
||||
**URL:** {URL dell'annuncio}
|
||||
**PDF:** {percorso del file o in attesa}
|
||||
|
||||
---
|
||||
|
||||
## A) Riepilogo del ruolo
|
||||
(contenuto completo del blocco A)
|
||||
|
||||
## B) Corrispondenza con il CV
|
||||
(contenuto completo del blocco B)
|
||||
|
||||
## C) Inquadramento e strategia
|
||||
(contenuto completo del blocco C)
|
||||
|
||||
## D) Retribuzione e mercato
|
||||
(contenuto completo del blocco D)
|
||||
|
||||
## E) Piano di personalizzazione
|
||||
(contenuto completo del blocco E)
|
||||
|
||||
## F) Piano dei colloqui
|
||||
(contenuto completo del blocco F)
|
||||
|
||||
## G) Bozze di risposta per la candidatura
|
||||
(solo se punteggio >= 4.5 -- risposte pronte per i moduli del portale aziendale)
|
||||
|
||||
---
|
||||
|
||||
## Parole chiave estratte
|
||||
(15-20 parole chiave estratte dall'annuncio per il superamento dei filtri ATS)
|
||||
```
|
||||
|
||||
### 2. Registrare nel tracker
|
||||
|
||||
Registrare **SEMPRE** la valutazione in `data/applications.md`:
|
||||
- Prossimo numero sequenziale
|
||||
- Data odierna
|
||||
- Azienda
|
||||
- Ruolo
|
||||
- Punteggio: media del match (da 1 a 5)
|
||||
- Stato: `Evaluated`
|
||||
- PDF: no (o sì se l'auto-pipeline ha generato il PDF direttamente)
|
||||
- Report: link relativo al file del report (es: `[001](reports/001-azienda-2026-01-01.md)`)
|
||||
|
||||
**Formato del tracker:**
|
||||
|
||||
```markdown
|
||||
| # | Data | Azienda | Ruolo | Punteggio | Stato | PDF | Report |
|
||||
```
|
||||
@@ -0,0 +1,114 @@
|
||||
# Modalità: candidarsi -- Assistente live per i moduli di candidatura
|
||||
|
||||
Modalità interattiva per quando il candidato compila un modulo di candidatura (es. su LinkedIn o un portale aziendale). Legge lo schermo, carica il contesto della valutazione precedente dell'annuncio e genera risposte personalizzate per ogni domanda del modulo.
|
||||
|
||||
## Prerequisiti
|
||||
|
||||
- **Ottimale con Playwright visibile:** il candidato vede il browser e l'agente può interagire direttamente con la pagina.
|
||||
- **Senza Playwright:** il candidato condivide uno screenshot o incolla le domande manualmente.
|
||||
|
||||
## Workflow
|
||||
|
||||
```
|
||||
1. RILEVARE -> Leggere la scheda attiva del browser (screenshot/URL/titolo)
|
||||
2. IDENTIFICARE -> Estrarre azienda + ruolo dalla pagina
|
||||
3. CERCARE -> Trovare corrispondenze con i report esistenti in reports/
|
||||
4. CARICARE -> Leggere il report completo + Blocco G (se esiste)
|
||||
5. CONFRONTARE -> Il ruolo a schermo corrisponde a quello valutato? Se cambia -> avvisare
|
||||
6. ANALIZZARE -> Identificare TUTTE le domande visibili nel modulo
|
||||
7. GENERARE -> Per ogni domanda, generare una risposta personalizzata
|
||||
8. PRESENTARE -> Mostrare le risposte formattate pronte per il copia-incolla
|
||||
```
|
||||
|
||||
## Fase 1 -- Rilevare l'annuncio
|
||||
|
||||
**Con Playwright:** Snapshot della pagina attiva. Leggere titolo, URL e contenuto visibile.
|
||||
|
||||
**Senza Playwright:** Chiedere al candidato di:
|
||||
- Condividere uno screenshot del modulo (il Read tool legge il testo dall'immagine)
|
||||
- Oppure incollare le domande in formato testo
|
||||
- Oppure indicare azienda e ruolo per cercare il report corrispondente
|
||||
|
||||
## Fase 2 -- Identificare e caricare il contesto
|
||||
|
||||
1. Estrarre il nome dell'azienda e il titolo del ruolo dalla pagina.
|
||||
2. Cercare in `reports/` per nome azienda (Grep case-insensitive).
|
||||
3. Se c'è corrispondenza -> caricare il report completo.
|
||||
4. Se il Blocco G è presente -> usare le bozze precedenti come base di partenza.
|
||||
5. Se NON c'è corrispondenza -> avvisare il candidato e proporre un auto-pipeline rapido.
|
||||
|
||||
## Fase 3 -- Rilevare variazioni nel ruolo
|
||||
|
||||
Se il ruolo a schermo differisce da quello valutato:
|
||||
- **Avvisare il candidato:** "Il ruolo rilevato è [Y], il report fa riferimento a [X]. Vuoi che riesegua la valutazione o che adatti le risposte al nuovo titolo?"
|
||||
- **Se adattare:** Aggiornare le risposte al nuovo ruolo senza rieseguire la valutazione completa.
|
||||
- **Se rivalutare:** Avviare la valutazione completa A-F, aggiornare il report e rigenerare il Blocco G.
|
||||
- **Aggiornare il tracker:** Modificare il titolo del ruolo in `applications.md` se necessario.
|
||||
|
||||
## Fase 4 -- Analizzare le domande del modulo
|
||||
|
||||
Identificare tutte le domande visibili a schermo:
|
||||
- Campi di testo libero (lettera di presentazione, "perché questa posizione", motivazione, ecc.)
|
||||
- Elenchi a discesa (come hai conosciuto l'azienda, permessi di lavoro, ecc.)
|
||||
- Domande Sì/No (disponibilità al trasferimento, necessità di visto, disponibilità temporale, ecc.)
|
||||
- Campi retribuzione (retribuzione desiderata -- indicare la RAL in euro per l'Italia)
|
||||
- Campi di upload (CV, lettera di presentazione PDF, referenze)
|
||||
|
||||
Classificare ogni domanda:
|
||||
- **Già nel Blocco G:** riprendere la risposta esistente
|
||||
- **Nuova domanda:** generare la risposta partendo dal report e da `cv.md`
|
||||
|
||||
## Fase 5 -- Generare le risposte
|
||||
|
||||
Per ogni domanda, costruire la risposta seguendo questo schema:
|
||||
|
||||
1. **Contesto del report:** usare i proof point del Blocco B e le storie STAR del Blocco F.
|
||||
2. **Blocco G precedente:** se esiste una bozza, usarla come base e affinarla.
|
||||
3. **Tono "Vi scelgo":** sicuro e professionale, non implorante né puramente descrittivo.
|
||||
4. **Specificità:** citare qualcosa di concreto dell'annuncio visibile a schermo.
|
||||
5. **career-ops proof point:** includerlo nel campo "Informazioni aggiuntive" se presente nel modulo.
|
||||
|
||||
**Campi specifici per i moduli di candidatura italiani:**
|
||||
- **Retribuzione desiderata (RAL):** fascia definita in `profile.yml` in euro, con l'aggiunta "negoziabile in base al pacchetto complessivo di benefit e welfare".
|
||||
- **Data di disponibilità:** data realistica tenendo conto del periodo di preavviso (di solito 1-3 mesi).
|
||||
- **Permesso di lavoro / Cittadinanza:** risposte concise; per i cittadini italiani/UE: "Nessun visto richiesto (cittadino UE)".
|
||||
- **Lingue:** livelli secondo il Quadro Comune Europeo di Riferimento (QCER, A1-C2).
|
||||
- **Mobilità:** specificare le aree geografiche accettabili e la frequenza massima delle trasferte (es. "disponibile a trasferte fino al 20% del tempo").
|
||||
|
||||
**Formato di output:**
|
||||
|
||||
```
|
||||
## Risposte per [Azienda] -- [Ruolo]
|
||||
|
||||
Base: Report #NNN | Punteggio: X.X/5 | Archetipo: [tipo]
|
||||
|
||||
---
|
||||
|
||||
### 1. [Domanda esatta del modulo]
|
||||
> [Risposta pronta per il copia-incolla]
|
||||
|
||||
### 2. [Domanda successiva]
|
||||
> [Risposta]
|
||||
|
||||
...
|
||||
|
||||
---
|
||||
|
||||
Note:
|
||||
- [Osservazioni sul ruolo, variazioni, ecc.]
|
||||
- [Suggerimenti di personalizzazione che il candidato dovrebbe verificare]
|
||||
```
|
||||
|
||||
## Fase 6 -- Dopo la candidatura (opzionale)
|
||||
|
||||
Se il candidato conferma di aver inviato il modulo:
|
||||
1. Aggiornare lo stato in `applications.md` da "Evaluated" a "Applied".
|
||||
2. Aggiornare il Blocco G del report con le risposte effettivamente inviate.
|
||||
3. Suggerire il passo successivo: `/career-ops contacto` per avviare il contatto su LinkedIn con il responsabile della selezione.
|
||||
|
||||
## Gestione dello scorrimento
|
||||
|
||||
Se il modulo contiene più domande rispetto a quelle visibili:
|
||||
- Chiedere al candidato di scorrere la pagina e condividere un altro screenshot.
|
||||
- Oppure incollare le domande restanti.
|
||||
- Procedere per iterazioni fino a coprire l'intero modulo.
|
||||
@@ -0,0 +1,62 @@
|
||||
# Modalità: pipeline -- Inbox degli URL (Second Brain)
|
||||
|
||||
Elabora gli URL degli annunci accumulati in `data/pipeline.md`. Il candidato aggiunge gli URL quando vuole, poi esegue `/career-ops pipeline` per elaborarli tutti in una volta.
|
||||
|
||||
## Workflow
|
||||
|
||||
1. **Leggere** `data/pipeline.md` -> trovare gli elementi contrassegnati come `- [ ]` nella sezione "In attesa" / "Pending" / "Pendientes" / "En attente"
|
||||
2. **Per ogni URL in attesa**:
|
||||
a. Riservare il prossimo `REPORT_NUM` sequenziale eseguendo `node reserve-report-num.mjs` (liberare la prenotazione con `node reserve-report-num.mjs --release <num>` una volta scritto il report)
|
||||
b. **Estrarre l'annuncio** con Playwright (`browser_navigate` + `browser_snapshot`) -> WebFetch -> WebSearch
|
||||
c. Se l'URL non è accessibile -> contrassegnarlo come `- [!]` con una nota e passare al successivo
|
||||
d. **Auto-pipeline completo**: Valutazione A-F -> Report .md -> PDF (se punteggio >= 3.0) -> Tracker
|
||||
e. **Spostare da "In attesa" a "Elaborati"**: `- [x] #NNN | URL | Azienda | Ruolo | Punteggio/5 | PDF sì/no`
|
||||
3. **Se ci sono 3+ URL in attesa**, avviare gli agenti in parallelo (strumento Agent con `run_in_background`) per massimizzare la velocità.
|
||||
4. **Al termine**, mostrare una tabella riassuntiva:
|
||||
|
||||
```
|
||||
| # | Azienda | Ruolo | Punteggio | PDF | Azione raccomandata |
|
||||
```
|
||||
|
||||
## Formato di pipeline.md
|
||||
|
||||
```markdown
|
||||
## In attesa
|
||||
- [ ] https://jobs.example.com/posting/123
|
||||
- [ ] https://boards.greenhouse.io/company/jobs/456 | Azienda SRL | Senior PM
|
||||
- [!] https://private.url/job -- Errore: richiesto login
|
||||
|
||||
## Elaborati
|
||||
- [x] #143 | https://jobs.example.com/posting/789 | Acme SRL | AI PM | 4.2/5 | PDF sì
|
||||
- [x] #144 | https://boards.greenhouse.io/xyz/jobs/012 | BigCo | SA | 2.1/5 | PDF no
|
||||
```
|
||||
|
||||
> Nota: Le intestazioni delle sezioni possono essere in inglese ("Pending"/"Processed"), spagnolo ("Pendientes"/"Procesadas"), tedesco ("Offen"/"Verarbeitet"), francese ("En attente"/"Traitees") o italiano ("In attesa"/"Elaborati"). Flessibili in lettura, fedeli allo stile esistente in scrittura.
|
||||
|
||||
## Rilevamento dell'annuncio dall'URL
|
||||
|
||||
1. **Playwright (preferito):** `browser_navigate` + `browser_snapshot`. Funziona con tutte le Single Page Application (SPA).
|
||||
2. **WebFetch (fallback):** Per le pagine statiche o quando Playwright non è disponibile.
|
||||
3. **WebSearch (ultima risorsa):** Per cercare su portali secondari che indicizzano l'annuncio.
|
||||
|
||||
**Casi particolari:**
|
||||
- **LinkedIn:** può richiedere login -> contrassegnare come `[!]` e chiedere al candidato di incollare il testo dell'annuncio
|
||||
- **PDF:** se l'URL punta a un PDF, leggerlo direttamente con il Read tool
|
||||
- **Prefisso `local:`:** legge un file locale. Esempio: `local:jds/linkedin-pm-ai.md` -> legge `jds/linkedin-pm-ai.md`
|
||||
- **Indeed IT / LinkedIn IT:** portali molto diffusi in Italia. Playwright gestisce bene i cookie banner.
|
||||
|
||||
## Numerazione automatica
|
||||
|
||||
1. Eseguire `node reserve-report-num.mjs` per riservare in modo atomico il prossimo numero sequenziale (restituisce `{###}` su stdout).
|
||||
2. Scrivere il report con questo numero.
|
||||
3. Liberare la prenotazione con `node reserve-report-num.mjs --release {###}` una volta scritto il report.
|
||||
|
||||
## Sincronizzazione delle fonti
|
||||
|
||||
Prima di elaborare un URL, verificare la sincronizzazione:
|
||||
|
||||
```bash
|
||||
node cv-sync-check.mjs
|
||||
```
|
||||
|
||||
In caso di desincronizzazione, avvisare il candidato prima di procedere.
|
||||
Reference in new issue
Block a user