1. Propósito e Escopo
Este documento define todos os prompts, configurações de memória, transição entre estados, consulta a documentos e demais requisitos funcionais para um agente de IA destinado a suportar processos seletivos de professores. Essa documentação é um modelo de PRD ou Documento de Requisitos de Produto específicos para construção de Agentes de IA.
O objetivo principal é automatizar a triagem de currículos e a organização de entrevistas, identificando candidatos com perfis mais aderentes às necessidades do curso.
2. Contexto e Problema
Cenário Atual
As instituições de ensino enfrentam desafios significativos ao gerenciar processos seletivos para professores, especialmente ao lidar com um grande volume de currículos. A identificação manual dos candidatos mais adequados é demorada e propensa a erros.
Problemas Identificados
- Volume de Currículos: O processamento manual de um grande volume de currículos é ineficiente e consome tempo significativo dos recursos humanos.
- Identificação de Perfis Adequados: A dificuldade em identificar rapidamente os candidatos que mais se alinham às necessidades específicas de cada curso.
- Organização de Entrevistas: Coordenar entrevistas de forma eficiente, respeitando disponibilidades e priorizando candidatos mais adequados.
3. Impactos Esperados
Com a implementação deste agente de IA, espera-se alcançar os seguintes resultados:
- Acelerar o processo de triagem de currículos, reduzindo o tempo gasto em até 70%.
- Melhorar a precisão na identificação de candidatos com perfis mais adequados às necessidades do curso.
- Otimizar a organização de entrevistas, garantindo que os candidatos mais qualificados sejam priorizados.
4. Visão Geral da Solução
O agente de IA para suporte em processos seletivos de professores processa currículos e organiza entrevistas, aplicando critérios específicos para identificar candidatos mais adequados às necessidades do curso. A seguir são detalhadas todas as regras de negócio e especificações funcionais necessárias para que esse agente atue como um assistente eficaz e autônomo na gestão de processos seletivos de docentes.
A solução consiste em um fluxo de automação composto por 3 agentes de IA. O processo inicia com a extração de dados dos currículos e termina com a organização das entrevistas dos candidatos qualificados.
A execução dos agentes é sequencial e linear, seguindo a ordem definida na tabela abaixo.
| Agentes | Função Principal |
|---|---|
Agente de Extração de Dados de Currículos (RF 1)
| Extrair e normalizar dados estruturados dos currículos recebidos para viabilizar a triagem objetiva e comparável entre candidatos. |
Agente de Triagem e Pontuação de Candidatos (RF 2)
| Aplicar critérios objetivos de triagem e calcular pontuação composta para identificar candidatos mais aderentes às necessidades do curso. |
Agente Organizador de Entrevistas (RF 3)
| Propor agenda de entrevistas e roteiros personalizados para candidatos elegíveis, respeitando prioridades, disponibilidades e restrições operacionais. |
5. Protótipos
Para proporcionar uma visão clara e tangível da solução proposta, criamos protótipos interativos que demonstram tanto o fluxo de trabalho dos agentes quanto os resultados esperados. Explore os links abaixo para entender melhor a solução em ação.
6. Requisitos Funcionais
RF 1. Agente de Extração de Dados de Currículos
1.1 Tarefa do Agente
Extrair e normalizar dados estruturados dos currículos recebidos para viabilizar a triagem objetiva e comparável entre candidatos.
1.2 Prompt ou Instruções do Agente
# 1. Contexto e explicações sobre inputs iniciais
Você está recebendo arquivos de currículos nos formatos PDF, DOCX ou TXT, além de instruções de mapeamento de campos (quando houver), e o idioma principal esperado do currículo.
# 2. Objetivo
Extrair e normalizar dados estruturados dos currículos recebidos para viabilizar a triagem objetiva e comparável entre candidatos.
# 3. Regras que você deve seguir para gerar sua resposta
- Extração de identidade: capturar nome completo tal como no documento; remover títulos (Prof., Dr.) do campo nome, mantendo-os quando presentes em titulação.
- Contatos: validar formatação de e-mail e telefone; normalizar DDI quando houver.
- Formação acadêmica: mapear níveis para enum{graduacao, especializacao, mestrado, doutorado, pos_doutorado}; se houver múltiplos, selecionar titulação_maxima pela hierarquia: pos_doutorado > doutorado > mestrado > especializacao > graduacao.
- Experiência: consolidar períodos sobrepostos por instituição/cargo; calcular anos_experiencia_docente e anos_experiencia_profissional em anos com 1 casa decimal; quando não houver fim, considerar "atual" e calcular até a data de hoje.
- Carga horária docente: quando informada por semestre/ano, converter para média semanal; quando inexistente, não inferir valores numéricos — registrar como nulo e listar em campos_ausentes.
- Áreas de atuação: normalizar termos (ex.: "Ciência da Computação", "CompSci" → "Ciencia da Computacao"); manter lista areas_de_atuacao_normalizadas.
- Produção acadêmica: classificar em {artigo, livro, capitulo, conferencia, patente, outro}; registrar ano quando disponível; não inferir fator de impacto.
- Habilidades/metodologias: extrair termos relevantes para ensino superior (ex.: EAD, ABP, aprendizagem ativa, avaliação formativa, ensino por competências, rubricas, sala de aula invertida).
- Disponibilidade: padronizar janelas no formato ISO 8601 local (ex.: "seg 18:00-22:00"); marcar modalidade preferida {presencial, online, hibrido} se explícito.
- Idiomas: normalizar níveis em {básico, intermediário, avançado, fluente, nativo}.
- Localização: extrair cidade/estado/país quando presentes; não inferir endereço completo a partir de links.
- Palavras-chave: extrair até 20 termos com maior relevância ligados a área do curso informado no briefing (quando fornecido externamente ao agente).
- Qualidade de extração: popular extracao_completa=false quando qualquer campo crítico (nome, titulação_maxima, experiência docente total) estiver ausente; listar campos_ausentes detalhadamente.
- Determinismo: para múltiplas ocorrências do mesmo dado, priorizar o mais recente por ano; em empates, manter a primeira ocorrência no documento.
- Saída: retornar somente os objetos estruturados descritos em expected_output, sem texto solto. 1.3 Configurações do Agente
1.3.1 Especificação do Input
- Mecanismo de Acionamento: Este agente é o ponto de partida do fluxo e deve ser acionado pelo envio de currículos nos formatos PDF, DOCX ou TXT via API. Na fase de testes, o fluxo será iniciado pelo envio manual dos dados, que serão enviados para o agente diretamente por upload na interface da Prototipe AI, para acelerar o processo de validação.
- Tipo do input: Arquivos de currículos nos formatos PDF, DOCX ou TXT.
-
Formatos Suportados: Esse agente deve ser capaz de receber arquivos nos formatos:
.pdf,.docx,.txt. - Número de caracteres esperado: Este agente deve ter capacidade para processar textos com até 100.000 caracteres por currículo.
1.3.2 Especificação do Output
- Formato de output: O output deve ser uma lista de objetos estruturados por candidato contendo dados normalizados e organizados conforme as regras estabelecidas.
-
Exemplo de Estrutura de Output:
[ { "id_candidato": "123", "nome_completo": "João da Silva", "contatos": {"email": "joao.silva@email.com", "telefone": "+55 11 98765-4321"}, "formacao_academica": [ {"nivel": "doutorado", "curso": "Educação", "instituicao": "USP", "ano_conclusao": "2020"} ], "experiencia_docente": [ {"instituicao": "Unicamp", "cargo": "Professor", "carga_horaria_sem": 20, "periodo": {"inicio": "2015-02", "fim": "atual"}} ], "habilidades_metodologias": ["EAD", "aprendizagem ativa"] } ] - Número de caracteres esperado: O JSON final será conciso, com um tamanho estimado de 2.000 a 5.000 caracteres por candidato.
1.3.3 Parâmetros de Geração
- Modelo: GPT-5
- Temperatura: 0.6
1.3.4 Ferramentas do Agente
- Documentos: Não consulta documentos externos.
- Calculadora: Não utiliza.
- Busca Online: Não utiliza.
- Sistemas Externos: Não se conecta a sistemas externos.
1.3.5 Memória
- Visibilidade das Instruções (Prompt): As instruções deste agente não devem ser visíveis para nenhum agente subsequente.
- Visibilidade da Resposta: A resposta gerada por este agente deve ser visível para o Agente de Triagem e Pontuação de Candidatos (RF 2).
1.3.6 Regras de Orquestração e Transição
Ao concluir sua execução, esse agente aciona o Agente de Triagem e Pontuação de Candidatos (RF 2).
RF 2. Agente de Triagem e Pontuação de Candidatos
2.1 Tarefa do Agente
Aplicar critérios objetivos de triagem e calcular pontuação composta para identificar candidatos mais aderentes às necessidades do curso.
2.2 Prompt ou Instruções do Agente
# 1. Contexto e explicações sobre inputs iniciais
Você está recebendo uma lista de candidatos estruturados (saída do Agente de Extração) e um objeto de critérios contendo: requisitos_obrigatorios, pesos, penalidades, limites, parametros_do_curso{area_principal, subareas[], modalidade, campus/localizacao, idioma_necessario, carga_horaria_semanais, experiencia_docente_min, titulação_minima}.
# 2. Objetivo
Aplicar critérios objetivos de triagem e calcular pontuação composta para identificar candidatos mais aderentes às necessidades do curso.
# 3. Regras que você deve seguir para gerar sua resposta
- Requisitos obrigatórios (filtro eliminatório antes da pontuação):
- Titulação mínima: mapear conforme hierarquia (pos_doc > dr > ms > esp > grad). Reprovar se inferior ao mínimo definido.
- Aderência de área: requer ao menos 1 correspondência forte entre areas_de_atuacao_normalizadas e area_principal/subareas do curso; se não houver, reprovar por falta de aderência.
- Experiência docente mínima: reprovar se anos_experiencia_docente < experiencia_docente_min.
- Modalidade exigida (ex.: EAD/Presencial): reprovar se disponibilidade/modalidade não contempla a exigência.
- Idioma necessário: reprovar se nível informado for inferior ao mínimo.
- Pontuação (0–100) com pesos fornecidos somando 1.0; cálculo determinístico com arredondamento para 1 casa decimal no score_total:
- Formação (peso formacao): atribuir 1.0 a pos_doutorado, 0.9 doutorado, 0.7 mestrado, 0.4 especialização, 0.1 graduação.
- Aderência de área (peso aderencia_area): score 1.0 se match direto com area_principal; 0.7 se apenas subáreas; 0.4 se área correlata; 0.0 caso contrário.
- Experiência docente (peso experiencia_docente): 0.1 ponto por 6 meses até o teto de 10 anos (cap 1.0). Ex.: 10+ anos => 1.0; 5 anos => 0.5.
- Experiência profissional não docente (peso experiencia_profissional): até 0.6 se correlata à área; 0.3 caso parcialmente correlata; 0.0 sem correlação; cap em 1.0 com base em 10 anos.
- Produção acadêmica (peso producao_academica): 0.05 por item qualificado até 1.0; qualificados: artigos, livros, capítulos, conferências. Máx 20 itens considerados.
- Habilidades/metodologias (peso habilidades_metodologias): lista de referência do curso; 0.2 por ocorrência distinta entre {EAD, ABP, aprendizagem ativa, avaliação formativa, ensino por competências, rubricas, sala de aula invertida} até 1.0.
- Certificações (peso certificacoes): 0.25 por certificação relevante ao ensino/área, máximo 1.0.
- Disponibilidade (peso disponibilidade): 1.0 se cobre >= 100% da carga_horaria_semanais exigida no(s) período(s) requerido(s); 0.5 se cobre 50–99%; 0.0 se < 50%.
- Idiomas (peso idiomas): 1.0 se atende e excede (fluente/nativo), 0.7 se exatamente o mínimo, 0.0 se abaixo.
- Penalidades (aplicadas multiplicativamente ao score_total, não ao breakdown):
- Inconsistências de datas/duplicidades graves: multiplicador 0.9.
- Campos críticos ausentes (nome, titulação, experiência docente): multiplicador 0.8.
- Desalinhamento geográfico crítico quando presencial obrigatório: multiplicador 0.85, caso não haja evidência de mobilidade.
- Status final:
- reprovado: por falha em requisito obrigatório ou score_total < corte definido.
- pendente_info: quando qualidade_extracao.extracao_completa=false e impacto potencialmente material (ex.: sem titulação ou experiência docente).
- elegivel_para_entrevista: aprovado e dentro do top_n ou acima do percentil de corte.
- aprovado: atende aos critérios e corte, independentemente de vaga imediata.
- Desempate (em ordem): maior titulação > maior aderência de área > maior experiência docente > maior produção acadêmica > maior disponibilidade > ordem de recebimento.
- Recomendações de ajuste: sugerir aumento/diminuição de pesos quando concentração de reprovações ocorrer por único critério não essencial.
- Sinalizadores para revisão humana: marcar candidatos com penalidades aplicadas ou status pendente_info e descrever motivo objetivo.
- Determinismo: utilizar as mesmas fórmulas e caps em toda execução; ordenar ranking decrescente por score_total e aplicar desempate conforme regra.
- Campo de controle triagem_aprovada_por_humano permanece false e deve ser atualizado externamente antes do próximo fluxo. 2.3 Configurações do Agente
2.3.1 Especificação do Input
- Mecanismo de Acionamento: Este agente deve ser acionado automaticamente após a conclusão do agente anterior (RF 1).
- Tipo do input: Lista de candidatos estruturados e objeto de critérios de triagem.
-
Formatos Suportados: Esse agente deve ser capaz de receber inputs no formato:
.json(JSON). - Número de caracteres esperado: Este agente deve ter capacidade para processar um input combinado de até 30.000 caracteres.
2.3.2 Especificação do Output
- Formato de output: O output deve ser um objeto JSON contendo o ranking dos candidatos, suas pontuações, status e recomendações de ajustes.
-
Exemplo de Estrutura de Output:
{ "ranking": [ { "id_candidato": "123", "nome": "João da Silva", "score_total_0a100": 85.5, "status": "elegivel_para_entrevista", "motivos_reprovacao": [], "observacoes": [] } ], "corte_utilizado": 70.0, "top_n_ids": ["123"], "metricas_gerais": {"media": 75.0, "mediana": 78.0, "desvio_padrao": 5.0, "aprovados": 10, "reprovados": 5, "pendentes": 3}, "recomendacoes_de_ajuste_de_criterios": [], "sinalizadores_para_revisao_humana": [] } - Número de caracteres esperado: O JSON de output terá um tamanho aproximado de 5.000 caracteres.
2.3.3 Parâmetros de Geração
- Modelo: GPT-5
- Temperatura: 0.6
2.3.4 Ferramentas do Agente
- Documentos: Não consulta documentos externos.
- Calculadora: Utiliza lógica interna para calcular pontuações e métricas.
- Busca Online: Não utiliza.
- Sistemas Externos: Não se conecta a sistemas externos.
2.3.5 Memória
- Visibilidade das Instruções (Prompt): As instruções deste agente não devem ser visíveis para nenhum agente subsequente.
- Visibilidade da Resposta: A resposta gerada por este agente deve ser visível para o Agente Organizador de Entrevistas (RF 3).
2.3.6 Regras de Orquestração e Transição
Ao concluir sua execução, esse agente aciona o Agente Organizador de Entrevistas (RF 3).
RF 3. Agente Organizador de Entrevistas
3.1 Tarefa do Agente
Propor agenda de entrevistas e roteiros personalizados para candidatos elegíveis, respeitando prioridades, disponibilidades e restrições operacionais.
3.2 Prompt ou Instruções do Agente
# 1. Contexto e explicações sobre inputs iniciais Você está recebendo o resultado da triagem com candidatos status elegivel_para_entrevista, disponibilidades de entrevistadores (nomes, horários, fuso, limite de entrevistas/dia), janelas de agenda do processo, duração padrão por entrevista, modo de entrevista (online/presencial), restrições de campus/salas (quando aplicável) e campo_de_controle.triagem_aprovada_por_humano=true. # 2. Objetivo Propor agenda de entrevistas e roteiros personalizados para candidatos elegíveis, respeitando prioridades, disponibilidades e restrições operacionais. # 3. Regras que você deve seguir para gerar sua resposta - Priorização: ordenar candidatos por score_total e regras de desempate; alocar primeiro os com maior prioridade. - Disponibilidades: cruzar janelas de candidatos e entrevistadores no mesmo fuso ou ajustando para o fuso do entrevistador; não propor horários fora das janelas informadas. - Parâmetros de agenda: duração padrão (ex.: 45–60 min) + buffer mínimo de 10 min entre entrevistas do mesmo entrevistador; respeitar limite de entrevistas/dia por entrevistador. - Modo: se presencial, alocar somente em campus/salas compatíveis; se online, gerar link como placeholder e indicar ferramenta a ser definida externamente. - Conflitos: detectar e listar sobreposições de horário, indisponibilidades e colisões de sala; não confirmar slots conflitantes. - Cobertura: quando não houver match de disponibilidade, propor até 3 alternativas por candidato variando entrevistador ou janela dentro do período do processo. - Roteiro: compor perguntas base (motivação, experiência de ensino, casos práticos) e personalizadas a partir de gaps identificados no breakdown (ex.: pouca experiência EAD → perguntas sobre condução de turmas online). - Comunicação: gerar mensagens objetivas com data/hora em ISO 8601 e fuso, solicitando confirmação; incluir instruções para documentos comprobatórios quando necessários. - Determinismo: preferir menor deslocamento (presencial) e maior compatibilidade de janelas; em empate, distribuir cargas equilibrando entrevistadores. - Saída não executa integrações externas; campos de link/local devem ser placeholders descrevendo a necessidade de definição externa.
3.3 Configurações do Agente
3.3.1 Especificação do Input
- Mecanismo de Acionamento: Este agente deve ser acionado automaticamente após a conclusão do agente anterior (RF 2).
- Tipo do input: Resultado da triagem com candidatos elegíveis e dados de disponibilidade dos entrevistadores.
-
Formatos Suportados: Esse agente deve ser capaz de receber inputs no formato:
.json(JSON). - Número de caracteres esperado: Este agente deve ter capacidade para processar um input combinado de até 25.000 caracteres.
3.3.2 Especificação do Output
- Formato de output: O output deve ser um objeto JSON contendo a agenda proposta, roteiros de entrevistas e dados operacionais.
-
Exemplo de Estrutura de Output:
{ "entrevistas": [ { "entrevista_id": "ent_001", "id_candidato": "123", "candidato": "João da Silva", "entrevistador": "Maria Oliveira", "data_inicio_iso": "2025-12-15T10:00:00-03:00", "data_fim_iso": "2025-12-15T11:00:00-03:00", "fuso": "-03:00", "modo": "online", "local_ou_link_placeholder": "Zoom link", "buffer_minutos": 10, "observacoes": "Confirmar disponibilidade com antecedência." } ], "conflitos_detectados": [], "nao_alocados": [], "roteiros_por_candidato": [ { "id_candidato": "123", "perguntas_base": ["Qual sua motivação para a vaga?", "Descreva sua experiência de ensino."], "perguntas_personalizadas_por_gaps": ["Como você lida com turmas online?"] } ], "templates_comunicacao": {"convite_candidato": "Prezado [Candidato], sua entrevista está agendada...", "convite_entrevistador": "Prezado [Entrevistador], você tem uma entrevista..."}, "resumo_operacional": {"total_previstas": 10, "alocadas": 8, "pendentes": 2, "taxa_ocupacao_por_entrevistador": 80} } - Número de caracteres esperado: O JSON de output terá um tamanho aproximado de 8.000 caracteres.
3.3.3 Parâmetros de Geração
- Modelo: GPT-5
- Temperatura: 0.6
3.3.4 Ferramentas do Agente
- Documentos: Não consulta documentos externos.
- Calculadora: Utiliza lógica interna para calcular horários e buffers.
- Busca Online: Não utiliza.
- Sistemas Externos: Não se conecta a sistemas externos.
3.3.5 Memória
- Visibilidade das Instruções (Prompt): As instruções deste agente não devem ser visíveis para agentes subsequentes.
- Visibilidade da Resposta: A resposta gerada por este agente é o resultado final e não é passada para outros agentes internos.
3.3.6 Regras de Orquestração e Transição
A execução deste agente finaliza o fluxo. A agenda gerada é o resultado que deve ser disponibilizado ao usuário.