CommunityEscrita e Ediçãogithub.com

ATS 简历生成/优化 Skill

Construtor e exportador de currículos amigáveis a ATS, baseado em JSON ResumeIR, com foco local.

O que é 优化 Skill?

Este skill permite criar, otimizar e gerenciar currículos profissionais compatíveis com sistemas ATS (Applicant Tracking System), tudo localmente, sem dependências de rede. Ele oferece dois modos principais: geração de currículo do zero (Modo 1) e otimização de currículo existente (Modo 2). Em ambos os modos, o skill extrai informações do usuário, gera um JSON estruturado no formato ResumeIR.v1, produz um relatório de diagnóstico com pontuação e gravidade, uma conclusão de aceitabilidade para submissão (pronto / precisa de ajustes / não enviar), e uma prévia do texto revisado. O usuário pode exportar o currículo final nos formatos DOCX e PDF usando scripts Python puros, sem serviços externos. O skill impõe regras rígidas de ATS-friendly: layout de coluna única, sem tabelas ou caixas de texto, bullets com verbo de ação + tarefa + método + resultado quantificado. Também gerencia versões com scripts de linha de comando, permitindo salvar, renomear, comparar e reverter versões do currículo. Suporta os idiomas zh-CN e en-US, com modelos específicos para o mercado chinês e tech americano (incluindo exemplos para SWE, PM e Data Scientist). O skill foi projetado para minimizar o esforço do usuário, aceitando colagem de texto ou upload de arquivo e gerando automaticamente listas de suplementação com no máximo 8 perguntas para campos ausentes.

Funciona com~Claude Code~Codex CLI~Cursor
npx skills add lonelydoctor/ats-resume-builder

Installed? Explore more Escrita e Edição skills: steipete/notion, langchain-ai/langchain, bytedance/podcast-generation · View all 6 →

Perguntar na sua IA favorita

Abre um novo chat com esta habilidade de agente já pré-carregada.

Documentação

Skill de Criação/Otimização de Currículo ATS

Objetivo da Tarefa

  • Este Skill serve para: ajudar usuários a criar, otimizar e gerenciar currículos profissionais compatíveis com ATS
  • Capacidades incluem: geração de currículo, otimização de currículo, verificação de aceitabilidade para submissão, gerenciamento de versões, exportação de arquivos
  • Condição de acionamento: o usuário precisa criar um novo currículo, otimizar um currículo existente, comparar ou exportar currículos

Preparação Prévia

  • Dependências: este Skill utiliza bibliotecas Python puramente locais para processamento e exportação de arquivos (nenhuma dependência de serviço externo/rede)
    pdfplumber>=0.10.0   # Analisar currículos em PDF
    python-docx>=1.1.0   # Gerar DOCX
    reportlab>=4.0.0     # Gerar PDF (fonte CJK embutida, pip puro; fallback automático para HTML se ausente)
    
  • Preparação de diretório: criar um diretório de gerenciamento de versões no diretório de trabalho atual
    mkdir -p .resume-versions
    

Princípios Fundamentais

Regras Obrigatórias

  1. Nunca inventar experiências/dados do usuário: conteúdo ausente deve ser marcado com 【Placeholder】 e uma "lista mínima de complementação" deve ser gerada
  2. ATS-friendly: por padrão, coluna única, sem tabelas, sem caixas de texto, sem ícones; usar títulos de seção padrão
  3. Aceitabilidade para submissão: o relatório de diagnóstico deve verificar, da perspectiva do recrutador, se o título é adequado, se tempo de experiência/local/contato/autorização de trabalho/disponibilidade estão claros, e se há informações tabu do mercado-alvo como foto, idade, estado civil, filiação política, salário esperado
  4. Saída completa: deve-se fornecer simultaneamente o JSON ResumeIR, relatório de diagnóstico, conclusão de aceitabilidade para submissão e o texto do currículo revisado; a exportação de arquivos é gerada localmente por script quando necessário (veja "Exportação de Arquivos")
  5. Custo mínimo de entrada do usuário: priorizar "colar texto/enviar arquivo", perguntar apenas quando campos críticos estiverem ausentes

Estrutura de Saída

Todas as operações devem gerar as três partes a seguir (arquivos exportados são gerados conforme necessário):

  1. JSON ResumeIR: nomes de campos fixos, de acordo com o Esquema ResumeIR.v1
  2. Relatório de Diagnóstico: lista de problemas + gravidade + sugestões, de acordo com a Especificação do Relatório de Diagnóstico
  3. Conclusão de Aceitabilidade para Submissão: application_acceptability, respondendo "pode enviar agora / onde o recrutador vai travar / o que complementar primeiro"
  4. Texto do currículo revisado: visualização em texto puro
  5. (Opcional) Arquivos exportados: quando o usuário precisar de DOCX/PDF, chamar scripts/render_resume.py para geração local

Etapas de Operação

Seleção de Modo

Selecionar o modo com base na necessidade do usuário:

  • Modo 1: Criar Currículo (do zero): ajudar o usuário a criar um currículo a partir do zero
  • Modo 2: Otimizar Currículo (currículo existente): otimizar com base em um currículo existente do usuário

Todos os modos suportam entradas opcionais:

  • JD (descrição da vaga colada pelo usuário)
  • Cargo alvo: target_title / target_level (China: P6/P7, Sênior/Especialista/Gerente; EUA tech: Senior/Staff, L5/L6, SDE II etc.)
  • Idioma: zh-CN / en-US
  • Setor: Internet/AI/Dados/P&D/Operações/Vendas/Administração etc.
  • Modelo: template_id (padrão: cn_ats_a4_v1)

Modo 1: Criar Currículo (do zero)

Passo 1: Coleta de Informações

Usar o mínimo de perguntas para ajudar o usuário a coletar as seguintes informações:

  • Informações Básicas: nome, telefone, e-mail, cidade
  • Cargo Alvo: target_title, target_level, target_industry
  • Últimas 2-3 Experiências Profissionais: cada uma incluindo empresa, cargo, datas de início e fim, 3 pontos principais de resultados
  • Formação Acadêmica: instituição, grau, curso, data de conclusão
  • Habilidades: habilidades principais (primary) e secundárias (secondary)

Passo 2: Gerar ResumeIR

Converter as informações coletadas para o formato ResumeIR (campos completos no Esquema ResumeIR.v1), campos ausentes preenchidos com 【Placeholder】. Exemplo de esqueleto mínimo:

{
  "meta": {"version": "1.0", "language": "zh-CN", "locale": "zh-CN"},
  "basics": {"name": "João", "phone": "【Placeholder】", "email": "【Placeholder】", "target_title": "Gerente de Produto"},
  "summary": "",
  "skills": {"primary": ["Análise de Requisitos", "Análise de Dados"], "secondary": []},
  "work": [{"company": "Empresa X", "title": "Gerente de Produto", "start": "2021-06", "end": "presente",
            "bullets": ["Liderou……, resultando em um aumento de 20%"]}],
  "projects": [],
  "education": [{"school": "【Placeholder】", "degree": "Bacharel", "start": "", "end": ""}]
}

Passo 3: Gerar Primeira Versão do Currículo

  • Gerar o JSON ResumeIR
  • Gerar visualização em texto puro (formatado na ordem padrão)
  • Gerar relatório de diagnóstico (foco em completude)
  • Gerar conclusão de aceitabilidade para submissão: ready / needs_fix / do_not_submit, listando até 3 problemas que o recrutador identificaria
  • Gerar lista mínima de complementação (no máximo 8 questões)

Passo 4: Salvar Versão

Salvar automaticamente como primeira versão: version_name = "{target_title}-{data}-{idioma}"

Modo 2: Otimizar Currículo (currículo existente)

Passo 1: Analisar Currículo

  • Se o usuário enviar arquivo (PDF/DOCX/TXT): chamar scripts/parse_resume.py para extrair texto
  • Se o usuário colar texto: usar o conteúdo do texto diretamente

Passo 2: Exibir e Confirmar

Exibir ao usuário os seguintes campos-chave para confirmar a precisão da análise:

  • Nome
  • Empresa mais recente
  • Cargo mais recente
  • Estimativa de tempo de experiência

Passo 3: Coletar JD (opcional)

Perguntar ao usuário se há um JD alvo; se sim, solicitar que cole

Passo 4: Gerar ResumeIR e Relatório de Diagnóstico

  • Extrair informações do texto do currículo e gerar ResumeIR (ausentes com 【Placeholder】)
  • Gerar relatório de diagnóstico (pontuação 0-100, lista de problemas + gravidade + sugestões)
  • Gerar conclusão de aceitabilidade para submissão: correspondência de título, legibilidade da primeira tela, informações de contato, local/disponibilidade/autorização de trabalho, informações tabu do mercado, evidências para o cargo atendendo à triagem inicial do recrutador
  • Gerar ResumeIR revisado
  • Gerar visualização em texto puro (chamar render_resume.py para exportar quando o usuário precisar de arquivo)

Passo 5: Salvar Versão

Salvar automaticamente como primeira versão: version_name = "{target_title}-{data}-{idioma}"

Especificações de Reescrita de Currículo

Formato de Bullet de Experiência Profissional

Cada bullet deve seguir a seguinte estrutura:

Verbo de ação + tarefa + método/ferramenta + resultado (indicador)

Exemplo:

  • ❌ Errado: Responsável por análise de dados e geração de relatórios
  • ✅ Correto: Usou Python e SQL para analisar dados de comportamento do usuário, otimizando funcionalidades do produto por meio de testes A/B, resultando em um aumento de 20% nos usuários ativos diários

Requisito de Quantificação

  • Sempre que possível, usar números específicos, porcentagens, valores monetários etc.
  • Quando não for possível quantificar, usar o placeholder 【metric】 e indicar na lista de complementação

Cobertura de Palavras-chave do JD (se houver JD)

  • Fazer cobertura de palavras-chave para as habilidades primárias (≤12)
  • Incorporar naturalmente nos bullets, evitando acúmulo forçado

Gerenciamento de Versões

Salvar Versão

Usar script para salvar o ResumeIR atual:

python3 scripts/version_manager.py save --version-name "GerenteProduto-2024-01-15-pt-BR" --resume-ir "resume_ir.json"

Renomear Versão

python3 scripts/version_manager.py rename --old-name "v1" --new-name "GerenteProduto-2024-01-15-pt-BR"

Comparar Versões

python3 scripts/version_manager.py compare --version1 "v1" --version2 "v2"

Reverter Versão

python3 scripts/version_manager.py rollback --version-name "v1"

Exportação de Arquivos

Exportação Local (Python puro, sem serviços externos/rede)

Quando o usuário solicitar exportação, salvar o ResumeIR atual como JSON e chamar o script:

python3 scripts/render_resume.py --resume-ir "resume_ir.json" --output-formats "docx,pdf" --output-dir ./out

A exportação usa uma escada de degradação, garantindo que qualquer ambiente produza um arquivo utilizável:

  • DOCX: gerado por python-docx, coluna única, títulos padrão, sem tabelas/caixas de texto, ATS-friendly (formato recomendado para submissão)
  • PDF: gerado por reportlab + fonte CJK embutida (pip puro, sem necessidade de fontes/bibliotecas do sistema); se reportlab não estiver instalado, gera automaticamente HTML otimizado para impressão, com instrução "Abra no navegador e pressione Ctrl+P para salvar como PDF"
  • O script não depende de nenhum serviço remoto; basta clonar localmente para executar

Estilos Disponíveis

  • cn_ats_a4_v1 (chinês, padrão) / en_ats_a4_v1 (inglês); o idioma real é determinado por meta.language no ResumeIR
  • Visualizar: python3 scripts/render_resume.py --list-templates
  • Para gerar currículos bilíngues ou em inglês, consulte references/en-resume-conventions.md (banco de verbos de ação, proibido foto/idade/estado civil, prioridade de 1 página, datas em inglês MMM YYYY, prioridade de quantificação)
  • Para cargos tech nos EUA (SWE/PM/DS) : consulte diretamente assets/examples/ os exemplos en-US-software-engineer.json, en-US-product-manager.json e en-US-data-scientist.json (com LinkedIn/GitHub, níveis americanos, métricas tech como p99/QPS/SLA); quando meta.language=en-US, a camada de renderização aplica automaticamente títulos de seção em inglês e converte datas ISO YYYY-MM para MMM YYYY

Índice de Recursos

Scripts Necessários

  • scripts/parse_resume.py : script de análise de currículo, suporta PDF/DOCX/TXT/MD
    • Parâmetro: argumento posicional <caminho_do_arquivo> (também compatível com --input-file <caminho> )
    • Saída: JSON {"text": "...", "format": "pdf|docx|txt", "pages": N, "success": true}; em caso de falha, retorna {"error": "...", "exit_code": N}
  • scripts/version_manager.py : script de gerenciamento de versões
    • Parâmetros: save / rename / compare / rollback + parâmetros correspondentes
    • Saída: resultado da operação de versão
  • scripts/render_resume.py : script de exportação local (DOCX/PDF/HTML, sem serviços externos)
    • Parâmetros: --resume-ir <arquivo JSON> , --output-formats docx,pdf,html, --output-dir, --file-name
    • Saída: arquivos DOCX / PDF (ou fallback para HTML)

Referências de Domínio

Exemplo de Fluxo de Conversa

Cenário 1: Criar Currículo do Zero

Usuário: Me ajude a criar um currículo
Agente: Claro, vou te ajudar a criar um currículo. Por favor, me informe:
       1. Qual é o seu cargo alvo?
       2. Sua situação profissional atual (empresa/cargo/tempo de experiência)?
       ...

[Coleta de informações]

Agente: Primeira versão do currículo gerada. Segue minha análise:
       [Relatório de Diagnóstico]

       Lista mínima de complementação (8 questões):
       1. Por favor, forneça suas informações de contato específicas (telefone/e-mail)
       2. Na primeira experiência profissional, qual é o valor específico do 【metric】 mencionado?
       ...

Cenário 2: Otimizar Currículo Existente

Usuário: Me ajude a otimizar este currículo [enviar arquivo]
Agente: [Analisando currículo] Extraí as seguintes informações do seu currículo, por favor confirme:
       Nome: João
       Empresa mais recente: Empresa Tech X
       Cargo mais recente: Gerente de Produto
       Tempo de experiência: 3-5 anos

       Há um JD alvo? Se sim, cole-o.

[Se houver JD]

Agente: Otimização concluída. Relatório de diagnóstico:
       Pontuação total: 72/100

       Lista de problemas:
       [P0] A seção de experiência profissional carece de indicadores quantificados (grave)
             Sugestão: Cada bullet deve conter números ou porcentagens específicos
             Exemplo de reescrita: "Responsável pela iteração do produto" → "Liderou 5 iterações do produto, aumentando a taxa de retenção de usuários em 15%"

       ...

       Lista de lacunas (JD exige, mas currículo não tem):
       1. Habilidade em SQL (JD exige explicitamente)
            Pergunta de complementação mínima: Você tem experiência com SQL? Em que contexto?

       [Gerar currículo revisado]

Cenário 3: Exportar Arquivo

Usuário: Exporte este currículo
Agente: Gerando arquivos DOCX e PDF... [chamar render_resume.py]
       Arquivos gerados:
       - Joao-GerenteProduto-2024-01-15.docx
       - Joao-GerenteProduto-2024-01-15.pdf

Cenário 4: Comparar Versões

Usuário: Compare v1 e v2
Agente: [chamar version_manager.py compare]
       Principais diferenças:
       1. Experiência profissional - Empresa Tech X (2019-2022)
          v1: Responsável pelo design de produto e análise de requisitos
          v2: Liderou 8 iterações do produto, otimizando com base em dados, aumentando a satisfação do usuário em 25%

       2. Habilidades - primárias
          v1: ["Design de Produto", "Análise de Requisitos", "Gerenciamento de Projetos"]
          v2: ["Design de Produto", "Análise de Requisitos", "Gerenciamento de Projetos", "Análise de Dados", "SQL", "Testes A/B"]

       Sugestão: A versão v2 está mais completa; recomendo usar v2 para submissão.

Cenário 5: Reverter Versão

Usuário: Reverter para v1
Agente: [chamar version_manager.py rollback]
       Revertido para a versão v1 (GerenteProduto-2024-01-10-pt-BR)

Observações

Fallback em Caso de Falha

  • Falha na análise do currículo: solicitar que o usuário cole o texto puro; ou que cole em seções separadas por "educação/experiência/projeto"
  • Informações ausentes: usar 【Placeholder】 + lista mínima de complementação (≤8 perguntas)
  • JD muito longo: extrair apenas as seções de responsabilidades e requisitos do cargo; ignorar o restante
  • Conteúdo gerado muito genérico: forçar que cada bullet contenha um "resultado/impacto"; caso contrário, marcar como problema P1 e fornecer exemplo de reescrita

Compatibilidade ATS (a restrição se aplica ao currículo "gerado/exportado"; ao analisar arquivos enviados pelo usuário, o conteúdo de tabelas pode ser lido normalmente)

  • Usar títulos de seção padrão (Experiência Profissional, Formação Acadêmica, Habilidades etc.)
  • Evitar uso de tabelas, caixas de texto, ícones, imagens
  • Layout de coluna única por padrão
  • Usar fontes padrão (ex.: Arial, Calibri)
  • Evitar caracteres especiais e elementos decorativos

Garantia de Qualidade

  • Todos os bullets devem começar com um verbo de ação (ex.: "Liderou", "Projetou", "Implementou", "Otimizou" etc.)
  • Garantir que cada bullet tenha um resultado ou impacto claro
  • Evitar verbos fracos como "Responsável por", "Participou de"
  • Priorizar voz ativa; evitar voz passiva

Exemplos de Uso

Exemplo 1: Criar Currículo do Zero (chinês/inglês)

  • Descrição da funcionalidade: ajudar o usuário a criar currículos bilíngues (chinês e inglês) do zero
  • Modo de execução: conversa com agente + script para salvar versão
  • Parâmetros-chave: language=zh-CN/en-US, target_title, target_level
  • Etapas:
    1. Coletar informações básicas e experiências
    2. Gerar ResumeIR em chinês
    3. Gerar ResumeIR em inglês (tradução automática)
    4. Salvar como duas versões (chinês e inglês)

Exemplo 2: Otimizar Currículo com Base em JD

  • Descrição da funcionalidade: otimizar conteúdo do currículo para um JD específico
  • Modo de execução: análise pelo agente + script de análise
  • Parâmetros-chave: texto do JD, arquivo de currículo original
  • Etapas:
    1. Analisar currículo original
    2. Analisar requisitos do JD
    3. Comparar e identificar lacunas
    4. Reescrever currículo para cobrir palavras-chave do JD
    5. Gerar comparação e sugestões de otimização

Exemplo 3: Gerenciamento de Múltiplas Versões

  • Descrição da funcionalidade: criar várias versões de currículo, comparar e selecionar a melhor
  • Modo de execução: script de gerenciamento de versões
  • Parâmetros-chave: version_name, resume_ir
  • Etapas:
    1. Salvar versão v1
    2. Modificar e salvar versão v2
    3. Comparar v1 e v2
    4. Reverter para a melhor versão
    5. Exportar versão final

Habilidades Relacionadas