跳到正文
cccskills
免费在 GitHub 公开

cv-ats-export

Export a Markdown CV to an ATS-compliant PDF (single column, selectable text, A4) using headless Chrome/Edge - no Obsidian or design tool needed. Triggers: exportar CV a PDF, generar PDF del CV, CV ATS PDF, convertir CV markdown a PDF, imprimir CV.

中文简介正在准备中。当前显示原文说明。

SebastianLuser/claude-code-arcane星标 3(GitHub 3 + cccskills 0)
集成工具Obsidian

实测评分 未实测

查看安装方法

包含的文件(3)

  • SKILL.md4.3 KB
  • scripts/cv_export.py10.9 KB
  • scripts/verify_pdf.py3.1 KB

SKILL.md(原文)

安装前可以查看交给 AI 代理的指令内容。

CV ATS Export - Markdown → PDF ATS-compliant

Convertís un CV en Markdown a un PDF que pasa filtros ATS: una sola columna, texto seleccionable (no imagen), A4, tipografía limpia. Usa Chrome o Edge en modo headless - no requiere Obsidian, LaTeX ni herramienta de diseño.

El motor es scripts/cv_export.py + scripts/verify_pdf.py (verificación ATS post-export). La primera vez, instalá ambos en el workspace (tools/) para que queden versionados con los CVs; o corrélos directo desde el skill (van juntos: cv_export importa verify_pdf desde su mismo directorio).

Requisitos

  • Python 3 en el PATH.
  • Google Chrome o Microsoft Edge instalado (el script autodetecta rutas estándar en Windows/macOS/Linux).
  • pypdf (opcional) para la verificación ATS automática: pip install pypdf. Sin pypdf el export funciona igual y reporta [ATS SKIP].
  • CVs en Markdown dentro de 02-CVs/ del career workspace, con headers (# Nombre, ## Sección), bullets y --- como separadores.

Uso

# Todos los CVs base (CV - *.md) del workspace
python scripts/cv_export.py

# Uno solo (con o sin .md)
python scripts/cv_export.py "CV - Acme - Backend"

# Workspace explícito
python scripts/cv_export.py --workspace ./career-workspace "CV - Acme - Backend"

# Saltar la verificación ATS
python scripts/cv_export.py --no-verify "CV - Acme - Backend"

El script:

  1. Localiza el workspace (flag --workspace, env CAREER_WORKSPACE, o sube directorios buscando una carpeta 02-CVs, o usa el cwd).
  2. Lee el .md, separa frontmatter, convierte el cuerpo a HTML con el CSS ATS embebido.
  3. Imprime a PDF con Chrome/Edge headless (--headless=new --print-to-pdf).
  4. Guarda en 02-CVs/exports/. El nombre sale del frontmatter archivo_pdf si existe; si no, del nombre del .md (sin el prefijo CV - ).
  5. Verifica la capa de texto ATS con verify_pdf.py (pypdf): texto extraíble (mínimo 200 chars), que el nombre del H1 y el email sobrevivan al export, y avisa si supera las 2 páginas. Reporta [ATS OK] / [ATS WARN] / [ATS SKIP]; nunca rompe el export. Se salta con --no-verify.

Los dos [ATS SKIP] son distintos: verify_pdf.py not found next to cv_export.py significa que copiaste solo un archivo al workspace (instalar pypdf no cambia nada); pypdf not installed es el que se resuelve con pip install pypdf.

verify_pdf.py también funciona standalone para chequear cualquier PDF:

python scripts/verify_pdf.py "02-CVs/exports/Backend.pdf" --min-chars 200 --max-pages 2 --contains "Jane Doe"

Markdown soportado

# ## ### títulos · **negrita** · *itálica* · [texto](url) · - bullets · --- (regla horizontal). Un salto de línea simple dentro de un párrafo se renderiza como <br> (comportamiento tipo Obsidian).

Por qué este pipeline (y no Word/Canva)

  • Texto seleccionable garantizado → el ATS puede parsearlo (a diferencia de un PDF exportado como imagen).
  • Una columna, sin tablas → no se rompe el parseo.
  • Reproducible y versionable → el CV vive en Markdown (diffeable, en git), el PDF es un artefacto generado.
  • Mismo estilo siempre → el CSS ATS está embebido en el script.

Personalizar el estilo

El CSS ATS está en la constante CSS dentro de scripts/cv_export.py (tamaño de fuente, márgenes A4, estilos de h1/h2). Editá ahí si querés ajustar tipografía o espaciado - mantené una sola columna y texto real.

Reglas

  • No metas tablas, columnas ni imágenes en el CV: rompen el parseo ATS.
  • Atendé los [ATS WARN]: un PDF-imagen o sin el nombre/email extraíbles no pasa filtros ATS. Usá --no-verify solo para iterar rápido sobre el layout.
  • No commitees PDFs con datos sensibles a un remoto sin confirmación.

Handoff

Confirmá (approval) antes de instalar cv_export.py en el workspace o sobrescribir PDFs. Cuando el PDF está READY y verificado, el siguiente paso suele ser /cover-letter para el mensaje de aplicación.

评价

还没有评价。欢迎分享你的使用感受。

评论

无需登录即可发表。欢迎分享使用感受、提问,或说明在哪些环境下无法运行。

还没有评论。来写第一条吧。

提交后会立即公开。请勿填写邮箱、电话等个人信息。URL 最多 2 个。

0 / 1000 字

此表单受 reCAPTCHA 保护,适用 Google 的隐私权政策和服务条款。

同一仓库的技能

Plan, design, and implement A/B tests and experiments with statistical rigor. Covers hypothesis frameworks, sample sizing, metrics, and result analysis.

中文简介正在准备中。当前显示原文说明。

SebastianLuser/claude-code-arcane32026年10月27日 更新

Web/mobile accessibility decision guide: WCAG 2.2 AA, ARIA, keyboard nav, focus management, contrast, testing. Use for: a11y, accessibility, wcag, aria, screen reader, keyboard, contrast.

中文简介正在准备中。当前显示原文说明。

SebastianLuser/claude-code-arcane32026年10月27日 更新

Generate, iterate, and scale ad creative for paid advertising across Google, Meta, LinkedIn, and X. Covers platform specs, creative frameworks, and quality validation.

中文简介正在准备中。当前显示原文说明。

SebastianLuser/claude-code-arcane32026年10月27日 更新

Musica interactiva para juegos: layering vertical, re-secuenciacion horizontal, stingers, reglas de transicion con sync points, y mapeo de estados de gameplay a musica. Usar para: musica adaptativa, sistema de musica dinamica, transiciones musicales, combat music.

中文简介正在准备中。当前显示原文说明。

SebastianLuser/claude-code-arcane32026年10月27日 更新

Design multi-agent systems, create agent architectures, define communication patterns, and build autonomous agent workflows with structured evaluation frameworks.

中文简介正在准备中。当前显示原文说明。

SebastianLuser/claude-code-arcane32026年10月27日 更新

Inter-agent communication protocol for C-suite agent teams. Defines invocation syntax, loop prevention, isolation rules, response formats, and quality loops.

中文简介正在准备中。当前显示原文说明。

SebastianLuser/claude-code-arcane32026年10月27日 更新

查看 SebastianLuser 的全部技能

报告此技能的问题