O radar que encontrou zero concursos no primeiro dia
210 concursos recolhidos, nenhum para nós. Em vez de mexer nos filtros, perguntámos porquê — e encontrámos um PDF encriptado, alertas a 677 € por ano e uma API pública que ninguém documenta.
Construímos um radar de concursos públicos. Ao fim do primeiro dia tinha recolhido 210 procedimentos e não havia um único que servisse. Zero.
A tentação, nesse momento, é mexer nos filtros até o ecrã dar sinal. Não mexemos. Um sistema que encontra sempre alguma coisa não é um radar — é um espelho. O que fizemos foi perguntar porque é que estava vazio, e a resposta ensinou-nos mais sobre contratação pública em Portugal do que qualquer manual.
O TED é o mercado errado
Começámos pelo TED, o Diário Oficial da União Europeia. API pública, sem chave, documentação decente. Duas semanas de anúncios portugueses deram 250 registos, dos quais dois tinham pontuação acima de zero.
O TED só publica acima dos limiares europeus. O concurso de 48 mil euros de uma câmara municipal para uma exposição não aparece lá — e é exatamente esse o tamanho do trabalho que fazemos. A fonte mais limpa era a menos útil.
O DRE publica tudo, e esconde o essencial num PDF encriptado
A seguir, o Diário da República série II. Num único dia: 238 itens, 35 anúncios de procedimento — mais concursos municipais do que o TED traz num mês.
Só que o RSS dá o número do anúncio, a entidade, o objeto e um link. Não dá prazo, não dá preço base, não dá CPV. Isso está no PDF. E o INCM publica esses PDF encriptados — handler de segurança normalizado, AES-128, sem password de utilizador.
Decifrar é possível em PHP puro, com a chave derivada pelo algoritmo do próprio formato. Fizemo-lo. Mas vale a pena dizer em voz alta o que isto significa: informação que a lei obriga a publicar chega ao cidadão dentro de um ficheiro cifrado.
As plataformas vendem aquilo que já é público
Em Portugal há quatro plataformas eletrónicas licenciadas pelo IMPIC. Todas oferecem alertas por área de negócio. Fomos ver os preços, que estão publicados por elas próprias:
- ComprasPT — notificações diárias de concursos: 180 € por ano. Packs de adesão: 567 €, 1.515 € ou 3.884 € por ano.
- anoGov — alertas diários só dentro dos packs: 677 €, 1.620 € ou 3.989 € por ano.
O registo base é gratuito, como a lei obriga. O aviso de que existe um concurso na tua área é serviço pago. (Preços publicados em setembro de 2026; o preçário da ComprasPT tem data de 11 de fevereiro de 2025.)
E depois encontrámos a API que ninguém documenta
O Portal BASE, do IMPIC, é o repositório oficial da contratação pública portuguesa. O site é uma aplicação em JavaScript que fala com o próprio servidor. Fomos ver o que ela pergunta.
POST https://www.base.gov.pt/Base4/pt/resultados/
type=search_anuncios&version=109.0&query=…&page=0&size=25
Devolve JSON. Entidade, designação, tipo de procedimento, preço base, data de publicação, prazo de propostas — já em campos separados. 251.784 anúncios. Sem chave, sem registo, sem conta.
A mesma coisa na VORTAL: a pesquisa pública de consultas ativas é um POST que devolve 605 concursos portugueses em curso, e a página de detalhe dá o CPV, o NIF da entidade e as peças do procedimento. Também sem conta.
Não há nada de clandestino nisto. São anúncios de concurso — publicidade legal obrigatória, que tem de estar acessível a qualquer pessoa. A diferença é que a forma legível por máquina não está documentada em lado nenhum, e há quem cobre 180 € por ano para ta enviar por email.
O que o radar faz com isto
Cada concurso é pontuado por regras explicáveis: termos no objeto, CPV na lista-alvo, preço base dentro da faixa de trabalho, prazo suficiente para preparar proposta. O ecrã mostra o score e, ao abrir, a conta linha a linha — «CPV 72413000 na lista alvo, +30».
Isso importa porque a decisão não é do algoritmo. É de quem vai gastar duas semanas a escrever uma proposta.
O que ainda está por resolver, e fica dito
- Mais de 40% da coleção não tem CPV. Vem do DRE (está no PDF) e do BASE (está no detalhe, a um pedido de distância). Sem CPV, a pontuação depende de vocabulário — e vocabulário falha: apanhámos «reparação das plataformas das ecovias» como possível trabalho de plataformas digitais.
- O BASE limita o ritmo. Ao fim de uma recolha intensa começa a responder
200com corpo vazio. Tratamos isso como erro visível, nunca como «não há concursos» — foi a regra mais importante que escrevemos. - O limiar de alerta estava em 85 e o melhor concurso de toda a coleção tinha 46. O radar nunca iria tocar à campainha. Não era falta de concursos: era a fasquia.
A parte que não se vê nos dashboards
O ecrã bonito com seis concursos pontuados é fácil de fabricar. O que interessa é o primeiro dia com zero, e resistir a mexer nos números até parecerem melhores.
Um radar honesto tem de poder dizer «não há nada para ti hoje». Se não puder dizer isso, também não vale nada quando disser o contrário.