
Criei um servidor MCP de código aberto que analisa um CV contra 5 parsers ATS reais
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-parsepara extração de texto de PDF -
mammothpara DOCX -
@modelcontextprotocol/sdkpara 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.
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.


