claude-code-arcane 1.2.0 → 1.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (55) hide show
  1. package/CHANGELOG.md +9 -0
  2. package/README.md +2 -0
  3. package/agents/engineering/dotnet-engineer.md +78 -0
  4. package/docs/SKILLS-CATALOG.md +26 -3
  5. package/package.json +1 -1
  6. package/profiles/backend-dotnet.yaml +54 -0
  7. package/profiles/job-hunt.yaml +35 -0
  8. package/profiles/unity-design.yaml +1 -0
  9. package/profiles/unity-dev.yaml +1 -0
  10. package/rules/dotnet-code.md +64 -0
  11. package/skills/cold-outreach/SKILL.md +65 -0
  12. package/skills/cold-outreach/references/recruiter-playbook.md +65 -0
  13. package/skills/cover-letter/SKILL.md +66 -0
  14. package/skills/cv-ats-export/SKILL.md +64 -0
  15. package/skills/cv-ats-export/scripts/cv_export.py +306 -0
  16. package/skills/cv-tailor/SKILL.md +70 -0
  17. package/skills/cv-tailor/references/ats-keywords.md +46 -0
  18. package/skills/dotnet-architecture/SKILL.md +66 -0
  19. package/skills/dotnet-architecture/references/anti-patterns.md +12 -0
  20. package/skills/dotnet-architecture/references/checklist.md +19 -0
  21. package/skills/dotnet-architecture/references/patterns.md +118 -0
  22. package/skills/dotnet-architecture/references/project-structure.md +78 -0
  23. package/skills/dotnet-best-practices/SKILL.md +76 -0
  24. package/skills/dotnet-best-practices/references/api-design.md +75 -0
  25. package/skills/dotnet-best-practices/references/architecture.md +62 -0
  26. package/skills/dotnet-best-practices/references/async.md +62 -0
  27. package/skills/dotnet-best-practices/references/database.md +69 -0
  28. package/skills/dotnet-best-practices/references/dependency-injection.md +73 -0
  29. package/skills/dotnet-best-practices/references/devops.md +76 -0
  30. package/skills/dotnet-best-practices/references/error-handling.md +72 -0
  31. package/skills/dotnet-best-practices/references/performance.md +63 -0
  32. package/skills/dotnet-best-practices/references/security.md +73 -0
  33. package/skills/dotnet-best-practices/references/testing.md +76 -0
  34. package/skills/dotnet-scaffold/SKILL.md +99 -0
  35. package/skills/install-mcp/SKILL.md +107 -0
  36. package/skills/install-mcp/references/manual-setup.md +92 -0
  37. package/skills/interview-prep/SKILL.md +69 -0
  38. package/skills/interview-prep/references/star-framework.md +42 -0
  39. package/skills/job-hunt/SKILL.md +92 -0
  40. package/skills/job-hunt/references/templates/Aplicacion.md +48 -0
  41. package/skills/job-hunt/references/templates/CV Custom.md +53 -0
  42. package/skills/job-hunt/references/templates/Contacto.md +30 -0
  43. package/skills/job-hunt/references/templates/Dashboard.md +45 -0
  44. package/skills/job-hunt/references/templates/Empresa.md +36 -0
  45. package/skills/job-hunt/references/templates/Entrevista.md +44 -0
  46. package/skills/job-hunt/references/templates/Perfil.md +38 -0
  47. package/skills/job-search/SKILL.md +83 -0
  48. package/skills/job-search/references/scoring-rubric.md +43 -0
  49. package/skills/linkedin-optimize/SKILL.md +79 -0
  50. package/skills/master-profile/SKILL.md +69 -0
  51. package/skills/network-map/SKILL.md +61 -0
  52. package/skills/network-map/scripts/network_map.py +109 -0
  53. package/skills/personal-brand/SKILL.md +54 -0
  54. package/skills/personal-brand/references/post-pillars.md +66 -0
  55. package/skills/portfolio-site/SKILL.md +59 -0
@@ -0,0 +1,92 @@
1
+ ---
2
+ name: job-hunt
3
+ description: "Entry point for the job-search skillset. Scaffolds and manages a portable career workspace (profiles, CVs, applications, companies, contacts, interviews) and routes to the right skill. Triggers: job hunt, busqueda laboral, buscar trabajo, organizar postulaciones, setup career workspace."
4
+ argument-hint: "[setup | status | next]"
5
+ category: "career"
6
+ user-invocable: true
7
+ allowed-tools: Read, Glob, Grep, Bash, Write, Edit
8
+ ---
9
+
10
+ # Job Hunt — Career Workspace Orchestrator
11
+
12
+ Eres el punto de entrada de la suite de búsqueda laboral. Tu trabajo es: detectar (o crear) el **career workspace**, entender en qué etapa está el usuario, y rutear al skill correcto. No hacés todo vos — orquestás.
13
+
14
+ ## Idioma
15
+
16
+ Comunicación con el usuario en **español**. Los **outputs** (CV, LinkedIn, cover letters) van en el idioma del rol objetivo: **inglés** para roles internacionales/remotos globales, **español** cuando la oferta o empresa lo pidan. Preguntá si hay ambigüedad.
17
+
18
+ ## El career workspace
19
+
20
+ Todo el sistema vive en una carpeta portable (default: `career-workspace/` en la raíz del proyecto; configurable). Estructura:
21
+
22
+ ```
23
+ career-workspace/
24
+ 00-Dashboard.md índice + aplicaciones activas + próximos pasos
25
+ 01-Perfiles/ perfil maestro + perfiles por rol
26
+ 02-CVs/ CV base por perfil + CV custom por postulación
27
+ exports/ PDFs ATS generados
28
+ 03-Aplicaciones/ una nota por postulación
29
+ 04-Empresas/ research de empresas
30
+ 05-Contactos/ recruiters, referidos, hiring managers
31
+ 06-Entrevistas/ prep y feedback por ronda
32
+ 07-Recursos/ cover letters reutilizables, links
33
+ portfolio/ datos source-of-truth del portfolio web
34
+ Templates/ plantillas con frontmatter
35
+ tools/ cv_export.py (lo instala /cv-ats-export)
36
+ ```
37
+
38
+ Es **portable y agnóstico de Obsidian**: usa `[[wikilinks]]` (funcionan en Obsidian si el usuario lo usa, y son legibles en texto plano), frontmatter YAML, y prefijos numéricos para ordenar carpetas. No requiere Obsidian instalado.
39
+
40
+ ## Modos
41
+
42
+ ### `setup` — Crear el workspace
43
+ 1. Preguntar dónde crear el workspace (default `./career-workspace/`) y el/los rol(es) objetivo.
44
+ 2. Crear el árbol de carpetas completo.
45
+ 3. Copiar los 7 templates desde `references/templates/` a `Templates/` del workspace.
46
+ 4. Crear `00-Dashboard.md` desde `references/templates/Dashboard.md`.
47
+ 5. Sugerir el siguiente paso: `/master-profile` para construir el perfil maestro.
48
+
49
+ ### `status` — Dónde estoy
50
+ 1. Leer `00-Dashboard.md` y escanear `03-Aplicaciones/`.
51
+ 2. Resumir: aplicaciones activas por prioridad, próximas entrevistas, ofertas que cierran pronto, gaps (aplicaciones sin CV/cover letter).
52
+ 3. Recomendar la acción de mayor impacto.
53
+
54
+ ### `next` — Qué hago ahora
55
+ Según el estado del workspace, recomendar el skill siguiente (ver routing).
56
+
57
+ ## Routing
58
+
59
+ | Situación | Skill |
60
+ |-----------|-------|
61
+ | No hay workspace | `/job-hunt setup` |
62
+ | Falta perfil maestro | `/master-profile` |
63
+ | Encontrar/scorear ofertas, plan de búsqueda | `/job-search` |
64
+ | Adaptar CV a una oferta | `/cv-tailor` |
65
+ | Exportar CV a PDF ATS | `/cv-ats-export` |
66
+ | Escribir cover letter / mensaje de aplicación | `/cover-letter` |
67
+ | Mensaje en frío a recruiter/hiring manager | `/cold-outreach` |
68
+ | Optimizar perfil de LinkedIn | `/linkedin-optimize` |
69
+ | Crear/actualizar portfolio web | `/portfolio-site` |
70
+ | Preparar una entrevista | `/interview-prep` |
71
+
72
+ ## Workflow estándar para una nueva oportunidad
73
+
74
+ 1. `/job-search` → encontrar y scorear la oferta, crear nota en `03-Aplicaciones/` + `04-Empresas/`.
75
+ 2. Identificar contacto objetivo → nota en `05-Contactos/`.
76
+ 3. `/cv-tailor` → CV custom partiendo del perfil base + research.
77
+ 4. `/cv-ats-export` → PDF ATS a `02-CVs/exports/`.
78
+ 5. `/cover-letter` → mensaje de aplicación custom.
79
+ 6. `/cold-outreach` → si hay contacto al que escribirle directo.
80
+ 7. Cuando haya entrevista → `/interview-prep`.
81
+
82
+ ## Reglas
83
+
84
+ - Nunca reorganizar carpetas ni renombrar notas sin preguntar — rompe `[[wikilinks]]` en silencio.
85
+ - Nunca commitear datos sensibles (CV con teléfono/dirección, salarios, emails de recruiters) a un remoto sin confirmación explícita.
86
+ - Si una categoría necesita un template que no existe, proponerlo antes de inventarlo.
87
+ - Preservar los prefijos numéricos al crear archivos dentro de las carpetas ordenadas.
88
+ - Máximo accionable: el usuario siempre termina sabiendo qué skill correr next.
89
+
90
+ ## Handoff
91
+
92
+ Pedí aprobación al usuario (approval) antes de escribir o sobrescribir archivos del workspace. Cuando el workspace queda READY, el siguiente paso es `/master-profile` para construir el perfil maestro.
@@ -0,0 +1,48 @@
1
+ ---
2
+ tipo: aplicacion
3
+ empresa:
4
+ perfil:
5
+ cv_usado:
6
+ estado: interesado
7
+ score:
8
+ fecha_aplicacion:
9
+ fecha_actualizacion: {{date:YYYY-MM-DD}}
10
+ link_oferta:
11
+ contacto_principal:
12
+ salario_rango:
13
+ modalidad:
14
+ ubicacion:
15
+ prioridad: media
16
+ ---
17
+
18
+ # {{title}}
19
+
20
+ ## Puesto y empresa
21
+ - **Empresa:** [[]]
22
+ - **Rol:**
23
+ - **Link oferta:**
24
+
25
+ ## Por qué me interesa
26
+
27
+
28
+ ## Match con mi perfil
29
+ - Perfil base: [[]]
30
+ - Qué de mi experiencia alinea con lo que piden:
31
+ -
32
+
33
+ ## A quién escribirle / contacto principal
34
+ - [[]]
35
+ - Canal (LinkedIn / mail / formulario):
36
+ - Ángulo del mensaje:
37
+
38
+ ## CV custom usado
39
+ - [[]]
40
+
41
+ ## Timeline / seguimiento
42
+ - {{date:YYYY-MM-DD}} — creada la nota
43
+
44
+ ## Entrevistas
45
+ -
46
+
47
+ ## Notas
48
+
@@ -0,0 +1,53 @@
1
+ ---
2
+ tipo: cv_custom
3
+ perfil_base:
4
+ aplicacion:
5
+ empresa:
6
+ contacto_objetivo:
7
+ fecha: {{date:YYYY-MM-DD}}
8
+ archivo_pdf:
9
+ archivo_final:
10
+ ---
11
+
12
+ # CV custom — {{title}}
13
+
14
+ ## Contexto de la postulación
15
+ - **Aplicación:** [[]]
16
+ - **Empresa:** [[]]
17
+ - **Perfil base del que parto:** [[]]
18
+ - **Contacto objetivo (quién va a leer esto):** [[]]
19
+
20
+ ## Investigación previa
21
+ > Qué sabemos del contacto objetivo y del equipo: background, senioridad, qué valora, en qué proyectos está.
22
+
23
+ -
24
+
25
+ ## Keywords de la oferta
26
+ > Extraídas literales del job description para matchear con filtros automáticos (ATS) y lectura humana.
27
+
28
+ -
29
+
30
+ ## Qué resaltar en este CV (y qué bajar el volumen)
31
+ - Resaltar:
32
+ -
33
+ - Reducir / omitir:
34
+ -
35
+
36
+ ## Highlights reescritos para esta postulación
37
+ > Logros del perfil base reordenados / reescritos con el vocabulario de la oferta.
38
+
39
+ -
40
+
41
+ ## Proyectos destacados para este rol
42
+ -
43
+
44
+ ## Cover letter / mensaje de aplicación
45
+ > El mensaje que acompaña el CV, custom para el contacto.
46
+
47
+ ```
48
+
49
+ ```
50
+
51
+ ## Archivo final exportado
52
+ - Ruta:
53
+ - Fecha de export:
@@ -0,0 +1,30 @@
1
+ ---
2
+ tipo: contacto
3
+ empresa:
4
+ rol:
5
+ linkedin:
6
+ email:
7
+ telefono:
8
+ tipo_contacto:
9
+ primer_contacto: {{date:YYYY-MM-DD}}
10
+ ultima_interaccion: {{date:YYYY-MM-DD}}
11
+ ---
12
+
13
+ # {{title}}
14
+
15
+ ## Sobre esta persona
16
+ > Qué hace, a qué equipo pertenece, cómo apareció en el radar, qué background tiene.
17
+
18
+ -
19
+
20
+ ## Por qué le escribo / qué busco de este contacto
21
+
22
+
23
+ ## Historial de interacciones
24
+ - {{date:YYYY-MM-DD}} — creada la nota
25
+
26
+ ## Mensajes intercambiados
27
+
28
+
29
+ ## Aplicaciones vinculadas
30
+ - [[]]
@@ -0,0 +1,45 @@
1
+ ---
2
+ tipo: dashboard
3
+ ---
4
+
5
+ # Dashboard — Búsqueda laboral
6
+
7
+ > Índice del workspace. Cuando haya datos (aplicaciones, entrevistas), estas secciones pueden convertirse en queries dinámicas con Bases/Dataview si usás Obsidian.
8
+
9
+ ## Aplicaciones activas
10
+ **Prioridad alta:**
11
+ -
12
+
13
+ **Prioridad media:**
14
+ -
15
+
16
+ **Cerradas / descartadas:**
17
+ -
18
+
19
+ ## Próximas entrevistas
20
+ -
21
+
22
+ ## A seguir esta semana
23
+ -
24
+
25
+ ## Perfiles
26
+ -
27
+
28
+ ## Accesos rápidos por carpeta
29
+ - `01-Perfiles/` — perfiles profesionales base + perfil maestro
30
+ - `02-CVs/` — versiones de CV (incluye CVs custom por postulación)
31
+ - `03-Aplicaciones/` — una nota por postulación
32
+ - `04-Empresas/` — research de empresas
33
+ - `05-Contactos/` — recruiters, referidos, hiring managers
34
+ - `06-Entrevistas/` — prep y feedback por ronda
35
+ - `07-Recursos/` — cover letters reutilizables, links útiles
36
+ - `portfolio/` — source-of-truth del portfolio web
37
+ - `Templates/` — plantillas con frontmatter
38
+
39
+ ## Workflow estándar para una nueva oportunidad
40
+ 1. `/job-search` — encontrar y scorear la oferta → nota en `03-Aplicaciones/` + `04-Empresas/`.
41
+ 2. Identificar contacto objetivo → nota en `05-Contactos/`.
42
+ 3. `/cv-tailor` — CV custom desde el perfil base + research.
43
+ 4. `/cv-ats-export` — PDF ATS a `02-CVs/exports/`.
44
+ 5. `/cover-letter` — mensaje de aplicación custom.
45
+ 6. `/interview-prep` — cuando haya entrevista.
@@ -0,0 +1,36 @@
1
+ ---
2
+ tipo: empresa
3
+ industria:
4
+ tamaño:
5
+ ubicacion:
6
+ website:
7
+ linkedin:
8
+ stack_conocido: []
9
+ modalidad:
10
+ fuente:
11
+ ---
12
+
13
+ # {{title}}
14
+
15
+ ## Qué hacen
16
+
17
+
18
+ ## Cultura / valores
19
+
20
+
21
+ ## Stack técnico conocido
22
+ -
23
+
24
+ ## Proceso de contratación (si lo conozco)
25
+
26
+
27
+ ## Contactos en la empresa
28
+ - [[]]
29
+
30
+ ## Aplicaciones vinculadas
31
+ - [[]]
32
+
33
+ ## Research / notas
34
+ > Contexto para custom-izar CV y mensajes de acercamiento.
35
+
36
+ -
@@ -0,0 +1,44 @@
1
+ ---
2
+ tipo: entrevista
3
+ aplicacion:
4
+ empresa:
5
+ ronda:
6
+ fecha: {{date:YYYY-MM-DD}}
7
+ duracion:
8
+ entrevistadores: []
9
+ modalidad:
10
+ ---
11
+
12
+ # {{title}}
13
+
14
+ ## Aplicación
15
+ - [[]]
16
+
17
+ ## Preparación
18
+ - Research de empresa: [[]]
19
+ - Temas a repasar:
20
+ -
21
+ - Preguntas propias a hacer:
22
+ -
23
+
24
+ ## Durante la entrevista
25
+ ### Temas que surgieron
26
+ -
27
+
28
+ ### Preguntas que me hicieron
29
+ -
30
+
31
+ ### Preguntas que hice
32
+ -
33
+
34
+ ## Feedback
35
+ ### Cómo salí (autoevaluación)
36
+
37
+
38
+ ### Señales de ellos
39
+
40
+
41
+ ## Próximo paso
42
+
43
+
44
+ ## Notas post-entrevista
@@ -0,0 +1,38 @@
1
+ ---
2
+ tipo: perfil
3
+ rol_objetivo:
4
+ seniority:
5
+ stack: []
6
+ modalidad: []
7
+ mercado_objetivo: []
8
+ match_score_minimo: 75
9
+ salario_minimo_usd_mes:
10
+ keywords: []
11
+ keywords_excluir: []
12
+ regla_seniority:
13
+ fuentes: []
14
+ ---
15
+
16
+ # Perfil — {{title}}
17
+
18
+ ## Resumen
19
+ > 2–3 líneas: quién sos para este rol y qué te hace fuerte.
20
+
21
+ ## Stack principal
22
+ -
23
+
24
+ ## Experiencia destacada para este perfil
25
+ -
26
+
27
+ ## Diferenciales
28
+ -
29
+
30
+ ## Logros cuantificables (para CV)
31
+ > Con número, contexto y resultado. Reusables en CVs y LinkedIn.
32
+ -
33
+
34
+ ## CVs asociados
35
+ -
36
+
37
+ ## Aplicaciones relacionadas
38
+ -
@@ -0,0 +1,83 @@
1
+ ---
2
+ name: job-search
3
+ description: "Find, score and prioritize job openings against your profile, then build a structured 7-day search plan with daily goals. Creates application and company notes in the workspace. Triggers: buscar trabajo, encontrar ofertas, scorear ofertas, plan de busqueda laboral, priorizar postulaciones, job search plan, donde aplicar."
4
+ argument-hint: "[search <query> | score <job-url> | plan]"
5
+ category: "career"
6
+ user-invocable: true
7
+ allowed-tools: Read, Glob, Grep, Write, Edit, WebFetch, WebSearch
8
+ ---
9
+
10
+ # Job Search — Búsqueda, scoring y plan
11
+
12
+ Encontrás ofertas, las **scoreás** contra el perfil del usuario, priorizás, y armás un **plan de búsqueda de 7 días** con objetivos diarios. Alimentás el workspace con notas de aplicación y empresa para que el resto del flujo (`/cv-tailor`, `/cover-letter`, etc.) las consuma.
13
+
14
+ ## Inputs
15
+
16
+ - **Perfil(es) objetivo** (`01-Perfiles/`): rol, seniority, stack, modalidad, mercado, **score mínimo** (default 75), salario mínimo, keywords y keywords a excluir.
17
+ - Fuentes de ofertas que use el usuario (job boards, WeWorkRemotely, LinkedIn, Workable, etc.).
18
+
19
+ ## Modos
20
+
21
+ ### `search <query>` — Encontrar ofertas
22
+ 1. **Sourcing.** Conseguir ofertas frescas que matcheen el perfil (rol + stack + modalidad + mercado). Dos caminos:
23
+ - **Apify MCP (opcional).** Si hay un MCP de Apify conectado, podés usar un actor de scraping de LinkedIn Jobs para traer ofertas estructuradas. Ejemplo de pedido: *"Scrapeá LinkedIn jobs para [rol] posteadas en los últimos 7 días en empresas de 50–5000 empleados; filtrá por match con mi background en [dominio]; devolvé tabla rankeada con empresa, rol, ubicación, salario, fecha de posteo y fit score 1–10 basado en mi resume; marcá el top 10 para aplicar hoy."* Buscá el actor con ToolSearch (`apify`) si el MCP está presente. **⚠️ OBLIGATORIO: antes de invocar Apify, mostrá el warning de abajo y pedí confirmación explícita.**
24
+ - **WebSearch/WebFetch (default recomendado).** Camino sin Apify: buscar en job boards (muchos con feed/API pública: WeWorkRemotely, RemoteOK, etc.) y fetchear los JDs. Es el default seguro y gratis.
25
+
26
+ > ### ⚠️ Warning Apify — mostralo SIEMPRE antes de usar esta parte
27
+ >
28
+ > Antes de correr cualquier actor de Apify (especialmente scraping de LinkedIn), presentá estos puntos al usuario y esperá confirmación explícita. No invoques Apify "en silencio".
29
+ >
30
+ > 1. **No es gratis.** Apify cobra por uso (compute units / por resultado); un scrape grande consume crédito. El tier free es limitado.
31
+ > 2. **Scrapear LinkedIn viola sus Términos de Servicio.** LinkedIn detecta y bloquea scraping activamente y puede **restringir o banear la cuenta**. La legalidad de scrapear datos públicos está en zona gris (caso hiQ vs LinkedIn); el riesgo de ToS/cuenta es real y es del usuario, no de Apify. Preferir actors sobre **job boards públicos** antes que LinkedIn directo; si igual se scrapea LinkedIn, hacerlo de forma consciente y no con una cuenta crítica.
32
+ > 3. **El API token de Apify es sensible.** Autoriza correr actors (y gastar el plan) en nombre del usuario. Mantenerlo seguro; no exponerlo ni commitearlo. (Apify no recolecta conversaciones/tokens y trata a los actors como no confiables: les da un proxy y no les entrega las credenciales — un actor malicioso puede usar las tools habilitadas pero no exfiltrar el token.)
33
+ > 4. **Calidad/estabilidad variable.** Los scrapers de LinkedIn se rompen seguido; los resultados pueden venir incompletos o desactualizados.
34
+ >
35
+ > Si el usuario no confirma, usá el camino WebSearch/WebFetch.
36
+ 2. Para cada oferta candidata: extraer rol, empresa, stack, modalidad, ubicación, rango salarial, link, fecha de cierre.
37
+ 3. Scorear (ver rúbrica) y filtrar por el umbral del perfil.
38
+ 4. Crear nota en `03-Aplicaciones/` (template `Aplicacion`, estado `interesado`, con `score`) + nota en `04-Empresas/` (template `Empresa`) por cada una sobre el umbral.
39
+ 5. Actualizar el `00-Dashboard.md` con las activas por prioridad, marcando el **top 10 para hoy**.
40
+
41
+ ### `score <job-url>` — Scorear una oferta puntual
42
+ 1. WebFetch del JD.
43
+ 2. Aplicar la rúbrica contra el perfil → score 0–100 + breakdown + recomendación (aplicar / borderline / skip).
44
+ 3. Si pasa, crear las notas como arriba.
45
+
46
+ ### `plan` — Plan de búsqueda de 7 días
47
+ Generar un plan accionable con objetivos diarios. Ejemplo de esqueleto (ajustar al estado del usuario):
48
+
49
+ - **Día 1 — Base.** Perfil maestro + perfiles por rol al día; LinkedIn optimizado (`/linkedin-optimize`).
50
+ - **Día 2 — Sourcing.** Buscar y scorear 15–20 ofertas; quedarte con las ≥ umbral.
51
+ - **Día 3 — Research.** Empresas + contactos objetivo de las top.
52
+ - **Día 4 — Aplicaciones tanda 1.** CV custom + cover letter para las 5 de mayor prioridad (`/cv-tailor`, `/cv-ats-export`, `/cover-letter`).
53
+ - **Día 5 — Outreach.** Mensajes a recruiters/hiring managers de las top (`/cold-outreach`).
54
+ - **Día 6 — Aplicaciones tanda 2** + follow-ups de la tanda 1.
55
+ - **Día 7 — Review.** Métricas (aplicadas / respuestas / entrevistas), ajustar perfil/CV según señales, planear próxima semana.
56
+
57
+ ## Rúbrica de scoring
58
+
59
+ Ver `references/scoring-rubric.md`. En resumen, score ponderado 0–100 sobre:
60
+ - Match de stack/skills (peso alto)
61
+ - Seniority correcto (penalizar over/under-qualified)
62
+ - Modalidad y mercado/elegibilidad (remoto, zona horaria, visa)
63
+ - Salario vs mínimo
64
+ - Cultura/etapa según preferencia
65
+ - Señales de calidad de la oferta (claridad, recencia, # aplicantes)
66
+
67
+ Umbral default ≥75 (configurable en el frontmatter del perfil, campo `match_score_minimo`).
68
+
69
+ ## Tracking
70
+
71
+ - Estados de aplicación: `interesado` → `aplicado` → `en proceso` → `entrevista` → `oferta` / `rechazado` / `descartado`.
72
+ - Mantener el `00-Dashboard.md` como vista única: activas por prioridad, próximas entrevistas, qué cierra pronto, a seguir esta semana.
73
+
74
+ ## Reglas
75
+
76
+ - No aplicar a todo: el umbral existe para concentrar esfuerzo donde hay match real.
77
+ - Marcar gaps con honestidad al scorear (no inflar el match).
78
+ - Respetar elegibilidad (visa/zona horaria) — un score alto con bloqueo de elegibilidad no sirve.
79
+ - No guardar datos sensibles de recruiters en remotos sin confirmación.
80
+
81
+ ## Handoff
82
+
83
+ Confirmá (approval) antes de crear notas de aplicación/empresa o tocar el Dashboard. Cuando las ofertas priorizadas están READY, el siguiente paso es `/cv-tailor` sobre las de prioridad alta.
@@ -0,0 +1,43 @@
1
+ # Job Scoring Rubric
2
+
3
+ Score ponderado 0–100 para decidir dónde invertir esfuerzo. El objetivo no es aplicar a todo: es concentrarte en ofertas con match real. Umbral default **≥75** (configurable por perfil en `match_score_minimo`).
4
+
5
+ ## Dimensiones y pesos (default)
6
+
7
+ | Dimensión | Peso | Cómo puntuar |
8
+ |---|---:|---|
9
+ | **Match de stack/skills** | 30 | % de must-haves que cumplís. 30 si cubrís todos los core; baja proporcional. |
10
+ | **Seniority** | 15 | 15 si el nivel encaja. Penalizar over-qualified (aburrimiento/rechazo) y under-qualified (filtro). |
11
+ | **Modalidad + elegibilidad** | 20 | Remoto/híbrido/presencial según preferencia; zona horaria; visa/eligibility. Si hay bloqueo duro de elegibilidad → cap fuerte al score. |
12
+ | **Salario** | 15 | 15 si ≥ tu objetivo; proporcional hasta tu mínimo; 0 si por debajo del mínimo. Si no publican, neutro (≈8) y marcar. |
13
+ | **Empresa/cultura/etapa** | 10 | Encaje con preferencia (startup vs enterprise, producto vs consultora, valores). |
14
+ | **Calidad de la oferta** | 10 | Claridad del JD, recencia (fresca > vieja), pocos aplicantes, proceso definido. |
15
+
16
+ Sumá las dimensiones → score 0–100.
17
+
18
+ ## Ajustes / banderas
19
+
20
+ - **Frase gatillo positiva** (ej. "code-forward", "high autonomy", stack que amás): +2–5 si refuerza tu fit.
21
+ - **Red flag en el JD** (ego, "rockstar", scope imposible, "trabajamos como familia"): −5–10 y nota de cautela.
22
+ - **Cierre inminente:** no cambia el score, pero sube la **prioridad** de acción.
23
+ - **Elegibilidad bloqueada** (visa que no tenés, zona horaria incompatible obligatoria): cap el score a <50 aunque el resto sea perfecto.
24
+
25
+ ## De score a acción
26
+
27
+ | Score | Acción |
28
+ |---|---|
29
+ | **≥85** | Prioridad alta. Aplicar con CV custom + cover letter + outreach. |
30
+ | **75–84** | Aplicar; CV custom sí, outreach si hay contacto fácil. |
31
+ | **60–74** | Borderline. Aplicar solo si hay tiempo o un ángulo fuerte (referido). |
32
+ | **<60** | Skip salvo razón estratégica. |
33
+
34
+ ## Prioridad (distinta del score)
35
+
36
+ `prioridad` en el frontmatter combina score + urgencia + elegibilidad:
37
+ - **alta:** score ≥85, o ≥75 con cierre inminente / referido caliente.
38
+ - **media:** 75–84 sin urgencia.
39
+ - **baja:** borderline o a la espera de validar requisitos.
40
+
41
+ ## Registro
42
+
43
+ Guardá el `score` en el frontmatter de la nota de `03-Aplicaciones/` y reflejá las activas en `00-Dashboard.md` agrupadas por prioridad. Anotá el breakdown si el score fue borderline — ayuda a decidir y a re-evaluar después.
@@ -0,0 +1,79 @@
1
+ ---
2
+ name: linkedin-optimize
3
+ description: "Optimize a LinkedIn profile to attract recruiters and rank in search — headline, About, experience with KPIs, keywords, value proposition and a 30-second pitch. No LinkedIn Premium needed. Triggers: optimizar LinkedIn, mejorar perfil LinkedIn, headline LinkedIn, about LinkedIn, LinkedIn para reclutadores, LinkedIn SEO, pitch profesional."
4
+ argument-hint: "[section | full] (paste your current profile)"
5
+ category: "career"
6
+ user-invocable: true
7
+ allowed-tools: Read, Glob, Grep, Write, Edit
8
+ ---
9
+
10
+ # LinkedIn Optimize — Perfil que atrae oportunidades
11
+
12
+ Optimizás un perfil de LinkedIn para que (1) ranquee en las búsquedas de recruiters y (2) convenza al humano que lo abre. Trabajás contra el **perfil maestro** (`01-Perfiles/`) y lo que el usuario pega de su perfil actual.
13
+
14
+ > **Importante:** Claude no accede a LinkedIn ni edita el perfil directamente. El usuario pega/sube el contenido actual; vos generás el texto optimizado para que lo copie/pegue.
15
+
16
+ ## Cómo traer tu perfil a Claude
17
+
18
+ La forma más completa: en LinkedIn → **Recursos / More → Save to PDF** (exporta el perfil entero) y subí ese PDF a Claude. Alternativa: copiar/pegar headline + About + experiencia. Con el PDF, podés pedir una **auditoría contra JDs reales**:
19
+
20
+ > "Audita mi perfil de LinkedIn (adjunto) contra JDs de [rol] senior en [empresas objetivo]. Encontrá gaps en headline, About y Experience: keywords faltantes, framing de identidad equivocado, credenciales enterradas. Después reescribí headline y About para posicionarme como **builder**, optimizado para la búsqueda de recruiters."
21
+
22
+ **Framing de identidad:** posicionate como alguien que *construye/entrega* (builder), no como una lista de tareas. El headline y el About deben gritar resultados e identidad, no responsabilidades.
23
+
24
+ ## Las 7 áreas de optimización
25
+
26
+ Cubrí estas siete (el usuario puede pedir una con `[section]` o todas con `full`):
27
+
28
+ ### 1. Headline (titular)
29
+ - 220 caracteres. No solo el puesto: **rol + valor + keywords**.
30
+ - Patrón: `{Rol} | {especialidad/stack} | {valor o a quién ayudás}`.
31
+ - Las keywords del headline pesan fuerte en el ranking de búsqueda.
32
+
33
+ ### 2. About (sección "Acerca de")
34
+ - Primera 2–3 líneas son las que se ven sin "ver más": que enganchen.
35
+ - Estructura: gancho → qué hacés y para quién → 2–3 logros con número → stack/keywords → CTA suave.
36
+ - Primera persona, tono humano, escaneable (párrafos cortos o bullets).
37
+
38
+ ### 3. Experiencia con KPIs
39
+ - Cada rol con bullets de **logros cuantificables**, no responsabilidades.
40
+ - Mismo principio que el CV: verbo de acción + métrica + impacto.
41
+ - Incluí keywords de tu industria/rol en los bullets.
42
+
43
+ ### 4. Keywords estratégicas (LinkedIn SEO)
44
+ - Identificá las keywords que los recruiters de tu rol buscan.
45
+ - Distribuilas en headline, About, experiencia, y la sección Skills.
46
+ - Las **Skills** (hasta 50, fijá las 3 top) alimentan el match con búsquedas y endorsements.
47
+
48
+ ### 5. Propuesta de valor única
49
+ - Qué te diferencia: combinación de skills, dominio, resultados. Una frase clara que sintetiza "por qué vos".
50
+
51
+ ### 6. Pitch de 30 segundos
52
+ - Versión hablada de tu propuesta de valor: quién sos, qué hacés/resolvés, qué buscás. Para mensajes, networking y el "contame de vos".
53
+
54
+ ### 7. Review ATS / searchability
55
+ - Foto profesional, banner, URL personalizada, "Open to work" configurado (público o solo-recruiters), ubicación y rol objetivo seteados.
56
+ - Perfil completo = más alcance (LinkedIn premia completitud).
57
+ - Sin gaps inexplicados; títulos consistentes con cómo se busca el rol.
58
+
59
+ ## Proceso
60
+
61
+ 1. Leer el perfil maestro + lo que el usuario pega de su LinkedIn actual.
62
+ 2. Definir el/los **rol(es) objetivo** y sus keywords (reusá `cv-tailor/references/ats-keywords.md` para el método).
63
+ 3. Generar el contenido optimizado por sección (la/s que pida).
64
+ 4. Entregar listo para copiar/pegar + un checklist de la review (área 7).
65
+ 5. Opcional: guardar el output en `01-Perfiles/LinkedIn.md` para versionarlo.
66
+
67
+ ## Idioma
68
+
69
+ LinkedIn en **inglés** si apuntás a roles internacionales (mayor alcance), español si tu mercado es local. Se puede tener el About bilingüe.
70
+
71
+ ## Reglas
72
+
73
+ - No inventar logros ni métricas — todo debe ser defendible.
74
+ - Keywords naturales, no stuffing.
75
+ - Recordar que no se puede acceder/editar LinkedIn: el output es para copiar/pegar.
76
+
77
+ ## Handoff
78
+
79
+ Pedí aprobación (approval) antes de escribir `01-Perfiles/LinkedIn.md`. Cuando el contenido está READY para copiar/pegar, un buen siguiente paso es `/portfolio-site` para alinear el portfolio web.
@@ -0,0 +1,69 @@
1
+ ---
2
+ name: master-profile
3
+ description: "Build and maintain the master professional profile — the single source of truth (experience, skills with levels, projects, education, references, bios) that every CV, LinkedIn profile and portfolio derives from. Triggers: perfil maestro, master resume, cronologia laboral, single source of truth CV, mi experiencia profesional."
4
+ argument-hint: "[build | update | derive <role>]"
5
+ category: "career"
6
+ user-invocable: true
7
+ allowed-tools: Read, Glob, Grep, Write, Edit
8
+ ---
9
+
10
+ # Master Profile — Single Source of Truth
11
+
12
+ Construís y mantenés el **perfil maestro**: el documento del que derivan todos los CVs, el LinkedIn y el portfolio. La regla de oro: **si algo cambia, se cambia acá primero** y de acá se sincroniza al resto.
13
+
14
+ Vive en `01-Perfiles/Perfil Maestro.md` dentro del career workspace. Los perfiles por rol (`Backend.md`, `Frontend.md`, etc.) son **vistas filtradas** del maestro, no fuentes independientes.
15
+
16
+ ## Por qué existe
17
+
18
+ Mantener N CVs sincronizados a mano es la causa #1 de errores (fechas que no coinciden, logros que faltan en una versión). Con un maestro: editás un lado, derivás el resto. `/cv-tailor`, `/linkedin-optimize` y `/portfolio-site` consumen este archivo.
19
+
20
+ ## Estructura del perfil maestro
21
+
22
+ Generá el archivo con estas secciones (todas las que apliquen):
23
+
24
+ 1. **Personal info** — nombre, display name, headline actual, ubicación, email público vs personal, teléfono, LinkedIn, GitHub, portfolio. (El email *público* puede diferir del personal.)
25
+ 2. **Bios** — tres largos: corto (hero/one-liner), medio (2–3 oraciones para "About"), largo (about page completo).
26
+ 3. **Work experience** (más reciente primero) — por cada rol: empresa, período, ubicación/modalidad, producto, stack, manager/referencia, y **bullets de logros con número→contexto→resultado**.
27
+ 4. **Education** — institución, período, foco.
28
+ 5. **Certifications** — nombre, año, estado (completo/in progress).
29
+ 6. **Skills consolidados con nivel** — agrupados (lenguajes, frameworks, infra, tooling) con nivel (Expert/Advanced/Proficient/…) y opcionalmente % para el portfolio.
30
+ 7. **Projects** — tech, rol, highlights, link en vivo.
31
+ 8. **Achievements / highlights** — premios, showcases, hitos.
32
+ 9. **Languages** — idioma + nivel.
33
+ 10. **References** — nombre, rol, relación, contacto.
34
+
35
+ ## Modos
36
+
37
+ ### `build` — Crear el maestro desde cero
38
+ 1. Si no existe el workspace, sugerir `/job-hunt setup` primero.
39
+ 2. Recolectar info por sección — preferí **entrevistar al usuario por bloques** (no un cuestionario gigante). Empezá por experiencia y skills.
40
+ 3. Para cada logro, empujar a la forma **cuantificable**: "¿qué número podés ponerle? ¿comparado con qué? ¿qué resultado tuvo?". Un bullet sin métrica es una oportunidad perdida.
41
+ 4. Escribir `01-Perfiles/Perfil Maestro.md`.
42
+ 5. Sugerir derivar el primer perfil por rol: `/master-profile derive <role>`.
43
+
44
+ ### `update` — Mantener al día
45
+ 1. Leer el maestro actual.
46
+ 2. Aplicar el cambio (nuevo rol, nuevo logro, ascenso, proyecto).
47
+ 3. **Avisar qué derivados quedan desactualizados** (CVs por rol, LinkedIn, portfolio) y ofrecer re-derivarlos.
48
+
49
+ ### `derive <role>` — Vista por rol
50
+ 1. Leer el maestro.
51
+ 2. Crear/actualizar `01-Perfiles/<Role>.md` con el template `Perfil` (ver `Templates/Perfil.md`): filtrar y reordenar la experiencia/skills/proyectos hacia ese rol, definir keywords objetivo, score mínimo y mercado.
52
+ 3. Este perfil por rol es el `perfil_base` que después usa `/cv-tailor`.
53
+
54
+ ## Principios de redacción
55
+
56
+ - **Logros, no responsabilidades.** "Reduje latencia de servidor 25%" > "Encargado del servidor".
57
+ - **Verbos de acción + métrica + impacto.** Owned, shipped, led, reduced, increased, scaled.
58
+ - **Verdad verificable.** Nada que no puedas defender en una entrevista.
59
+ - **Inglés para roles internacionales**, español cuando aplique. El maestro puede tener los valores en inglés (van directo a CV/portfolio) y las meta-notas en español.
60
+
61
+ ## Reglas
62
+
63
+ - Una sola fuente de verdad: no dejar que un CV por rol "evolucione" por fuera del maestro.
64
+ - No inventar logros ni métricas — si el usuario no tiene el número, marcarlo como pendiente, no fabricarlo.
65
+ - Separar email público de personal; no exponer datos sensibles en archivos que vayan a un remoto.
66
+
67
+ ## Handoff
68
+
69
+ Confirmá con el usuario (approval) antes de escribir el perfil maestro o pisar derivados. Cuando el maestro está READY, derivá perfiles por rol y seguí con `/cv-tailor`, `/linkedin-optimize` o `/portfolio-site`.