Estratégia de prompts¶
Objetivo¶
A IA deve interpretar linguagem natural, comparar currículo e vaga, explicar compatibilidade e sugerir melhorias. Ela não deve tomar decisões invisíveis nem inventar informações.
Papel do modelo¶
O prompt deve posicionar o modelo como:
Especialista em recrutamento técnico, ATS, análise de currículo e vagas de tecnologia, com foco em candidatos de estágio/júnior.
Regras do prompt¶
O modelo deve:
- responder em português;
- não inventar experiências;
- diferenciar requisito obrigatório de desejável;
- explicar o score;
- sugerir palavras-chave apenas quando fizer sentido;
- deixar claro quando algo não aparece no currículo;
- gerar mensagem curta e editável;
- retornar JSON válido quando solicitado.
Prompt base sugerido¶
Você é um especialista em recrutamento técnico, ATS e análise de vagas de tecnologia.
Analise o currículo e a descrição da vaga.
Regras:
- Não invente experiências ou habilidades.
- Se uma habilidade não aparecer no currículo, diga que ela está ausente ou precisa ser destacada apenas se for verdadeira.
- Considere senioridade com peso alto.
- Explique os motivos do score.
- Classifique a recomendação como: Aplicar, Aplicar com cautela, Revisar antes de aplicar ou Não aplicar.
- Retorne somente JSON válido no schema solicitado.
Separação de prompts¶
Evite um prompt gigante no meio do app.py. Use funções:
def build_match_prompt(cv_text: str, job_description: str) -> str:
...
Ou separe:
- system instructions;
- user input;
- schema;
- examples.
Anti-alucinação¶
O prompt deve conter instruções claras:
- não assumir graduação concluída se estiver cursando;
- não assumir inglês fluente se não estiver escrito;
- não assumir experiência profissional em IA se só existem projetos pessoais;
- não transformar interesse em habilidade avançada.
Exemplo de boa resposta¶
A vaga menciona Power BI. Essa palavra-chave não aparece de forma forte no currículo. Se o candidato realmente tiver experiência, vale destacar em Habilidades ou Projetos.
Exemplo de resposta ruim¶
O candidato possui Power BI avançado.
Se o currículo não diz isso, essa resposta é invenção.
Atualização: prompts completos, versionados e multiárea¶
A estratégia anterior de prompt base continua útil como ponto de partida, mas a v0.10+ precisa de prompts completos por função.
O SotuHire não deve usar apenas um prompt genérico de "analise currículo e vaga".
Ele deve usar prompts especializados:
resume_extraction_v1;job_extraction_multi_domain_v1;match_analysis_evidence_based_v1;ats_analysis_v1;resume_tailor_v1;github_repo_analysis_v2;hidden_job_detection_v1.
Mudança de papel do modelo¶
O modelo não deve ser posicionado apenas como especialista em recrutamento técnico para estágio/júnior.
Novo papel geral:
Especialista em análise de carreira multiárea, ATS, extração estruturada, requisitos profissionais, portfólio e recomendações seguras, mantendo o usuário no controle.
Contrato mínimo de todo prompt¶
Todo prompt deve conter:
PROMPT_ID;PROMPT_VERSION;- objetivo;
- regras obrigatórias;
- contrato de entrada;
- contrato de saída;
- JSON puro;
- schema Pydantic associado;
- regras de anti-invenção;
- regras de confidence;
- regras de calibração;
- exemplos de campos críticos.
Entrada rica¶
Prompts devem receber mais que texto solto.
Exemplo:
{
"resume_text": "...",
"job_text": "...",
"candidate_preferences": {},
"career_memory_evidence": [],
"portfolio_evidence": [],
"analysis_mode": "advanced",
"language": "pt-BR"
}
Saída rígida¶
A saída deve ser JSON validável por Pydantic.
Texto livre só deve ser usado como rascunho, nunca como contrato de produto.
Regra:
Sem schema validado, a resposta da IA não entra no tracker, na memória ou no score final.
IA não calcula tudo¶
A IA deve:
- extrair;
- classificar;
- explicar;
- sugerir;
- listar evidências;
- estimar confidence.
O código deve:
- validar;
- calcular score;
- aplicar pesos;
- travar score por gap crítico;
- registrar histórico;
- comparar versões;
- impedir overclaiming.
Catálogo completo¶
Os prompts completos ficam em:
Critério de qualidade do prompt¶
Um prompt é bom quando:
- retorna JSON válido na maioria dos casos;
- lida com currículo incompleto;
- lida com vaga informal;
- lida com áreas fora de TI;
- não inventa registro profissional;
- separa obrigatório de desejável;
- aponta confidence baixo quando necessário;
- gera sugestões seguras;
- facilita teste automatizado.