job-hunt
job-hunt
Section titled “job-hunt”Sistema de búsqueda de trabajo como autónomo/freelance (España + EEUU + remoto).
Pipeline: perfil -> scraping de ofertas -> evaluación de fit -> generación de CV+carta (drafter-reviewer) -> verificación ATS -> tracking.
Inspirado en la arquitectura de MadsLorentzen/ai-job-search, adaptado al perfil real del usuario — no es un fork.
Ver CLAUDE.md para contexto completo y docs/adr/ para decisiones de arquitectura
(especialmente docs/adr/0001-arquitectura-multi-perfil.md, base de todo lo de
abajo).
Requisitos
Section titled “Requisitos”- bun — corre los scrapers (
scrapers/*/cli). - Distro LaTeX con
moderncv(MiKTeX o TeX Live) +lualatexen PATH — compila CV/carta. Instalación probada:winget install MiKTeX.MiKTeX, luegoinitexmf --set-config-value=\[MPM\]AutoInstall=1para que instale paquetes faltantes sin prompt interactivo. poppler(pdftotext) — usado porats-check/check.ps1; si falta, el check degrada con aviso explícito, nunca finge un PASS.
Pipeline paso a paso
Section titled “Pipeline paso a paso”Todo comando exige --profile=<name> como primer flag — sin excepciones,
sin perfil por defecto (ver ADR-0001). Ejemplo con perfil amed:
1. /scrape --profile=amed
Section titled “1. /scrape --profile=amed”Corre linkedin-search + freehire-search con los filtros derivados de
profiles/amed/profile.md (stack, geografía, modalidad). Deduplica contra
profiles/amed/seen_jobs.json y agrega solo lo nuevo (status: "new").
/scrape --profile=amed/scrape --profile=amed --query="Kafka" # sobreescribe el query derivado2. /rank --profile=amed
Section titled “2. /rank --profile=amed”Puntúa las ofertas status: "new" contra fit-eval/EVALUATION.md (Gate
0 modalidad/geografía, Gate 1 idioma, 5 dimensiones ponderadas) usando
agentes en paralelo por lotes de ~5. Actualiza seen_jobs.json de forma
aditiva (status: "scored" o "expired") y presenta un shortlist.
/rank --profile=amed/rank --profile=amed --top 5 # solo muestra los 5 mejores/rank --profile=amed --all # re-rankea también lo ya puntuado3. /apply --profile=amed --company="<empresa>"
Section titled “3. /apply --profile=amed --company="<empresa>"”Flujo DRAFTER→REVIEWER→DRAFTER: redacta CV+carta a medida (fuente única:
cv_master.tex + profile.md + voice.md), un agente revisor independiente
audita fabricación, se corrige, se compila a PDF con lualatex, se verifica
con ats-check/check.ps1 (obligatorio, no saltable), y se registra en
tracking/applications.csv.
/apply --profile=amed --company="Empat"Salida en profiles/amed/documents/applications/<empresa>_<rol>/ (cv/,
cover_letters/, job_posting.md).
4. /outcome --profile=amed --company="<empresa>"
Section titled “4. /outcome --profile=amed --company="<empresa>"”Registra qué pasó (entrevista, oferta, rechazo, etc.) en
tracking/applications.csv y en outcome.md de la carpeta archivada. Modo
seguimiento (máx. 2 follow-ups, solo borrador, nunca se envía solo):
/outcome --profile=amed --company="Empat"/outcome --profile=amed followupCómo usar la herramienta con un perfil nuevo
Section titled “Cómo usar la herramienta con un perfil nuevo”- Crear
profiles/<nuevo>/con:profile.md— identidad, preferencias de búsqueda (modalidad, geografía, tarifa oTODO, idiomas tal cual, sin inflar), stack técnico, experiencia resumida. Fuente: CV real del candidato, nunca inventado.voice.md— tono de escritura + rasgos conductuales, para la dimensión conductual defit-evaly el tono de/apply//outcome.cv_master.tex— CV completo en LaTeX (moderncv), fuente única de hechos de experiencia para/apply.seen_jobs.json— inicializar como[].documents/applications/— carpeta vacía.
- Correr
/scrape --profile=<nuevo>para el primer barrido de ofertas. - Seguir el pipeline normal (
/rank→/apply→/outcome).
Los scrapers y fit-eval/EVALUATION.md son agnósticos de perfil — no hace
falta tocar código, solo la carpeta profiles/<nuevo>/ (ver ADR-0001).
Estructura
Section titled “Estructura”profiles/<name>/ perfil aislado (profile.md, voice.md, cv_master.tex, seen_jobs.json, documents/applications/)scrapers/ linkedin-search, freehire-search (agnósticos de perfil)fit-eval/ EVALUATION.md — framework de scoringdrafter-reviewer/ TEMPLATES.md + plantillas LaTeX (CV/carta)ats-check/ CHECK.md + check.ps1tracking/ applications.csv (central, columna profile) + SCHEMA.md.claude/commands/ scrape.md, rank.md, apply.md, outcome.mddocs/adr/ decisiones de arquitectura