1. Propósito e Escopo
Este documento define todos os prompts, configurações de memória e transição entre estados para o Fluxo de Agentes "Identificação de Oportunidades de Estágio", uma solução de automação projetada para identificar e sugerir estágios relevantes a alunos com base em seus perfis. 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 é conectar alunos a oportunidades de estágio que se alinhem com seus interesses e habilidades, utilizando dados atualizados de fontes confiáveis e personalizando as sugestões conforme o perfil de cada aluno.
2. Contexto e Problema
Cenário Atual
Alunos frequentemente enfrentam desafios na busca por estágios que correspondam a seus interesses e habilidades. Além disso, o acesso a informações atualizadas sobre oportunidades de estágio é limitado, dificultando a busca por posições adequadas.
Problemas Identificados
- Alinhamento inadequado: Estágios disponíveis muitas vezes não correspondem aos interesses ou habilidades dos alunos.
- Acesso restrito: Falta de acesso a uma base de dados consolidada e atualizada de oportunidades de estágio.
- Processo manual: A busca por estágios é muitas vezes um processo manual e demorado para os alunos.
3. Impactos Esperados
A implementação deste fluxo de automação visa alcançar os seguintes resultados:
- Aumentar a correspondência entre interesses/habilidades dos alunos e as oportunidades de estágio.
- Facilitar o acesso a informações atualizadas sobre estágios.
- Reduzir o tempo necessário para encontrar estágios relevantes.
4. Visão Geral da Solução
O agente de IA para identificação de oportunidades de estágio analisa o perfil dos alunos e busca informações atualizadas sobre estágios em fontes confiáveis, sugerindo as oportunidades que mais se adequam ao perfil e interesses do aluno. 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 útil e autônomo na identificação de estágios relevantes.
A solução consiste em um fluxo de automação composto por 5 agentes de IA. O processo inicia com a normalização do perfil do aluno e termina com a sugestão de estágios alinhados ao perfil do aluno.
A execução dos agentes é sequencial e linear, seguindo a ordem definida na tabela abaixo.
| Agentes | Função Principal |
|---|---|
Agente de Normalização e Validação de Perfil do Aluno (RF 1)
| Padronizar e validar o perfil do aluno, garantindo que os campos mínimos existam e estejam utilizáveis para busca de estágios. |
Agente de Preparação de Parâmetros de Busca (RF 2)
| Transformar o perfil normalizado em parâmetros de busca estruturados por fonte para recuperar oportunidades de estágio. |
Agente de Busca Online (RF 3)
| Realizar busca online para obter oportunidades de estágio a partir dos parâmetros preparados. |
Agente de Consolidação, Limpeza e Deduplicação de Vagas (RF 4)
| Consolidar, higienizar e deduplicar resultados de múltiplas fontes, removendo vagas irrelevantes ou desatualizadas. |
Agente de Ranqueamento e Sugestão de Estágios (RF 5)
| Ranquear e sugerir estágios alinhados ao perfil do aluno, com justificativas claras e categorias de aderência. |
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 o resultado final que o aluno receberá. Explore os links abaixo para entender melhor a solução em ação.
6. Requisitos Funcionais
RF 1. Agente de Normalização e Validação de Perfil do Aluno
1.1 Tarefa do Agente
Padronizar e validar o perfil do aluno, garantindo que os campos mínimos existam e estejam utilizáveis para busca de estágios.
1.2 Prompt ou Instruções do Agente
# 1. Contexto e explicações sobre inputs iniciais Você está recebendo um JSON de perfil do aluno contendo, quando disponível: nome, idade, curso, período/semestre, cidade/UF, país, idioma(s), disponibilidade (horas/semana; turnos), modalidade preferida (presencial/híbrido/remoto), interesses, habilidades técnicas, habilidades comportamentais, objetivos profissionais, restrições (bolsa mínima, mobilidade, visto). # 2. Objetivo Padronizar e validar o perfil do aluno, garantindo que os campos mínimos existam e estejam utilizáveis para busca de estágios. # 3. Regras que você deve seguir para gerar sua resposta - Padronize capitalização e remova duplicatas em interesses e habilidades; mantenha arrays distintos para técnicas e comportamentais. - Converta sinônimos frequentes para termos-padrão do mercado (ex: 'dev backend' -> 'desenvolvimento backend'; 'PowerBI' -> 'Power BI'). - Se modalidade não informada, infira por preferências e localização: se aluno fora de grandes centros e sem mobilidade, defina modalidade_preferida='remoto'. - Valide campos mínimos: curso, localização (ao menos país), ao menos 1 interesse ou 1 habilidade; se faltar, defina perfil_validado=false e liste motivos_validacao. - Derive criterios_obrigatorios: tipo_vaga='estágio'; senioridade='estágio'; áreas derivadas dos interesses (ex: 'dados', 'marketing', 'jurídico'); idiomas mínimos (inclua 'português' por padrão). - Derive criterios_desejaveis: empresas-alvo (se declaradas), tecnologias específicas, setores de interesse, modalidade preferida, faixa de bolsa desejada (se houver). - Se semestre/período não informado, mantenha em lacunas_de_dados; não bloqueie a validação quando demais critérios mínimos estiverem ok. - Saída deve conter perfil_validado e motivos_validacao coerentes com as verificações executadas.
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 um JSON de perfil do aluno 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 do JSON na interface da Prototipe AI, para acelerar o processo de validação.
- Tipo do input: O input inicial para o fluxo é um JSON contendo informações do perfil do aluno.
-
Formatos Suportados: Esse agente deve ser capaz de receber dados nos formatos:
.json. - Número de caracteres esperado: Este agente deve ter capacidade para processar um input de texto com até 5.000 caracteres.
1.3.2 Especificação do Output
- Formato de output: O output deve ser um JSON com: perfil_normalizado (todos os campos padronizados), interesses_normalizados[], habilidades_tecnicas_normalizadas[], habilidades_comportamentais_normalizadas[], localizacao_normalizada (cidade/UF/país), modalidade_preferida, criterios_obrigatorios[], criterios_desejaveis[], lacunas_de_dados[], perfil_validado (true/false), motivos_validacao[] (quando false).
-
Exemplo de Estrutura de Output:
{ "perfil_normalizado": { ... }, "interesses_normalizados": [ ... ], "habilidades_tecnicas_normalizadas": [ ... ], "habilidades_comportamentais_normalizadas": [ ... ], "localizacao_normalizada": "cidade/UF/país", "modalidade_preferida": "remoto", "criterios_obrigatorios": [ ... ], "criterios_desejaveis": [ ... ], "lacunas_de_dados": [ ... ], "perfil_validado": true, "motivos_validacao": [ ... ] } - Número de caracteres esperado: O JSON final deve ser conciso e informativo, com um tamanho estimado em torno de 2.000 caracteres.
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 Preparação de Parâmetros de Busca (RF 2).
1.3.6 Regras de Orquestração e Transição
Ao concluir sua execução, esse agente aciona o Agente de Preparação de Parâmetros de Busca (RF 2).
RF 2. Agente de Preparação de Parâmetros de Busca
2.1 Tarefa do Agente
Transformar o perfil normalizado em parâmetros de busca estruturados por fonte para recuperar oportunidades de estágio.
2.2 Prompt ou Instruções do Agente
# 1. Contexto e explicações sobre inputs iniciais Você está recebendo um JSON do agente anterior com perfil_normalizado, interesses_normalizados, habilidades_*_normalizadas, localizacao_normalizada, modalidade_preferida, criterios_obrigatorios, criterios_desejaveis, perfil_validado. # 2. Objetivo Transformar o perfil normalizado em parâmetros de busca estruturados por fonte para recuperar oportunidades de estágio. # 3. Regras que você deve seguir para gerar sua resposta - Crie termos_inclusao combinando áreas de interesse e tecnologias-chave (ex: ['estágio', 'internship'] + ['dados', 'SQL']). - Adicione termos_exclusao para descartar vagas não pertinentes (ex: 'sênior', 'pleno', 'CLT full-time', 'consultor', 'freelance', 'temporário'). - Ajuste filtros de localização: se modalidade_preferida='remoto', não restrinja por cidade; se presencial/híbrido, priorize cidade/UF do aluno num raio lógico (mesmo estado ou cidades vizinhas). - Defina data_maxima_publicacao_em_dias=30 para garantir atualidade. - Inclua 'estágio'/'internship' como palavra obrigatória (palavras_must) em todas as fontes. - Adapte idioma do termo 'internship' conforme idioma do país/localização; mantenha ambos quando incerto. - Gere consultas específicas por fonte (ex: LinkedIn, Gupy, Indeed, Vagas.com, sites corporativos) com variações de termos para maximizar recall sem perder precisão. - Marque perfil_analisado=true apenas se perfil_validado=true; caso contrário, não gere consultas_por_fonte e descreva lacunas impedindo a busca.
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 bem-sucedida do agente anterior (RF 1).
- Tipo do input: Este agente deve ser apto a receber como input um JSON contendo o perfil normalizado do aluno.
-
Formatos Suportados: Esse agente deve ser capaz de receber inputs no formato:
.json. - Número de caracteres esperado: Este agente deve ter capacidade para processar um input de texto com até 3.000 caracteres.
2.3.2 Especificação do Output
- Formato de output: O output deve ser um JSON com parametros_busca: consultas_por_fonte[] (fonte, termos_inclusao[], termos_exclusao[], filtros {localizacao, modalidade, idioma, período, palavras_must[], palavras_should[], salary_range, data_maxima_publicacao_em_dias}), mapeamento_de_sinonimos{}, lista_setores[], lista_tecnologias[], e sinalizador perfil_analisado=true.
-
Exemplo de Estrutura de Output:
{ "parametros_busca": { "consultas_por_fonte": [ { "fonte": "LinkedIn", "termos_inclusao": [ "estágio", "dados", "SQL" ], "termos_exclusao": [ "sênior", "pleno" ], "filtros": { "localizacao": "remoto", "modalidade": "remoto", "idioma": "português", "data_maxima_publicacao_em_dias": 30 } } ] }, "mapeamento_de_sinonimos": { ... }, "lista_setores": [ ... ], "lista_tecnologias": [ ... ], "perfil_analisado": true } - Número de caracteres esperado: O JSON gerado deve ser claro e direto, com um tamanho estimado em 2.500 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.
- Calculadora: Não utiliza.
- Busca Online: Não utiliza.
- Sistemas Externos: Não utiliza.
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 de Busca Online (RF 3).
2.3.6 Regras de Orquestração e Transição
Ao concluir sua execução, esse agente aciona o Agente de Busca Online (RF 3).
RF 3. Agente de Busca Online
3.1 Tarefa do Agente
Realizar busca online para obter oportunidades de estágio a partir dos parâmetros preparados.
3.2 Prompt ou Instruções do Agente
# 1. Contexto e explicações sobre inputs iniciais Você está recebendo parametros_busca com consultas_por_fonte[] e filtros prontos. # 2. Objetivo Realizar busca online para obter oportunidades de estágio a partir dos parâmetros preparados. # 3. Regras que você deve seguir para gerar sua resposta - Este agente executa unicamente a busca online com os parâmetros recebidos e retorna os dados brutos conforme os campos definidos.
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: Este agente deve ser apto a receber como input um JSON contendo os parâmetros de busca preparados.
-
Formatos Suportados: Esse agente deve ser capaz de receber inputs no formato:
.json. - Número de caracteres esperado: Este agente deve ter capacidade para processar um input de texto com até 2.500 caracteres.
3.3.2 Especificação do Output
- Formato de output: O output deve ser resultados brutos por fonte: resultados[] com campos {fonte, titulo, empresa, localizacao, modalidade, descricao, url, data_publicacao, requisitos[], idiomas[], remuneracao (se houver)} e o sinalizador oportunidades_encontradas=true/false.
-
Exemplo de Estrutura de Output:
{ "resultados": [ { "fonte": "LinkedIn", "titulo": "Estágio em Dados", "empresa": "Empresa X", "localizacao": "Remoto", "modalidade": "Remoto", "descricao": "Trabalhe com dados e análises.", "url": "https://example.com/vaga", "data_publicacao": "2025-12-01", "requisitos": [ "SQL", "Python" ], "idiomas": [ "Português" ], "remuneracao": "R$1500" } ], "oportunidades_encontradas": true } - Número de caracteres esperado: O JSON gerado terá um tamanho aproximado de 3.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.
- Calculadora: Não utiliza.
- Busca Online: Utiliza busca online para obter os dados.
- Sistemas Externos: Não utiliza.
3.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 Consolidação, Limpeza e Deduplicação de Vagas (RF 4).
3.3.6 Regras de Orquestração e Transição
Ao concluir sua execução, esse agente aciona o Agente de Consolidação, Limpeza e Deduplicação de Vagas (RF 4).
RF 4. Agente de Consolidação, Limpeza e Deduplicação de Vagas
4.1 Tarefa do Agente
Consolidar, higienizar e deduplicar resultados de múltiplas fontes, removendo vagas irrelevantes ou desatualizadas e avaliando elegibilidade básica.
4.2 Prompt ou Instruções do Agente
# 1. Contexto e explicações sobre inputs iniciais
Você está recebendo resultados da busca online com lista de vagas por fonte.
# 2. Objetivo
Consolidar, higienizar e deduplicar resultados de múltiplas fontes, removendo vagas irrelevantes ou desatualizadas e avaliando elegibilidade básica.
# 3. Regras que você deve seguir para gerar sua resposta
- Remova duplicatas: considere duas vagas iguais quando url idêntica ou combinação normalizada de (empresa + titulo) e mesma localização; mantenha fonte_primaria mais confiável e liste fontes_duplicadas.
- Descarte vagas com data_publicacao anterior a 30 dias, quando esse dado existir e exceder o limite.
- Calcule match_skills_percentual: número de habilidades do aluno presentes em requisitos_chave dividido pelo total de habilidades do aluno consideradas (cap at 1); ignore habilidades genéricas ('proatividade', 'trabalho em equipe') no cômputo.
- Calcule aderencia_area em [0,1] com base em presença de palavras-chave das áreas de interesse no título/descrição.
- Defina elegivel_basico=false quando: não mencionar 'estágio' no título/descrição; idioma obrigatório incompatível com idiomas do aluno; modalidade presencial/híbrida em cidade distante sem mobilidade declarada; exigir experiência prévia superior a 1 ano.
- Preencha motivos_nao_elegivel com códigos claros (ex: 'nao_estagio', 'idioma_incompativel', 'local_inacessivel', 'experiencia_excessiva').
- Gere descricao_resumida até ~300 caracteres ressaltando atividades e requisitos principais. 4.3 Configurações do Agente
4.3.1 Especificação do Input
- Mecanismo de Acionamento: Este agente deve ser acionado automaticamente após a conclusão do agente anterior (RF 3).
- Tipo do input: Este agente deve ser apto a receber como input um JSON contendo os resultados da busca online.
-
Formatos Suportados: Esse agente deve ser capaz de receber inputs no formato:
.json. - Número de caracteres esperado: Este agente deve ter capacidade para processar um input de texto com até 5.000 caracteres.
4.3.2 Especificação do Output
- Formato de output: O output deve ser um JSON com vagas_consolidadas[] contendo {titulo, empresa, localizacao, modalidade, descricao_resumida, url, data_publicacao, fonte_primaria, fontes_duplicadas[], requisitos_chave[], match_skills_percentual, aderencia_area (0-1), idioma_requerido, elegivel_basico (true/false), motivos_nao_elegivel[]}, e oportunidades_consolidadas=true.
-
Exemplo de Estrutura de Output:
{ "vagas_consolidadas": [ { "titulo": "Estágio em Dados", "empresa": "Empresa X", "localizacao": "Remoto", "modalidade": "Remoto", "descricao_resumida": "Trabalhe com dados e análises.", "url": "https://example.com/vaga", "data_publicacao": "2025-12-01", "fonte_primaria": "LinkedIn", "fontes_duplicadas": [ ... ], "requisitos_chave": [ "SQL", "Python" ], "match_skills_percentual": 0.8, "aderencia_area": 0.9, "idioma_requerido": "Português", "elegivel_basico": true, "motivos_nao_elegivel": [ ... ] } ], "oportunidades_consolidadas": true } - Número de caracteres esperado: O JSON gerado terá um tamanho aproximado de 4.000 caracteres.
4.3.3 Parâmetros de Geração
- Modelo: GPT-5
- Temperatura: 0.6
4.3.4 Ferramentas do Agente
- Documentos: Não consulta.
- Calculadora: Utiliza lógica interna para cálculo de percentuais e aderência.
- Busca Online: Não utiliza.
- Sistemas Externos: Não utiliza.
4.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 Ranqueamento e Sugestão de Estágios (RF 5).
4.3.6 Regras de Orquestração e Transição
Ao concluir sua execução, esse agente aciona o Agente de Ranqueamento e Sugestão de Estágios (RF 5).
RF 5. Agente de Ranqueamento e Sugestão de Estágios
5.1 Tarefa do Agente
Ranquear e sugerir estágios alinhados ao perfil do aluno, com justificativas claras e categorias de aderência.
5.2 Prompt ou Instruções do Agente
# 1. Contexto e explicações sobre inputs iniciais Você está recebendo vagas_consolidadas do agente anterior e dados do perfil_normalizado. # 2. Objetivo Ranquear e sugerir estágios alinhados ao perfil do aluno, com justificativas claras e categorias de aderência. # 3. Regras que você deve seguir para gerar sua resposta - Calcule score_final combinando: 50% match_skills_percentual, 30% aderencia_area, 10% compatibilidade_modalidade/localizacao, 10% atualidade (mais recente maior). - Classifique categoria_aderencia: alta (score>=75), media (50-74), baixa (<50); exclua da lista final as vagas com elegivel_basico=false. - Liste principais_requisitos_cobertos como as top 5 habilidades do aluno presentes na vaga; liste requisitos_em_falta como até 3 itens relevantes com impacto na contratação. - Gere justificativa objetiva de 2-4 frases citando correspondências concretas (área, tecnologias, localização/modo, idioma). - Defina proxima_acao_recomendada com instrução prática (ex: 'candidatar-se e anexar portfólio de projeto X' ou 'preparar CV destacando habilidade Y'). - Ordene sugestoes_ordenadas por score_final descrescente e limite por padrão a top 10; inclua resumo_quantitativo coerente com a filtragem.
5.3 Configurações do Agente
5.3.1 Especificação do Input
- Mecanismo de Acionamento: Este agente deve ser acionado automaticamente após a conclusão do agente anterior (RF 4).
- Tipo do input: Este agente deve ser apto a receber como input um JSON contendo as vagas consolidadas e o perfil normalizado do aluno.
-
Formatos Suportados: Esse agente deve ser capaz de receber inputs no formato:
.json. - Número de caracteres esperado: Este agente deve ter capacidade para processar um input de texto com até 6.000 caracteres.
5.3.2 Especificação do Output
- Formato de output: O output deve ser um JSON com sugestoes_ordenadas[] contendo {titulo, empresa, url, localizacao, modalidade, score_final (0-100), categoria_aderencia ('alta'/'media'/'baixa'), justificativa, principais_requisitos_cobertos[], requisitos_em_falta[], proxima_acao_recomendada}, além de um resumo_quantitativo {total_avaliadas, total_elegiveis, contagem_por_categoria}.
-
Exemplo de Estrutura de Output:
{ "sugestoes_ordenadas": [ { "titulo": "Estágio em Dados", "empresa": "Empresa X", "url": "https://example.com/vaga", "localizacao": "Remoto", "modalidade": "Remoto", "score_final": 85, "categoria_aderencia": "alta", "justificativa": "A vaga é altamente compatível com suas habilidades em SQL e Python, além de ser remota, conforme sua preferência.", "principais_requisitos_cobertos": [ "SQL", "Python" ], "requisitos_em_falta": [ ... ], "proxima_acao_recomendada": "Candidatar-se e anexar portfólio de projeto X." } ], "resumo_quantitativo": { "total_avaliadas": 10, "total_elegiveis": 8, "contagem_por_categoria": { "alta": 5, "media": 3, "baixa": 2 } } } - Número de caracteres esperado: O JSON gerado terá um tamanho aproximado de 5.000 caracteres.
5.3.3 Parâmetros de Geração
- Modelo: GPT-5
- Temperatura: 0.6
5.3.4 Ferramentas do Agente
- Documentos: Não consulta.
- Calculadora: Utiliza lógica interna para calcular scores e categorias.
- Busca Online: Não utiliza.
- Sistemas Externos: Não utiliza.
5.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 é o resultado final e não é passada para outros agentes internos.
5.3.6 Regras de Orquestração e Transição
A execução deste agente finaliza o fluxo. As sugestões geradas são o resultado que deve ser disponibilizado ao aluno.