Skip to content

Motor de Busca e Coleta de Oportunidades

🔍 Motor de Busca e Coleta de Oportunidades

Section titled “🔍 Motor de Busca e Coleta de Oportunidades”

A Ferramenta de Busca e Coleta de Oportunidades tem como objetivo localizar, extrair, interpretar, normalizar e armazenar automaticamente oportunidades acadêmicas e profissionais publicadas por universidades, agências de fomento, institutos de pesquisa e organizações em âmbito nacional e internacional.

O sistema opera de forma contínua e autônoma, identificando novas publicações, aditivos e encerramento de prazos sem necessidade de intervenção humana manual.


O motor reconhece e categoriza automaticamente as seguintes modalidades:

  • Bolsas de Estudo: Apoio financeiro estudantil, bolsas de mérito e bolsas institucionais;
  • Iniciação Científica (IC): Bolsas PIBIC, PIBITI, voluntárias e de laboratórios;
  • Monitorias de Disciplina: Vagas para auxílio didático a turmas de graduação;
  • Programas de Extensão: Projetos de impacto comunitário (PIBEX);
  • Estágios e Trainees: Oportunidades curriculares e não-curriculares no mercado;
  • Intercâmbios & Mobilidade: Programas de intercâmbio bilateral e bolsas internacionais;
  • Pós-Graduação: Seleção de Mestrado acadêmico/profissional, Doutorado e Pós-Doutorado;
  • Summer/Winter Schools: Escolas de curta duração em centros de excelência;
  • Chamadas de Artigos (Call for Papers): Submissões para revistas científicas e congressos;
  • Eventos & Conferências: Simpósios, congressos e encontros científicos;
  • Competições & Hackathons: Maratonas de inovação e olimpíadas do conhecimento;
  • Auxílios Estudantis: Assistência estudantil, auxílio alimentação, moradia e transporte;
  • Financiamentos & Editais Gerais: Fomento a projetos de pesquisa e inovação tecnológica.

Devido à grande diversidade de formatos e maturidade tecnológica das universidades (algumas disponibilizam APIs modernas, enquanto outras publicam apenas PDFs escaneados como imagem), o motor adota uma estratégia híbrida em cascata:

Universidades & Agências
│
▼
Descoberta da Fonte (APIs / RSS / Sitemaps / Crawling)
│
▼
Coleta de Documentos (HTML / PDFs / Imagens)
│
▼
Extração de Texto & OCR (Tesseract / Visão Computacional)
│
▼
Interpretação e Estruturação via IA (Gemini / LLMs)
│
▼
Normalização de Dados (Schema Único de Oportunidade)
│
▼
Banco de Dados & Motor de Compatibilidade (Match com Perfil)
│
▼
Notificação Contextual ao Estudante

Para otimizar desempenho e minimizar consumo de banda, o motor tenta os métodos na seguinte ordem estrita:

  1. APIs REST/GraphQL: Método prioritário sempre que a instituição disponibilizar endpoint público ou autenticado. Oferece dados estruturados, alta velocidade e estabilidade.
  2. Feeds RSS/Atom: Varredura ágil de canais de notícias e editais de portais universitários (/rss.xml, /feed), dispensando web scraping pesado.
  3. Sitemap XML: Consulta periódica a sitemap.xml para detectar novas URLs e alterações recentes de páginas com baixíssimo custo computacional.
  4. Respeito a robots.txt: Consulta obrigatória para identificar diretórios públicos e regras de acesso de crawlers éticos.
  5. Scraping HTML Resiliente: Extração seletiva baseada em heurísticas de busca de termos-chave em português (editais, bolsas, monitoria), inglês (scholarships, grants, calls) e espanhol (convocatorias, becas).
  6. Download e Extração de PDFs: Download assíncrono dos editais em arquivo PDF com extração do fluxo de texto nativo.
  7. OCR (Reconhecimento Óptico de Caracteres): Acionado exclusivamente quando o arquivo PDF for composto por imagens escaneadas sem camada de texto.

5. Pipeline de Extração com Inteligência Artificial

Section titled “5. Pipeline de Extração com Inteligência Artificial”

Uma vez extraído o texto bruto do edital, o conteúdo é submetido a um modelo de IA que identifica e extrai os campos estruturados:

{
"institution": "Universidade Federal de Santa Maria",
"campus": "Campus Sede",
"title": "Edital de Seleção para Iniciação Científica - Laboratório de Sistemas Inteligentes",
"category": "RESEARCH_SCHOLARSHIP",
"academicLevel": "UNDERGRADUATE",
"courses": ["Ciência da Computação", "Sistemas de Informação", "Engenharia de Computação"],
"requirements": [
"Matrícula ativa a partir do 3º semestre",
"Conhecimento em Python e Aprendizado de Máquina",
"Disponibilidade de 20h semanais"
],
"stipendAmount": 700.00,
"currency": "BRL",
"openDate": "2026-03-01T00:00:00Z",
"deadline": "2026-03-20T23:59:59Z",
"officialUrl": "https://ufsm.br/editais/001-2026",
"pdfUrl": "https://ufsm.br/editais/001-2026.pdf"
}

6. Normalização, Tradução e Atualização Incremental

Section titled “6. Normalização, Tradução e Atualização Incremental”
  • Schema Único de Dados: Independentemente de o edital vir do Brasil, Alemanha ou Estados Unidos, todos os dados são normalizados para os contratos do @lib/shared.
  • Tradução Multilíngue: Oportunidades internacionais são indexadas com suporte multilíngue para busca, preservando intacto o texto original no idioma de origem.
  • Atualização Incremental: O sistema guarda o hash de páginas e arquivos já processados. Apenas itens com hash alterado ou novas URLs são reanalisados pela IA, economizando recursos de computação.
  • Controle de Duplicidade: Verificação multidimensional via URL canônica, código oficial do edital e similaridade de embeddings de título e resumo.
  • Agendamento Dinâmico: Fontes com grande fluxo de publicação (ex: reitorias e agências nacionais) são verificadas a cada 30 minutos; páginas departamentais menores são agendadas em janelas de 2 a 12 horas.

7. Diretório Oficial de Fontes Acadêmicas (/diretorio-fontes)

Section titled “7. Diretório Oficial de Fontes Acadêmicas (/diretorio-fontes)”

O Diretório de Fontes é o catálogo centralizado e homologado de portais de editais, universidades e agências de fomento:

  • Mapeamento Curado: Cadastro inicial de fontes como CNPq, CAPES, FAPESP, FAPERGS, Santander Open Academy, DAAD, Fulbright e portais universitários oficiais.
  • Indicação Comunitária (SourceSubmission): Estudantes e pesquisadores podem sugerir novos portais para a rede. A equipe avalia e homologa os robôs.
  • Varredura Sob Demanda com Bot: O discente pode solicitar que os robôs do Academic Companion acessem imediatamente uma fonte específica para minerar oportunidades recentes.

8. Governança Computacional: Lotes de 3 Editais e Débito Justo de Tokens

Section titled “8. Governança Computacional: Lotes de 3 Editais e Débito Justo de Tokens”

Devido ao alto custo de infraestrutura de nuvem, scraping com headless browsers, OCR e análise semântica por LLMs, o sistema aplica um modelo de computação sustentável e transparente:

  • Exibição Estrita em Lotes de 3 Editais: No Scholarship Finder e na varredura por bots, as oportunidades são apresentadas em lotes de 3 por vez (pageSize = 3).
  • Débito Amigável de 1 Token por Edital (3 Tokens por Lote): Cada lote de 3 editais minerados ou carregados consome exatamente 3 tokens (AI_USAGE) da carteira do estudante (user_wallets).
  • Integração com Bônus e Convites: Estudantes sem saldo recebem orientações imediatas para recarga ou para convidar colegas (+20 tokens tanto para o indicador quanto para o indicado).

9. Especificação Técnica do AcademicCrawlerBot & Telemetria

Section titled “9. Especificação Técnica do AcademicCrawlerBot & Telemetria”

O robô de coleta (apps/backend/src/modules/crawler/) é projetado com princípios de alta disponibilidade e rastreabilidade:

O robô se identifica transparentemente em todas as requisições HTTP:

User-Agent: AcademicCompanionBot/1.0 (+https://acad.ufsm.br/bot; bot@acad.ufsm.br)
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: pt-BR,pt;q=0.9,en-US;q=0.8,en;q=0.7
Cache-Control: no-cache

9.2. Extração Semântica e Normalização (SemanticCrawlerParser)

Section titled “9.2. Extração Semântica e Normalização (SemanticCrawlerParser)”
  • Âncoras & Links: Extração seletiva de tags <a> vinculadas a editais, chamadas e PDFs.
  • Detecção Léxica: Reconhecimento contextual de bolsas (PIBIC, PIBITI, PIBEX, Monitoria, Mobilidade).
  • Valores Monetários: Captura de padrões como R$ 700,00/mês, aplicando valores canônicos caso não explicitados no resumo.
  • Limite Estrito: Corte determinístico de até 3 editais por lote de processamento.

Cada disparo do robô gera um registro imutável em crawl_logs:

  • durationMs: Tempo total de ida e volta da requisição em milissegundos.
  • httpStatus: Código de resposta HTTP (200, 301, 403, 500).
  • itemsFound: Contagem de links de editais detectados.
  • executedBy: Identificador do usuário solicitante ou SYSTEM.
  • Endpoint de Telemetria: GET /api/sources/:id/logs para auditoria do histórico de execuções.

9.4. Governança Segura no Painel Administrativo (AdminPasswordModal)

Section titled “9.4. Governança Segura no Painel Administrativo (AdminPasswordModal)”

Para proteger o ecossistema de fontes e evitar operações acidentais ou não autorizadas, a interface administrativa (apps/admin/src/pages/sources/Sources.tsx) exige obrigatoriamente a confirmação por senha do administrador (POST /api/admin/verify-password) antes de efetivar qualquer ação crítica:

  • Cadastro e Edição: Validação da senha antes de persistir alterações cadastrais ou adicionar novas fontes ao catálogo.
  • Alternância de Status: Pausa ou reativação do monitoramento automático sob confirmação com senha.
  • Disparo do Robô Minerador (“Minerar Agora”): Exige autenticação de senha antes de acionar o worker de coleta.
  • Moderação de Indicações Comunitárias:
    • Aprovação: Confirmação por senha antes de promover a fonte para o catálogo oficial e creditar +20 tokens de IA na carteira do discente.
    • Recusa: Confirmação por senha com envio de parecer técnico orientador ao discente.
  • Exclusão Definitiva: Confirmação com senha em modal de estilo destrutivo (variant="destructive").