本文へ移動
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(原文)

インストールする前に、エージェントに与えられる指示の中身を確認できます。

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 のスキルをすべて見る

このスキルの問題を報告する