CNAE é uma linguagem oficial. Precisa ser precisa. Precisa separar comércio, indústria, serviço, produção própria, revenda, atacado, varejo. É assim que a Receita Federal organiza a atividade econômica de uma empresa.
Mas quase ninguém pensa em CNAE.
Quem procura uma empresa escreve "padaria", "restaurante", "loja de roupas", "promoção de vendas". Não escreve 4721-1/02, 5611-2/01, 4781-4/00 ou 7319-0/02.
Esse é o espaço que a gente precisava preencher: transformar linguagem comum em código oficial, sem inventar nada no caminho.
O problema
Uma busca por atividade não pode depender só de texto exato. "Padaria" pode significar revenda de produtos de panificação, produção própria ou fabricação de produtos de panificação. "Tecnologia" pode apontar para consultoria, suporte, desenvolvimento ou outras atividades próximas.
Também não dá para pedir que um modelo de linguagem escolha um CNAE de cabeça. O código precisa vir da classificação oficial. O modelo pode entender a frase. Ele não pode virar a fonte da verdade.
Então separamos as responsabilidades.
Como funciona
A base vem do IBGE. Usamos a planilha da estrutura detalhada para montar a hierarquia: seção, divisão, grupo, classe e subclasse. Depois usamos as notas explicativas em PDF para trazer o contexto que a planilha sozinha não carrega: o que cada subclasse compreende, o que compreende também e o que não compreende.
Cada CNAE vira um trecho de texto com contexto suficiente para ser encontrado por significado:
- o código oficial;
- o nome da atividade;
- o caminho na hierarquia;
- as notas de inclusão e exclusão, quando existem.
Um recorte do trecho vetorizado fica assim:
CNAE 4721-1/02
Padaria e confeitaria com predominância de revenda
Hierarquia:
Comércio varejista > Produtos de padaria, laticínio, doces e semelhantes
Compreende:
comércio varejista de pães, bolos, tortas e outros produtos de padaria quando a revenda é predominante
Não compreende:
panificadoras industriais; padarias com predominância de produção própria; lojas de tortas, doces e salgados de fabricação própria
Repare no "não compreende". A classificação oficial já separa a padaria que revende da que produz. A busca por significado funciona porque essa distinção está escrita no trecho, não porque o modelo adivinhou.
Esses trechos são transformados em vetores e guardados em um índice de busca vetorial. Quando alguém digita uma atividade em português, a API transforma a frase em vetor, consulta o índice e recebe de volta os CNAEs mais próximos.
Na prática, uma busca por atividade pode apontar para códigos assim:
- "padarias" pode apontar para
4721-1/02e4721-1/01; - "restaurantes" pode apontar para
5611-2/01; - "loja de roupas" pode apontar para
4781-4/00; - "promoção de vendas" pode apontar para
7319-0/02.
Depois disso, o código é normalizado para o formato que existe no banco e vira filtro. A busca nas empresas continua sendo uma consulta estruturada sobre os dados oficiais da Receita Federal.
O modelo fica antes desse passo. Ele entende a pergunta e separa a intenção, como contamos em Você pergunta. A gente te mostra o filtro.. A atividade escrita pelo usuário segue para a busca vetorial. O CNAE vem dali, não de um palpite.
Por que isso importa
Dados públicos não ficam acessíveis só porque estão disponíveis para download. Eles ficam acessíveis quando alguém consegue perguntar do jeito que pensa e receber uma resposta baseada na fonte certa.
CNAE é uma parte pequena do cadastro. Mas é uma parte decisiva. É o filtro que transforma "quero empresas nesse setor" em uma busca real.
A ideia não é esconder o código. É chegar nele sem exigir que todo mundo fale como uma tabela.
Você escreve "padaria". A gente encontra o CNAE. A busca continua oficial.