Skip to content

Commit 6dd591a

Browse files
authored
feat: add Spanish language mode (modes/es/) (#8)
Adds Spanish translations for core career-copilot modes: - modes/es/README.md — setup guide for Spanish market - modes/es/_shared.md — shared context with archetypes, scoring, tools - modes/es/oferta.md — job evaluation mode - modes/es/aplicar.md — application/apply mode - modes/es/pipeline.md — pipeline management mode Closes #5 Co-authored-by: wali-WallE <248290353+wali-WallE@users.noreply.github.com>
1 parent ad93e6e commit 6dd591a

5 files changed

Lines changed: 660 additions & 0 deletions

File tree

modes/es/README.md

Lines changed: 104 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,104 @@
1+
# career-copilot -- Modos en español (`modes/es/`)
2+
3+
Esta carpeta contiene las traducciones al español de los principales modos de career-copilot para candidatos que apuntan al mercado hispanohablante (España, México, Argentina, Colombia, Chile, y otros países de habla hispana).
4+
5+
## ¿Cuándo usar estos modos?
6+
7+
Usa `modes/es/` si al menos una de estas condiciones se cumple:
8+
9+
- Postulas principalmente a **ofertas de empleo en español** (InfoJobs, LinkedIn ES, Indeed ES, Computrabajo, Bumeran, sitios de carreras)
10+
- Tu **CV está en español** o alternas entre ES y EN según la oferta
11+
- Necesitas respuestas y cartas de presentación en **español tech natural**, no traducido por una máquina
12+
- Debes gestionar **especificidades contractuales hispanohablantes** : convenio colectivo, pagas extra, seguro médico, seguro de vida, 13er/14o mes, período de prueba, preaviso, tickets de comida, participación en beneficios
13+
14+
Si la mayoría de tus ofertas son en inglés, quédate con los modos estándar en `modes/`. Los modos en inglés funcionan para ofertas hispanohablantes, pero no conocen en detalle las especificidades del mercado hispanohablante.
15+
16+
## ¿Cómo activar?
17+
18+
### Opción 1 -- Por sesión
19+
20+
Dile a Copilot CLI al inicio de la sesión:
21+
22+
> "Usa los modos en español bajo `modes/es/`."
23+
24+
Copilot CLI leerá entonces los archivos de esta carpeta en lugar de `modes/`.
25+
26+
### Opción 2 -- De forma permanente
27+
28+
Agrega en `config/profile.yml` :
29+
30+
```yaml
31+
language:
32+
primary: es
33+
modes_dir: modes/es
34+
```
35+
36+
Recuérdaselo a Copilot CLI en tu primera sesión("Mira en `profile.yml`, configuré `language.modes_dir`"). Copilot CLI usará automáticamente los modos en español.
37+
38+
## ¿Qué modos están traducidos?
39+
40+
Esta primera iteración cubre los cuatro modos de mayor impacto:
41+
42+
| Archivo | Traducido desde | Rol |
43+
|---------|-----------------|-----|
44+
| `_shared.md` | `modes/_shared.md` (EN) | Contexto compartido, arquetipos, reglas globales, especificidades del mercado hispanohablante |
45+
| `oferta.md` | `modes/evaluate.md` (EN) | Evaluación completa de una oferta (Bloques A-F) |
46+
| `aplicar.md` | `modes/apply.md` (EN) | Asistente en vivo para completar formularios de candidatura |
47+
| `pipeline.md` | `modes/pipeline.md` (EN) | Bandeja de entrada de URLs / Second Brain para las ofertas recopiladas |
48+
49+
Los demás modos (`scan`, `batch`, `pdf`, `tracker`, `auto-pipeline`, `deep`, `contact`, `project`, `training`) permanecen en EN/ES. Su contenido es principalmente tooling, rutas y comandos — debe mantenerse independiente del idioma.
50+
51+
## Lo que permanece en inglés
52+
53+
Deliberadamente no traducido porque es vocabulario tech estándar:
54+
55+
- `cv.md`, `pipeline`, `tracker`, `report`, `score`, `archetype`, `proof point`
56+
- Nombres de herramientas (`Playwright`, `WebSearch`, `WebFetch`, `Read`, `Write`, `Edit`, `Bash`)
57+
- Valores de estado en el tracker (`Evaluated`, `Applied`, `Interview`, `Offer`, `Rejected`)
58+
- Fragmentos de código, rutas, comandos
59+
60+
Los modos usan español tech natural, tal como se habla en equipos de ingeniería en Madrid, Buenos Aires o Ciudad de México: texto corriente en español, términos técnicos en inglés donde es el uso habitual. Sin traducción forzada de "Pipeline" a "Tubería" ni de "Deploy" a "Despliegue de aplicación".
61+
62+
## Glosario de referencia
63+
64+
Para mantener un tono coherente si modificas o amplías los modos:
65+
66+
| Inglés | Español (en esta codebase) |
67+
|--------|---------------------------|
68+
| Job posting | Oferta de empleo / Anuncio |
69+
| Application | Candidatura |
70+
| Cover letter | Carta de presentación |
71+
| Resume / CV | CV |
72+
| Salary | Salario / Remuneración |
73+
| Compensation | Remuneración / Paquete |
74+
| Skills | Competencias / Habilidades |
75+
| Interview | Entrevista |
76+
| Hiring manager | Manager de contratación / Hiring manager |
77+
| Recruiter | Reclutador (o Recruiter) |
78+
| AI | IA (Inteligencia Artificial) |
79+
| Requirements | Requisitos / Exigencias |
80+
| Career history | Trayectoria profesional |
81+
| Notice period | Preaviso |
82+
| Probation | Período de prueba |
83+
| Vacation | Vacaciones / Días de descanso |
84+
| 13th month salary | 13er mes / Paga extra de fin de año |
85+
| Permanent employment | Contrato indefinido |
86+
| Fixed-term contract | Contrato temporal |
87+
| Freelance | Freelance / Independiente / Autónomo |
88+
| Collective agreement | Convenio colectivo |
89+
| Works council | Comité de empresa |
90+
| Profit sharing | Participación en beneficios |
91+
| Meal vouchers | Tickets restaurante / Vales de comida |
92+
| Health insurance | Seguro médico de empresa / Mutua |
93+
| Disability/life insurance | Seguro de vida / Previsión social |
94+
| Cadre status | Categoría directiva / Personal técnico cualificado |
95+
96+
## Contribuir
97+
98+
Para mejorar una traducción o agregar un modo:
99+
100+
1. Abre un Issue con tu propuesta (ver `CONTRIBUTING.md`)
101+
2. Respeta el glosario anterior para mantener el tono coherente
102+
3. Traduce de forma idiomática — sin traducción palabra por palabra
103+
4. Conserva los elementos estructurales (Bloques A-F, tablas, bloques de código, instrucciones de herramientas) idénticos
104+
5. Prueba con una oferta real en español (InfoJobs, LinkedIn ES, Indeed ES) antes de enviar el PR

modes/es/_shared.md

Lines changed: 216 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,216 @@
1+
# Contexto Compartido -- career-copilot (Español)
2+
3+
<!-- ============================================================
4+
ESTE ARCHIVO ES ACTUALIZABLE AUTOMÁTICAMENTE. No pongas datos personales aquí.
5+
6+
Tus personalizaciones van en modes/_profile.md (nunca se actualiza automáticamente).
7+
Este archivo contiene reglas del sistema, lógica de puntuación y configuración de herramientas
8+
que mejoran con cada versión de career-copilot.
9+
============================================================ -->
10+
11+
## Fuentes de Verdad (SIEMPRE leer antes de cada evaluación)
12+
13+
| Archivo | Ruta | Cuándo |
14+
|---------|------|--------|
15+
| cv.md | `cv.md` (raíz del proyecto) | SIEMPRE |
16+
| article-digest.md | `article-digest.md` (si existe) | SIEMPRE (proof points detallados) |
17+
| profile.yml | `config/profile.yml` | SIEMPRE (identidad y vacantes objetivo) |
18+
| _profile.md | `modes/_profile.md` | SIEMPRE (arquetipos, narrativa, negociación del usuario) |
19+
20+
**REGLA: NUNCA hacer hardcode de métricas de proof points.** Léelas de `cv.md` y `article-digest.md` en el momento de la evaluación.
21+
**REGLA: Para métricas de artículos/proyectos, `article-digest.md` tiene prioridad sobre `cv.md`** (`cv.md` puede contener números desactualizados).
22+
**REGLA: Leer `_profile.md` DESPUÉS de este archivo. Las personalizaciones del usuario en `_profile.md` sobrescriben los valores predeterminados aquí.**
23+
24+
---
25+
26+
## Sistema de Puntuación
27+
28+
La evaluación usa 6 bloques (A-F) con una nota global de 1-5:
29+
30+
| Dimensión | Qué mide |
31+
|-----------|----------|
32+
| Match con CV | Habilidades, experiencia, alineación de proof points |
33+
| Alineación North Star | Qué tan bien encaja la vacante en los arquetipos objetivo del usuario (de `_profile.md`) |
34+
| Remuneración | Salario vs mercado (5=cuartil superior, 1=muy por debajo) |
35+
| Señales culturales | Cultura de la empresa, crecimiento, estabilidad, política de trabajo remoto |
36+
| Red flags | Bloqueadores, alertas (ajustes negativos) |
37+
| **Global** | Promedio ponderado de los ítems anteriores |
38+
39+
**Interpretación de la nota:**
40+
- 4.5+ → Match fuerte, recomendado aplicar inmediatamente
41+
- 4.0-4.4 → Buen match, vale la pena aplicar
42+
- 3.5-3.9 → Razonable pero no ideal, aplicar solo si hay un motivo específico
43+
- Por debajo de 3.5 → Recomendado no aplicar (ver Ethical Use en copilot-instructions.md)
44+
45+
## North Star -- Vacantes Objetivo
46+
47+
El skill trata TODAS las vacantes objetivo con el mismo cuidado. Ninguna es primaria o secundaria — cualquiera es una victoria, siempre que la remuneración y la perspectiva de crecimiento sean adecuadas:
48+
49+
| Arquetipo | Ejes temáticos | Qué están comprando |
50+
|-----------|----------------|----------------------|
51+
| **AI Platform / LLMOps Engineer** | Evaluación, Observabilidad, Confiabilidad, Pipelines | Alguien que pone IA en producción con métricas |
52+
| **Agentic Workflows / Automation** | HITL, Tooling, Orquestación, Multi-Agent | Alguien que construye sistemas de agentes confiables |
53+
| **Technical AI Product Manager** | GenAI/Agents, PRDs, Discovery, Delivery | Alguien que traduce negocios en productos de IA |
54+
| **AI Solutions Architect** | Hiperautomatización, Enterprise, Integraciones | Alguien que diseña arquitecturas de IA de punta a punta |
55+
| **AI Forward Deployed Engineer** | Cercano al cliente, entrega rápida, Prototipado | Alguien que despliega soluciones de IA rápidamente en el cliente |
56+
| **AI Transformation Lead** | Gestión del cambio, Adopción, Habilitación organizacional | Alguien que lidera la transformación de IA en organizaciones |
57+
58+
<!-- [PERSONALIZAR] Adapta los arquetipos anteriores a tus vacantes objetivo.
59+
Ejemplo para ingeniería backend:
60+
- Senior Backend Engineer
61+
- Staff Platform Engineer
62+
- Engineering Manager
63+
etc. -->
64+
65+
### Framing Adaptativo por Arquetipo
66+
67+
> **Métricas concretas: leer de `cv.md` y `article-digest.md` en el momento de la evaluación. NUNCA hacer hardcode aquí.**
68+
69+
| Si la vacante es... | Enfatizar en el candidato... | Fuentes de Proof Points |
70+
|---------------------|------------------------------|-------------------------|
71+
| Platform / LLMOps | Experiencia en producción, Observabilidad, Evals, Closed-Loop | article-digest.md + cv.md |
72+
| Agentic / Automation | Orquestación multi-agent, HITL, Confiabilidad, Costos | article-digest.md + cv.md |
73+
| Technical AI PM | Product Discovery, PRDs, Métricas, Gestión de stakeholders | cv.md + article-digest.md |
74+
| Solutions Architect | Diseño de sistemas, Integraciones, Enterprise-ready | article-digest.md + cv.md |
75+
| Forward Deployed Engineer | Entrega rápida, cercano al cliente, Prototipo a producción | cv.md + article-digest.md |
76+
| AI Transformation Lead | Gestión del cambio, Habilitación de equipo, Adopción | cv.md + article-digest.md |
77+
78+
<!-- [PERSONALIZAR] Mapea tus proyectos/artículos concretos a los arquetipos anteriores -->
79+
80+
### Narrativa de Transición (usar en TODOS los framings)
81+
82+
<!-- [PERSONALIZAR] Reemplaza con tu propia narrativa. Ejemplos:
83+
- "Construí y vendí mi propio SaaS en 5 años. Ahora enfoque total en IA aplicada en Enterprise."
84+
- "Lead de ingeniería en una Series-B durante crecimiento 10x. Buscando el próximo desafío."
85+
- "Transición de consultoría a producto. Buscando vacantes con alta responsabilidad."
86+
Leído de config/profile.yml -> narrative.exit_story -->
87+
88+
Usa la narrativa de transición de `config/profile.yml` para enmarcar TODO el contenido:
89+
- **En PDF Summaries:** Construir el puente del pasado al futuro — "Aplico las mismas [habilidades] ahora en [dominio del JD]."
90+
- **En historias STAR:** Referenciar proof points de `article-digest.md`.
91+
- **En respuestas borrador (Bloque G):** La narrativa de transición va en la primera respuesta.
92+
- **Cuando la vacante menciona "emprendedor", "ownership", "builder", "end-to-end":** Este es el diferencial número 1. Aumentar peso de match.
93+
94+
### Ventaja Transversal
95+
96+
Enmarcar el perfil como **"Builder técnico con práctica comprobada"**, adaptando el framing a la vacante:
97+
- Para PM: "Builder que reduce incertidumbre con prototipos y luego lleva a producción con disciplina"
98+
- Para FDE: "Builder que entrega desde el día 1 con observabilidad y métricas"
99+
- Para SA: "Builder que diseña sistemas end-to-end con experiencia real de integración"
100+
- Para LLMOps: "Builder que pone IA en producción con sistemas de calidad closed-loop"
101+
102+
Posicionar "Builder" como señal profesional — no como "hobbyista". Proof points reales hacen esto creíble.
103+
104+
### Portfolio como Proof Point (usar en candidaturas de alto valor)
105+
106+
<!-- [PERSONALIZAR] Si tienes una demo en vivo, dashboard o proyecto público, configúralo aquí.
107+
Ejemplo:
108+
dashboard:
109+
url: "https://tudominio.dev/demo"
110+
password: "demo-2026"
111+
when_to_share: "LLMOps, AI-Platform, vacantes de Observabilidad"
112+
Leído de config/profile.yml -> narrative.proof_points y narrative.dashboard -->
113+
114+
Cuando el candidato tiene una demo en vivo / dashboard (verificar `profile.yml`), ofrecer acceso en candidaturas relevantes.
115+
116+
### Inteligencia de Remuneración (Comp Intelligence)
117+
118+
<!-- [PERSONALIZAR] Investiga rangos salariales para tus vacantes objetivo y ajusta los valores -->
119+
120+
**Orientaciones generales:**
121+
- WebSearch para datos actuales de mercado (Glassdoor, Levels.fyi, Blind)
122+
- Enmarcar por título de la vacante, no por skills — los títulos definen los rangos salariales
123+
- Las tarifas de freelance generalmente son 30-60% más altas que la hora bruta de relación de dependencia (cargas sociales, vacaciones, aportes)
124+
- El geo-arbitraje funciona en vacantes remotas: menor costo de vida = mejor neto
125+
126+
### Mercado ES/LATAM -- Consideraciones habituales (IMPORTANTE)
127+
128+
En vacantes y negociaciones del mercado hispanohablante, los términos exactos cambian según el país. Evaluar siempre el equivalente local y NO asumir reglas brasileñas si la oferta está en ES/LATAM:
129+
130+
| Término | Significado | Impacto en la Evaluación |
131+
|---------|-------------|--------------------------|
132+
| **Contrato indefinido / relación de dependencia** | Contrato laboral formal en nómina | Suele incluir cotizaciones, vacaciones, aguinaldo o pagas extra, licencias y mayor estabilidad. Comparar por compensación total anual, no solo salario mensual |
133+
| **Freelance / autónomo / contractor** | Prestación de servicios por factura | Tarifa nominal más alta, pero normalmente sin beneficios laborales. Descontar impuestos, vacaciones no pagadas, seguridad social y tiempo sin proyecto para una comparación justa |
134+
| **Aguinaldo / paga extra** | Pago adicional anual o semestral según el país | Puede alterar mucho la compensación real. Confirmar si el salario publicado ya lo incluye o si se paga aparte |
135+
| **Bono variable / comisión / performance bonus** | Compensación ligada a objetivos individuales o de empresa | No tratarlo como fijo. Ponderarlo según historial de pago, criterios y porcentaje de cumplimiento |
136+
| **Prestaciones / beneficios** | Coberturas y extras como seguro médico, vales, formación o días libres | Incluirlos en la evaluación total, pero separando beneficio garantizado de beneficio discrecional |
137+
| **Equity / stock options / RSUs** | Participación accionaria o derecho a compra futura | Evaluar vesting, cliff, liquidez, dilución y etapa de la empresa. No contar como efectivo salvo alta probabilidad de salida |
138+
| **Período de prueba** | Etapa inicial con condiciones de rescisión más simples | Normal en muchos países. Revisar duración, criterios de evaluación y si afecta beneficios desde el día 1 |
139+
| **Preaviso** | Tiempo requerido para renuncia o terminación | Afecta fecha de incorporación, negociación de salida y riesgo de solapamiento entre ofertas |
140+
| **Modalidad remota / híbrida y geo-salario** | Política de trabajo y posible ajuste por ubicación | Confirmar si el rango cambia por país o ciudad, quién asume equipamiento y si existen restricciones de contratación internacional |
141+
142+
### Scripts de Negociación
143+
144+
<!-- [PERSONALIZAR] Adapta a tu situación -->
145+
146+
**Pretensión salarial (framework general):**
147+
> "Con base en datos actuales de mercado para esta vacante, mi expectativa está en el rango de [RANGO de profile.yml]. Tengo flexibilidad en la estructura — lo que importa es el paquete total y la perspectiva de crecimiento."
148+
149+
**Pushback contra descuento geográfico:**
150+
> "Las vacantes en las que estoy participando están orientadas a resultados, no a ubicación. Mi track record no cambia con el código postal."
151+
152+
**Cuando la oferta está por debajo del objetivo:**
153+
> "Estoy comparando con ofertas en el rango de [rango más alto]. [Empresa] me atrae por [motivo]. ¿Podemos llegar juntos a [valor objetivo]?"
154+
155+
**Relación de dependencia vs Freelance:**
156+
> "Para comparar de forma justa, necesito entender la composición completa: salario base, aguinaldo, vacaciones, seguro médico y bonos. Si es como freelance/contractor, ¿cuál es el valor mensual equivalente considerando estos ítems?"
157+
158+
### Política de Ubicación (Location Policy)
159+
160+
<!-- [PERSONALIZAR] Adapta a tu situación. Leído de config/profile.yml -> location -->
161+
162+
**En formularios:**
163+
- Preguntas binarias "¿Puedes trabajar presencialmente?": responder según disponibilidad real de `profile.yml`
164+
- En campos de texto libre: informar zona horaria y disponibilidad explícitamente
165+
166+
**En evaluaciones (Scoring):**
167+
- Dimensión remoto en híbrido fuera de tu estado/país: Score **3.0** (no 1.0)
168+
- Score 1.0 solo si la vacante dice explícitamente "debe estar presencial 4-5 días/semana, sin excepciones"
169+
170+
### Prioridad Time-to-Offer
171+
- Demo funcional + métricas > perfección
172+
- Aplicar más rápido > aprender más
173+
- Enfoque 80/20, todo con plazo definido
174+
175+
---
176+
177+
## Reglas Globales
178+
179+
### NUNCA
180+
181+
1. Inventar experiencia o métricas
182+
2. Modificar `cv.md` o archivos del portfolio
183+
3. Enviar candidaturas en nombre del candidato
184+
4. Compartir número de teléfono en mensajes generados
185+
5. Recomendar remuneración por debajo del mercado
186+
6. Generar PDF sin haber leído la descripción de la vacante antes
187+
7. Usar jerga corporativa o "corporatismos"
188+
8. Ignorar el tracker (toda vacante evaluada se registra)
189+
190+
### SIEMPRE
191+
192+
0. **Carta de presentación:** Si el formulario permite adjuntar o escribir una carta, SIEMPRE incluir una. PDF con el mismo diseño visual del currículum. Contenido: citas de la descripción de la vacante mapeadas a proof points, links a case studies relevantes. Máximo 1 página.
193+
1. Leer `cv.md`, `_profile.md` y `article-digest.md` (si existe) antes de evaluar cualquier vacante
194+
1b. **En la primera evaluación de cada sesión:** Ejecutar `node cv-sync-check.mjs` vía Bash. Si hay advertencias, informar al candidato antes de continuar
195+
2. Detectar el arquetipo de la vacante y adaptar el framing según `_profile.md`
196+
3. Al hacer matching, citar líneas exactas del currículum
197+
4. Usar WebSearch para datos de remuneración y empresa
198+
5. Registrar en el tracker después de cada evaluación
199+
6. Generar contenido en el idioma de la descripción de la vacante (ES predeterminado)
200+
7. Ser directo y práctico — sin rodeos
201+
8. Al generar texto en español (PDF summaries, bullets, mensajes LinkedIn, historias STAR): español tech natural, no traducción literal. Frases cortas, verbos de acción, evitar voz pasiva. Términos técnicos (stack, pipeline, deployment, embedding) no necesitan traducirse
202+
8b. **URLs de case studies en el PDF Professional Summary:** Si el PDF menciona case studies o demos, las URLs DEBEN aparecer ya en el primer párrafo (Professional Summary). Los reclutadores frecuentemente solo leen el resumen. Todas las URLs en HTML con `white-space: nowrap`
203+
9. **Entradas en el tracker como TSV** — NUNCA editar `applications.md` directamente para nuevos registros. Escribir TSV en `batch/tracker-additions/`, `merge-tracker.mjs` se encarga del merge
204+
10. **Incluir `**URL:**` en todo header de reporte** — entre Score y PDF
205+
206+
### Herramientas
207+
208+
| Herramienta | Uso |
209+
|-------------|-----|
210+
| WebSearch | Investigación de remuneración, tendencias, cultura de la empresa, contactos LinkedIn, fallback para descripciones de vacantes |
211+
| WebFetch | Fallback para extraer descripciones de vacantes de páginas estáticas |
212+
| Playwright | Verificar si las vacantes siguen activas (browser_navigate + browser_snapshot), extraer descripciones de SPAs. **CRÍTICO: NUNCA iniciar 2+ agentes con Playwright en paralelo — comparten la misma instancia del navegador** |
213+
| Read | cv.md, _profile.md, article-digest.md, cv-template.html |
214+
| Write | HTML temporal para PDF, applications.md, reportes .md |
215+
| Edit | Actualizar tracker |
216+
| Bash | `node generate-pdf.mjs` |

0 commit comments

Comments
 (0)