Repository navigation
Description
Problema
O Applywell não contabiliza corretamente múltiplas entrevistas de uma mesma candidatura.
Caso real: a candidatura da Paytrack teve uma entrevista inicial em 17/06/2026 (registrada/agendada) e uma entrevista técnica realizada em 02/07/2026. O registro continua com interviewCount = 1, embora o histórico contenha as duas etapas.
Comportamento observado na integração MCP:
Get_ApplicationretornainterviewCount: 1.Apply_Gamification_EventcomINTERVIEW_PROGRESSpara a segunda etapa retorna "Evento já contabilizado para esta candidatura." expGained: 0.Patch_Applicationnão expõeinterviewCountnem um endpoint/campo para registrar uma etapa de entrevista.- Registrar outra candidatura para contar a segunda entrevista produziria registros fantasma/duplicados, portanto não é uma solução válida.
Comportamento esperado
Uma candidatura deve comportar zero, uma ou várias entrevistas. O número precisa refletir as etapas realmente realizadas, não apenas a presença da flag interviewScheduled ou a primeira emissão do evento de gamificação.
Proposta de implementação
- MVP: disponibilizar na API e nas tools MCP uma operação para registrar/consultar entrevistas por candidatura (data/hora, etapa, status e identificador próprio). Permitir múltiplas etapas sem criar outra candidatura.
- Tornar a operação idempotente por entrevista (ID da etapa/evento), não apenas por ID da candidatura; impedir que reenvios da mesma entrevista aumentem a contagem ou concedam XP duas vezes.
- Calcular/exibir
interviewCountcom base nas entrevistas com status realizada; as agendadas, canceladas, não realizadas e testes técnicos assíncronos não devem entrar na contagem de entrevistas realizadas. - Ajustar analytics, as respostas do MCP e, quando pertinente, a interface React para apresentar contagem por candidatura e total de entrevistas.
- Preservar histórico e compatibilidade dos registros já existentes. Definir migração/concilição sem somar automaticamente anotações livres nem duplicar etapas existentes.
Observação: manter a contabilização de XP separada dos dados de negócio. O comando de gamificação não deve ser a única maneira de registrar uma entrevista.
Critérios de aceite
- Uma candidatura com 2 entrevistas realizadas retorna
interviewCount = 2, com apenas 1 candidatura. - Reenviar a mesma entrevista não altera o contador nem duplica XP.
- Registrar uma segunda etapa distinta funciona mesmo quando a primeira já gerou
INTERVIEW_PROGRESS. - Etapas somente agendadas ou canceladas não aumentam o total de realizadas.
- Testes de seleção assíncronos não são classificados como entrevistas.
- API/MCP permitem registrar e consultar as etapas; analytics retorna valores consistentes.
- Testes automatizados cobrem múltiplas etapas, idempotência, estados e dados legados.
Dados de validação (sem expor informações privadas)
- CoteFácil: 2 entrevistas indicadas no cadastro.
- Paytrack: 2 etapas no histórico, mas
interviewCount = 1. - Accenture: 1 entrevista realizada.
A contagem correta para essas candidaturas, após confirmação de todas as etapas, deve refletir 5 entrevistas em 3 candidaturas, não 5 candidaturas.
Activity