Voltar as noticias
Criei um servidor MCP de código aberto que analisa um CV contra 5 parsers ATS reais
MCP ProtocolAltaEN

Criei um servidor MCP de código aberto que analisa um CV contra 5 parsers ATS reais

Dev.to - MCP·28 de abril de 2026

A maioria dos "scanners ATS" online fornece uma pontuação de 0-100 que é inventada. Depois de conversar com recrutadores de três empresas em diferentes plataformas ATS, confirmei: não existe uma pontuação ATS real. Diferentes parsers extraem diferentes campos, e as ferramentas de pontuação apenas chutam.

Então, eu construí uma ferramenta que faz isso de forma diferente — e a lancei como um servidor MCP para que qualquer agente (Claude Code, Cursor, Windsurf, Zed, etc.) possa usá-la inline.

Repo: goofypluto999/cv-mirror-mcp
Licença: MIT.

O que ele realmente faz

Três ferramentas expostas através do Protocolo de Contexto do Modelo:

  • analyze_cv(path) — relatório completo. Aceita um CV (PDF ou DOCX), retorna descobertas de lint por fornecedor em Workday, Greenhouse, Lever, Taleo, iCIMS com severidade (error / warn / info) e correções concretas.
  • lint_for_vendor(path, vendor) — lint de fornecedor único. Mais rápido quando o usuário só se importa com, digamos, Workday.
  • get_express_url() — retorna a URL de um companheiro visual na web (visualização de análise ao vivo no navegador) para usuários que desejam a sobreposição lado a lado.

Saída de exemplo:

[ERROR] Workday
  - WORKDAY_MULTI_COLUMN: 35% das linhas parecem multi-coluna. O parser do Workday
    lê da esquerda para a direita e intercala ambas as colunas em um único fluxo.
    Correção: Converta para layout de coluna única. Mova as barras laterais (Habilidades, Ferramentas)
    acima ou abaixo do conteúdo principal.

[OK] Greenhouse
  Nenhum problema detectado pelo parser simulado.

[WARN] Lever
  - LEVER_HEADER_FOOTER: Texto semelhante a cabeçalho/rodapé detectado ("Página 1 de 2").
    O Lever historicamente descarta conteúdo colocado em cabeçalhos/rodapés de PDF.

Por que por fornecedor em vez de uma única pontuação

Os cinco principais ATS empresariais fazem a análise de forma diferente:

  • Workday lê PDFs na ordem do fluxo do documento — layouts de múltiplas colunas são intercalados
  • Greenhouse remove a maioria dos pontos de código emoji; "Projetos 🚀" pode perder seu contexto circundante
  • Lever historicamente descarta conteúdo em cabeçalhos/rodapés de PDF
  • Taleo prefere o formato de data Mês-Ano; datas ISO frequentemente falham em preencher as durações de emprego
  • iCIMS tem o pior manuseio de múltiplas colunas — seções laterais de Habilidades frequentemente se misturam com a linha acima

Uma única pontuação colapsa tudo isso em ruído. Por fornecedor, revela o que cada um realmente vê.

Stack

  • pdf-parse para extração de texto de PDF
  • mammoth para DOCX
  • @modelcontextprotocol/sdk para o transporte do servidor MCP (stdio)
  • Simuladores de fornecedor em Pure-JS em src/lint.mjs — sem inferência de IA, apenas heurísticas derivadas de documentos públicos de fornecedores
  • 19 testes unitários cobrindo extração de sinal e disparo de regras por fornecedor

As regras dos fornecedores são intencionalmente conservadoras. Cada regra cita sua fonte pública em docs/vendor-sources.md. Eu prefiro perder um problema do que ter um falso positivo em uma página de emprego real.

Instalação + uso

npm install -g cv-mirror-mcp

Adicione à configuração do seu cliente MCP:

{
  "mcpServers": {
    "cv-mirror": {
      "command": "npx",
      "args": ["-y", "cv-mirror-mcp"]
    }
  }
}

Reinicie o cliente. Então pergunte ao seu agente:

Escaneie meu CV em ~/Documents/resume.pdf e me diga o que cada ATS faria com ele.

O agente chama analyze_cv, o motor de lint é executado localmente dentro do processo do agente — sem upload, sem telemetria — e o agente apresenta a divisão por fornecedor.

Privacidade por arquitetura

O caminho expresso (ferramenta web) é executado inteiramente do lado do cliente via pdf.js. O servidor MCP é executado localmente dentro do processo do agente. Não há ponto de upload e nenhuma chamada de rede do motor de lint. Você pode verificar no código-fonte — é licenciado sob MIT.

Isso não é uma afirmação de marketing. A arquitetura torna a exfiltração de dados impossível, não apenas improvável.

Roteiro

  • [ ] Simulador BambooHR
  • [ ] Simulador SmartRecruiters
  • [ ] Extração de JD em tempo real para grandes quadros de empregos públicos ATS (para que o usuário também possa passar uma URL de JD e obter descobertas de correspondência de palavras-chave)
  • [ ] Extensão de navegador que sobrepõe a saída do parser em qualquer formulário de aplicação de emprego

Projeto irmão (pago, opcional)

A mesma equipe também faz Vantage AI — uma vez que seu CV passou pelo parser, o próximo problema é a aplicação: carta de apresentação personalizada, simulação de entrevista, análise de adequação. É um SaaS pago, separado deste servidor MCP. Inscrição genuinamente gratuita com 3 análises gratuitas incluídas se você quiser experimentá-lo.

O servidor MCP se mantém sozinho — é MIT, é gratuito, não é uma isca.

Contribuindo

PRs são bem-vindas. Particularmente interessado em:

  • Mais simuladores de fornecedores (BambooHR, SmartRecruiters, JazzHR, Recruitee, etc.)
  • Regras atualizadas quando os fornecedores mudam seu comportamento de análise (abra um problema com o link da fonte)
  • Traduções da saída de lint

O repo está em goofypluto999/cv-mirror-mcp. Construído sozinho ao longo de algumas semanas.

Contexto Triplo Up

Este servidor MCP pode ajudar empresas brasileiras a otimizar seus processos de recrutamento, garantindo que os currículos sejam formatados corretamente para diferentes sistemas ATS. Isso pode aumentar as chances de candidatos serem selecionados, melhorando a eficiência na contratação.

Noticias relacionadas

Gostou do conteudo?

Receba toda semana as principais novidades sobre WebMCP.