CV Forge MCP
Forje currículos poderosos e compatíveis com ATS, adaptados a qualquer vaga - um servidor MCP para geração inteligente de currículos.
Documentação
CV Forge
Crie CVs poderosos e compatíveis com ATS, adaptados a qualquer requisito de vaga.
Um servidor MCP (Model Context Protocol) inteligente que analisa anúncios de emprego e elabora CVs perfeitamente alinhados.
Recursos
- Analisar Requisitos da Vaga: Extrai habilidades-chave, qualificações, endereços de e-mail e nomes de gerentes de contratação de anúncios de emprego
- Gerar CVs Personalizados: Cria conteúdo de CV personalizado com base no perfil do usuário e nos requisitos da vaga
- Geração de Carta de Apresentação: Gera cartas de apresentação personalizadas para candidaturas específicas
- Criação de Modelos de E-mail: Cria modelos de e-mail profissionais com detecção automática de endereço de e-mail
- Pacotes de Candidatura Completos: Gera CV, carta de apresentação e modelo de e-mail em um único comando
- PDF por Padrão: Gera automaticamente documentos PDF profissionais quando nenhum formato é especificado
- Múltiplos Formatos de Saída: Gera documentos em PDF (padrão), HTML, Markdown e formatos de texto
- Geração Profissional de PDF: Cria documentos PDF prontos para publicação com estilo profissional
- Compatível com ATS: Otimizado para Sistemas de Rastreamento de Candidatos com posicionamento adequado de palavras-chave
- Extração Inteligente de Contatos: Extrai automaticamente endereços de e-mail e nomes de gerentes de contratação de descrições de vagas
Histórico de Estrelas
Instalação
Via npm (Recomendado)
Instale globalmente:
npm install -g cv-forge
Ou instale localmente no seu projeto:
npm install cv-forge
A partir do Código-Fonte
- Clone este repositório
- Instale as dependências:
npm install - Compile o projeto:
npm run build
Uso
Conectando ao Claude Desktop
Para usar este servidor MCP com o Claude Desktop, você precisa adicioná-lo ao seu arquivo de configuração do Claude.
Passo 1: Instale o cv-forge
npm install -g cv-forge
Passo 2: Encontre o arquivo de configuração do Claude Desktop
- Windows:
%APPDATA%\Claude\claude_desktop_config.json - macOS:
~/Library/Application Support/Claude/claude_desktop_config.json - Linux:
~/.config/Claude/claude_desktop_config.json
Passo 3: Adicione o servidor MCP à sua configuração
Para instalação global, adicione isto ao seu arquivo claude_desktop_config.json:
{
"mcpServers": {
"cv-forge": {
"command": "cv-forge"
}
}
}
Ou, se instalado localmente, especifique o caminho completo:
{
"mcpServers": {
"cv-forge": {
"command": "node",
"args": ["d:/TopSecret/cv-forge/build/index.js"],
"cwd": "d:/TopSecret/cv-forge"
}
}
}
Passo 4: (Opcional) Adicione a configuração de ambiente
Você pode personalizar o servidor com variáveis de ambiente:
{
"mcpServers": {
"cv-forge": {
"command": "cv-forge",
"env": {
"DEFAULT_OUTPUT_PATH": "D:/CV",
"PDF_BASE_FONT_SIZE": "12px",
"PDF_LINE_HEIGHT": "1.4"
}
}
}
}
Passo 5: Reinicie o Claude Desktop Após adicionar a configuração, reinicie o aplicativo Claude Desktop.
Passo 6: Verifique a Conexão No Claude Desktop, você deve ver as ferramentas do CV Forge disponíveis. Você pode pedir ao Claude para usar ferramentas como:
- "Analise este anúncio de emprego para mim"
- "Gere um CV personalizado com base no meu perfil e nesta vaga"
- "Salve meu CV como arquivo PDF"
Executando o Servidor MCP de Forma Independente (para testes)
Você também pode executar o servidor diretamente para testes:
npm start
O servidor roda em stdio e se comunica via Model Context Protocol.
Ferramentas Disponíveis
1. parse_job_requirements
Analisa os requisitos da vaga e extrai informações-chave para a personalização do CV.
Parâmetros:
jobTitle(string, obrigatório): O título/cargo da vagacompany(string, obrigatório): Nome da empresajobDescription(string, obrigatório): Texto completo da descrição da vagarequirements(array, opcional): Requisitos específicos se separadospreferredSkills(array, opcional): Habilidades preferenciais se separadaslocation(string, opcional): Localização da vagasalaryRange(string, opcional): Faixa salarial se fornecida
2. generate_cv_data
Gera conteúdo de CV personalizado com base no perfil do usuário e nos requisitos da vaga.
Parâmetros:
userProfile(objeto, obrigatório): Informações completas do perfil do usuáriojobRequirements(objeto, obrigatório): Objeto de requisitos da vaga
Estrutura do Perfil do Usuário:
{
"personalInfo": {
"fullName": "John Doe",
"email": "john@example.com",
"phone": "+1-555-0123",
"location": "City, State",
"linkedIn": "linkedin.com/in/johndoe",
"github": "github.com/johndoe",
"website": "johndoe.com"
},
"summary": "Professional summary text...",
"experience": [
{
"jobTitle": "Software Engineer",
"company": "Tech Corp",
"location": "City, State",
"startDate": "2020-01",
"endDate": "2023-12",
"description": "Job description...",
"achievements": [
"Achievement 1",
"Achievement 2"
]
}
],
"education": [
{
"degree": "Bachelor of Science in Computer Science",
"institution": "University Name",
"location": "City, State",
"graduationYear": "2020",
"gpa": "3.8",
"honors": ["Magna Cum Laude"]
}
],
"skills": {
"technical": ["JavaScript", "Python", "React"],
"soft": ["Leadership", "Communication"],
"languages": ["English", "Spanish"],
"certifications": ["AWS Certified"]
},
"projects": [
{
"name": "Project Name",
"description": "Project description...",
"technologies": ["React", "Node.js"],
"url": "github.com/johndoe/project"
}
]
}
3. save_cv_text
Salva o conteúdo do CV como um arquivo de texto formatado.
Parâmetros:
cvData(objeto, obrigatório): Objeto de dados do CV personalizado (de generate_cv_data)outputPath(string, obrigatório): Caminho do diretório onde o CV deve ser salvofileName(string, opcional): Nome de arquivo personalizado (sem extensão), padrão "generated_cv"
4. generate_cv (Recomendado - Ferramenta Principal de Geração de CV)
Gera CV personalizado e salva no local especificado ou na pasta padrão. Padrão para formato PDF se nenhum formato for especificado.
Parâmetros:
userProfile(objeto, obrigatório): Informações completas do perfil do usuáriojobRequirements(objeto, obrigatório): Objeto de requisitos da vagaoutputPath(string, opcional): Caminho do diretório onde o CV deve ser salvo (usa DEFAULT_OUTPUT_PATH se não for fornecido)fileName(string, opcional): Nome de arquivo personalizado (sem extensão), padrão "professional_cv"format(string, opcional): Formato de saída - "pdf" (padrão), "html" ou "markdown"pageSize(string, opcional): Tamanho da página do PDF (ex.: 'A4', 'Letter', 'Legal') - usa a variável de ambiente PDF_PAGE_SIZE se não for fornecidamargins(objeto, opcional): Margens do PDF com propriedades top, right, bottom, left (ex.: '10mm', '0.8in') - usa as variáveis de ambiente PDF_MARGIN_* se não forem fornecidas
5. generate_and_save_cv_pdf (Legado - Use generate_cv em vez disso)
Gera CV personalizado e salva diretamente como PDF profissional (combina geração de CV e criação de PDF em uma única etapa).
Parâmetros:
userProfile(objeto, obrigatório): Informações completas do perfil do usuáriojobRequirements(objeto, obrigatório): Objeto de requisitos da vagaoutputPath(string, opcional): Caminho do diretório onde o CV deve ser salvo (usa DEFAULT_OUTPUT_PATH se não for fornecido)fileName(string, opcional): Nome de arquivo personalizado (sem extensão), padrão "professional_cv"
6. generate_and_save_cv_markdown (Recomendado)
Gera CV personalizado e salva diretamente como Markdown (combina geração de CV e criação de Markdown em uma única etapa).
Parâmetros:
userProfile(objeto, obrigatório): Informações completas do perfil do usuáriojobRequirements(objeto, obrigatório): Objeto de requisitos da vagaoutputPath(string, obrigatório): Caminho do diretório onde o CV deve ser salvofileName(string, opcional): Nome de arquivo personalizado (sem extensão), padrão "cv_markdown"
7. generate_and_save_cv_html (Recomendado)
Gera CV personalizado e salva diretamente como HTML (combina geração de CV e criação de HTML em uma única etapa).
Parâmetros:
userProfile(objeto, obrigatório): Informações completas do perfil do usuáriojobRequirements(objeto, obrigatório): Objeto de requisitos da vagaoutputPath(string, obrigatório): Caminho do diretório onde o CV deve ser salvofileName(string, opcional): Nome de arquivo personalizado (sem extensão), padrão "cv_html"
8. generate_cv_pdf (Avançado)
Gera e salva CV como documento PDF profissional a partir de dados de CV pré-gerados.
Parâmetros:
cvData(objeto, obrigatório): Objeto de dados do CV personalizado (de generate_cv_data)outputPath(string, obrigatório): Caminho do diretório onde o CV deve ser salvofileName(string, opcional): Nome de arquivo personalizado (sem extensão), padrão "professional_cv"
9. generate_cv_markdown (Avançado)
Gera CV em formato Markdown a partir de dados de CV pré-gerados.
Parâmetros:
cvData(objeto, obrigatório): Objeto de dados do CV personalizado (de generate_cv_data)outputPath(string, obrigatório): Caminho do diretório onde o CV deve ser salvofileName(string, opcional): Nome de arquivo personalizado (sem extensão), padrão "cv_markdown"
10. generate_cv_html (Avançado)
Gera CV como documento HTML estilizado a partir de dados de CV pré-gerados.
Parâmetros:
cvData(objeto, obrigatório): Objeto de dados do CV personalizado (de generate_cv_data)outputPath(string, obrigatório): Caminho do diretório onde o CV deve ser salvofileName(string, opcional): Nome de arquivo personalizado (sem extensão), padrão "cv_web"
Ferramentas de Carta de Apresentação e Modelo de E-mail
11. generate_cover_letter (Recomendado)
Gera uma carta de apresentação personalizada para uma candidatura específica. Retorna texto formatado que pode ser exibido na tela ou salvo como PDF.
Parâmetros:
userProfile(objeto, obrigatório): Informações completas do perfil do usuáriojobRequirements(objeto, obrigatório): Objeto de requisitos da vagahiringManagerName(string, opcional): Nome do gerente de contratação se conhecidoformat(string, opcional): Formato de saída - "text" (padrão) para exibição na tela, "html" para visualização estilizada
12. save_cover_letter_pdf
Gera e salva uma carta de apresentação como PDF no local especificado. Extrai automaticamente endereços de e-mail e nomes de gerentes de contratação de descrições de vagas.
Parâmetros:
userProfile(objeto, obrigatório): Informações completas do perfil do usuáriojobRequirements(objeto, obrigatório): Objeto de requisitos da vagaoutputPath(string, opcional): Caminho do diretório onde a carta de apresentação deve ser salvafileName(string, opcional): Nome de arquivo personalizado (sem extensão), padrão "cover_letter"hiringManagerName(string, opcional): Nome do gerente de contratação se conhecidopageSize(string, opcional): Tamanho da página do PDF (ex.: 'A4', 'Letter', 'Legal')margins(objeto, opcional): Margens do PDF com propriedades top, right, bottom, left
13. generate_email_template
Gera um modelo de e-mail profissional para candidatura de emprego. Detecta automaticamente endereços de e-mail da descrição da vaga.
Parâmetros:
userProfile(objeto, obrigatório): Informações completas do perfil do usuáriojobRequirements(objeto, obrigatório): Objeto de requisitos da vagatemplateType(string, opcional): Tipo de modelo de e-mail - "application" (padrão), "follow_up", "inquiry", "thank_you"recipientEmail(string, opcional): Endereço de e-mail do destinatário (opcional, usará o e-mail extraído da descrição da vaga se disponível)hiringManagerName(string, opcional): Nome do gerente de contratação se conhecido
14. draft_complete_application (Recomendado - Solução Completa)
Elabore um pacote completo de candidatura: CV, carta de apresentação e modelo de e-mail. Gera automaticamente CV em PDF e carta de apresentação, além de modelo de e-mail se o endereço de e-mail for encontrado na descrição da vaga.
Parâmetros:
userProfile(objeto, obrigatório): Informações completas do perfil do usuáriojobRequirements(objeto, obrigatório): Objeto de requisitos da vagaoutputPath(string, opcional): Caminho do diretório onde os arquivos devem ser salvosbaseFileName(string, opcional): Nome base dos arquivos gerados (sem extensão), padrão "job_application"hiringManagerName(string, opcional): Nome do gerente de contratação se conhecido
Configuração
Variáveis de Ambiente
O servidor MCP suporta várias opções de configuração por meio de variáveis de ambiente na configuração do Claude Desktop:
{
"mcpServers": {
"cv-forge": {
"command": "node",
"args": ["path/to/cv-forge/build/index.js"],
"cwd": "path/to/cv-forge",
"env": {
"DEFAULT_OUTPUT_PATH": "D:/CV",
"TEMP_DIR": "C:/Users/YourName/AppData/Local/Temp/cv-maker",
"PDF_TIMEOUT": "300000",
"PDF_PAGE_SIZE": "A4",
"PDF_MARGIN_TOP": "10mm",
"PDF_MARGIN_RIGHT": "10mm",
"PDF_MARGIN_BOTTOM": "10mm",
"PDF_MARGIN_LEFT": "10mm",
"PDF_BASE_FONT_SIZE": "12px",
"PDF_LINE_HEIGHT": "1.4",
"PDF_H1_FONT_SIZE": "20px",
"PDF_H2_FONT_SIZE": "15px",
"PDF_H3_FONT_SIZE": "13px",
"PDF_PARAGRAPH_SPACING": "8px",
"PDF_SECTION_SPACING": "12px"
}
}
}
}
Opções de Configuração:
DEFAULT_OUTPUT_PATH: Diretório padrão para salvar arquivos de CV (quando outputPath não é fornecido ou é "./")TEMP_DIR: Diretório para arquivos temporários durante a geração de PDFPDF_TIMEOUT: Tempo limite para geração de PDF em milissegundosPDF_PAGE_SIZE: Tamanho padrão da página do PDF - padrão 'A4'- Tamanhos comuns: 'A4' (210×297mm), 'Letter' (8.5×11in), 'Legal' (8.5×14in)
PDF_MARGIN_*: Margens da página do PDF (top, right, bottom, left) - padrão '10mm'PDF_BASE_FONT_SIZE: Tamanho base da fonte para o corpo do texto do CV (12px ≈ MS Word 9pt, 13px ≈ 10pt)PDF_LINE_HEIGHT: Altura da linha para texto (1.4 recomendado para layout compacto)PDF_H1_FONT_SIZE: Tamanho da fonte para o cabeçalho de nome/títuloPDF_H2_FONT_SIZE: Tamanho da fonte para cabeçalhos de seçãoPDF_H3_FONT_SIZE: Tamanho da fonte para títulos de cargos e subseçõesPDF_PARAGRAPH_SPACING: Espaçamento entre parágrafosPDF_SECTION_SPACING: Espaçamento entre seções principais
Exemplo de Uso com Claude Desktop
Uma vez conectado ao Claude Desktop, você pode usar linguagem natural para interagir com o criador de CV:
1. Analisar Requisitos da Vaga
"Can you parse this job posting for me:
Job Title: Senior Software Engineer
Company: TechCorp Inc
Description: We are looking for a Senior Software Engineer with 5+ years of experience in JavaScript, React, and Node.js. Must have experience with cloud platforms and agile methodologies. Strong communication skills required."
2. Gerar CV Personalizado (Processo Simples de Uma Etapa - PDF por Padrão)
"Generate a tailored CV for me based on this job posting:
Job Title: Senior Software Engineer
Company: TechCorp Inc
Job Description: We are looking for a Senior Software Engineer with 5+ years of experience in JavaScript, React, and Node.js. Must have experience with cloud platforms and agile methodologies.
My Profile:
- Full Name: John Doe
- Email: john@example.com
- Phone: +1-555-0123
- Experience: 6 years as Software Engineer at various companies
- Skills: JavaScript, Python, React, Node.js, AWS, Docker
- Education: BS Computer Science from State University
Please save it to C:\Users\John\Documents\CVs with filename 'john_doe_senior_engineer_techcorp'"
Nota: Isso gerará automaticamente um arquivo PDF (formato padrão), a menos que você especifique um formato diferente.
3. Gerar Diferentes Formatos
"Can you generate my CV in multiple formats? I need:
1. A professional PDF for applications (default format)
2. A Markdown version for my GitHub
3. An HTML version for my website
Save them all to C:\Users\John\Documents\CVs with the base filename 'john_doe_cv'"
Ou especifique o formato explicitamente:
"Generate my CV in HTML format and save it to C:\Users\John\Documents\CVs"
Ou especifique tamanho de página e margens personalizados para PDF:
"Generate my CV as a PDF with Letter page size and 1 inch margins on all sides, save it to C:\Users\John\Documents\CVs"
3. Gerar Cartas de Apresentação
"Generate a cover letter for the Senior Software Engineer position at TechCorp Inc. The job description mentions the hiring manager is Sarah Johnson and applications should be sent to careers@techcorp.com."
4. Gerar Modelos de E-mail
"Create an email template for applying to the Senior Software Engineer position at TechCorp Inc. The job posting includes the email careers@techcorp.com and mentions Sarah Johnson as the hiring manager."
5. Elaborar Pacote Completo de Candidatura (Recomendado)
"Draft a complete job application package for the Senior Software Engineer position at TechCorp Inc. Include CV, cover letter, and email template. Save everything to C:\Users\John\Documents\Applications with the base filename 'techcorp_application'."
Isso gerará:
techcorp_application_CV.pdf- CV personalizadotechcorp_application_Cover_Letter.pdf- Carta de apresentação profissionaltechcorp_application_Email_Template.txt- Modelo de e-mail (se o endereço de e-mail for encontrado na descrição da vaga)
6. Gerar Modelo de E-mail de Acompanhamento
"Generate a follow-up email template for the Senior Software Engineer position I applied to at TechCorp Inc last week."
7. Exemplos de Uso Direto das Ferramentas
Se você quiser usar as ferramentas diretamente (uso avançado):
-
Analisar uma vaga:
{ "tool": "parse_job_requirements", "args": { "jobTitle": "Senior Software Engineer", "company": "TechCorp Inc", "jobDescription": "We are looking for a Senior Software Engineer with 5+ years of experience in JavaScript, React, and Node.js. Must have experience with cloud platforms and agile methodologies." } } -
Gerar CV personalizado:
{ "tool": "generate_cv_data", "args": { "userProfile": { /* user profile object */ }, "jobRequirements": { /* job requirements object */ } } } -
Gerar CV em PDF:
{ "tool": "generate_cv_pdf", "args": { "cvData": { /* tailored CV data */ }, "outputPath": "C:\\Users\\YourName\\Documents\\CVs", "fileName": "senior_engineer_techcorp_cv" } } -
Gerar CV em Markdown:
{ "tool": "generate_cv_markdown", "args": { "cvData": { /* tailored CV data */ }, "outputPath": "C:\\Users\\YourName\\Documents\\CVs", "fileName": "cv_for_github" } } -
Gerar CV em HTML:
{ "tool": "generate_cv_html", "args": { "cvData": { /* tailored CV data */ }, "outputPath": "C:\\Users\\YourName\\Documents\\CVs", "fileName": "web_resume" } } -
Salvar CV como arquivo de texto:
{ "tool": "save_cv_text", "args": { "cvData": { /* tailored CV data */ }, "outputPath": "C:\\Users\\YourName\\Documents\\CVs", "fileName": "senior_engineer_techcorp_cv" } }
Como Funciona
-
Análise da Vaga: O servidor analisa descrições de vagas para extrair:
- Habilidades técnicas exigidas
- Qualificações preferenciais
- Setor e porte da empresa
- Requisitos de nível de experiência
-
Personalização do CV: Com base na análise, ele:
- Prioriza habilidades e experiências relevantes
- Ajusta o resumo profissional
- Reordena e enfatiza conquistas correspondentes
- Incorpora palavras-chave específicas da vaga para otimização em ATS
-
Geração de Saída: Cria um CV em texto bem formatado que:
- Usa formatação compatível com ATS
- Inclui palavras-chave relevantes
- Mantém estrutura profissional
- Destaca as qualificações mais relevantes
Estrutura de Arquivos
cv-forge/
├── src/
│ ├── index.ts # Main MCP server
│ └── lib/
│ ├── job-parser.ts # Job requirement parsing logic
│ ├── cv-generator.ts # CV tailoring algorithms
│ ├── document-generator.ts # Multi-format document generation
│ └── word-generator.ts # Word document generation (future)
├── build/ # Compiled JavaScript files
├── package.json # Project configuration
├── tsconfig.json # TypeScript configuration
├── claude_desktop_config.example.json # Example configuration
└── README.md # This file
Desenvolvimento
Compilação
npm run build
Iniciando o Servidor de Desenvolvimento
npm run dev
Estrutura do Projeto
src/index.ts: Servidor MCP principal com registro de ferramentassrc/lib/job-parser.ts: Analisa requisitos da vaga, extrai informações-chave, e-mails e nomes de gerentes de contrataçãosrc/lib/cv-generator.ts: Gera conteúdo de CV personalizado com base nos requisitos da vagasrc/lib/cover-letter-generator.ts: Gera cartas de apresentação personalizadas para candidaturassrc/lib/email-template-generator.ts: Cria modelos de e-mail profissionais para diversos cenários de candidaturasrc/lib/document-generator.ts: Geração de documentos em múltiplos formatos (PDF, HTML, Markdown)src/lib/word-generator.ts: (Futuro) Funcionalidade de geração de documentos Word
Solução de Problemas
PDF não está sendo salvo no local configurado
- Certifique-se de que
DEFAULT_OUTPUT_PATHestá definido na configuração do Claude Desktop - Reinicie o Claude Desktop após alterar a configuração
- Verifique se o caminho existe ou se o aplicativo tem permissão para criá-lo
Tamanho da fonte muito grande ou pequeno
- Ajuste
PDF_BASE_FONT_SIZEnas variáveis de ambiente (12px ≈ 9pt, 13px ≈ 10pt no MS Word) - Modifique
PDF_LINE_HEIGHTpara espaçamento mais compacto/mais amplo - Reinicie o Claude Desktop após as alterações
Falha na geração de PDF
- Verifique se o diretório de saída existe e é gravável
- Verifique se o caminho de
TEMP_DIRé válido - Garanta espaço em disco suficiente
Tamanho de página personalizado não funciona
- Certifique-se de que o tamanho da página é um formato válido (A4, Letter, Legal, A3, A5, etc.)
- Verifique se o tamanho da página é suportado pelo gerador de PDF
- Use nomes de tamanho de página padrão (sensível a maiúsculas/minúsculas)
Margens personalizadas não aplicadas
- Use unidades adequadas: 'mm', 'cm', 'in', 'px', 'pt'
- Exemplo: '10mm', '0.8in', '72pt'
- Reinicie o Claude Desktop após alterar as variáveis de ambiente
Melhorias Futuras
- Geração aprimorada de documentos Word com formatação avançada
- Múltiplos modelos de CV e carta de apresentação (moderno, clássico, minimalista)
- Algoritmos avançados de otimização de palavras-chave
- Integração com portais de vagas para análise automática de vagas
- Integração com perfil do LinkedIn para dados automáticos de perfil
- Perguntas de preparação para entrevistas com base nos requisitos da vaga
- Orientação para negociação salarial com base em dados de mercado
- Suporte a múltiplos idiomas para candidaturas internacionais
- Sugestões e melhorias de escrita com IA
Dependências
@modelcontextprotocol/sdk: Funcionalidade principal do MCPzod: Validação de esquema e segurança de tipostypescript: Compilador TypeScriptmd-to-pdf: Geração de PDF a partir de Markdownmarkdown-it: Análise de Markdown e conversão para HTMLdocx: Geração de documentos Word (para futura saída em Word)
Licença
Este projeto está disponível sob a Licença MIT.
Contribuição
Contribuições são bem-vindas! Sinta-se à vontade para enviar pull requests ou abrir issues para bugs e solicitações de recursos.