Doc · Fluxos & lógica de match
Fluxos e cálculo de match
Fluxo do candidato (sem login, via token único)
📧
Recebe convite→
①
Dados pessoais→
②
DISC · 40 blocos→
③
Prova técnica→
④
Conclusão→
💾
Salva no Cloud + calcula matchFluxo do recrutador
🔐
Login→
🧑💼
Cadastra gestor + DISC interno→
💼
Cria vaga + perfil ideal→
📤
Envia link ao candidato→
👥
Recebe respostas ranqueadas→
📄
Abre relatório completo→
✓
Decide contratarCálculo de match — distância euclidiana normalizada
Match com a vaga
// distância máx em 4D: sqrt(4 × 100²) = 200
const dist = Math.sqrt(
(cand.D - job.idealD) ** 2 +
(cand.I - job.idealI) ** 2 +
(cand.S - job.idealS) ** 2 +
(cand.C - job.idealC) ** 2
);
const matchJobPct = (1 - dist / 200) * 100;Match com o gestor
// mesma fórmula vs perfil do gestor
const dist = Math.sqrt(
(cand.D - mgr.D) ** 2 +
(cand.I - mgr.I) ** 2 +
(cand.S - mgr.S) ** 2 +
(cand.C - mgr.C) ** 2
);
const matchMgrPct = (1 - dist / 200) * 100;Match total exibido no painel
match_total = 0.6 × match_job + 0.4 × match_manager
60% do peso vem do perfil da vaga + 40% do alinhamento com o estilo do gestor.
Cálculo dos scores DISC do candidato
A cada um dos 40 blocos, o candidato escolhe um adjetivo "mais" e outro "menos". Cada adjetivo está vinculado a uma dimensão D, I, S ou C.
+1 ponto
para a dimensão escolhida como "MAIS" em cada bloco
−1 ponto
para a dimensão escolhida como "MENOS" em cada bloco
Normalização
score bruto → escala 0–100 via min-max scaling
Narrativa condicional — exemplo de regras
// Comportamento natural
if (D > 70 && I < 50) → "perfil orientado a resultado, direto e objetivo"
if (I > 70 && S > 60) → "comunicativo, caloroso e constante no relacionamento"
if (C > 70 && S > 60) → "analítico, metódico, valoriza processos claros"
if (D > 60 && I > 60) → "perfil de líder carismático, combina energia e resultado"
// Como reage à pressão
if (D > 70) → "assume controle e decide rápido, pode parecer impaciente"
if (I > 70) → "busca apoio emocional, dispersa-se sem metas claras"
if (S > 70) → "mantém a calma, resiste mudanças bruscas"
if (C > 70) → "refugia-se em dados e checklist, pode travar decisões"A biblioteca cobre: comportamento natural, comunicação, motivação, reação à pressão, ambiente ideal, pontos fortes e limitações.
Segurança & privacidade
🔒 RLS no banco
Cada recrutador só enxerga vagas/candidatos da sua empresa.
🔑 Token único
Candidato acessa via UUID v4. Token expira após conclusão.
📜 LGPD
Aceite explícito no Step 1 + possibilidade de apagar dados a pedido.