Como funciona
O mecanismo de match não é uma caixa preta. Aqui está o pipeline completo, em ordem.
1. Conteúdo em Markdown
Cada projeto e experiência vive em um arquivo .mdx versionado no repositório — a mesma fonte que gera esta página e o índice usado no relatório de match.
2. Indexação em build time
No build, cada chunk (projeto ou experiência) vira um embedding vetorial (Vertex AI, gemini-embedding-001) e é salvo em um knowledge.json estático — sem banco de dados dedicado.
3. Retrieval híbrido
Ao receber uma vaga, calculo a similaridade de cosseno entre a JD e cada chunk, combino com um score léxico (BM25 via minisearch) e seleciono os trechos mais relevantes.
4. Geração com citação obrigatória
O modelo (Gemini, via Vercel AI SDK) recebe só os trechos selecionados e é instruído a citar [[cite:ID]] em toda afirmação factual. Citações são validadas contra o knowledge.json antes de exibir — nenhum ID inventado passa.
Sem banco vetorial dedicado, sem grafo de conhecimento — o volume de conteúdo não justifica. Simplicidade deliberada, não limitação.