Cardeal: quando a IA era o core do produto e a ferramenta na minha mão, na era Cursor
Como usei gpt-4o, langchainrb e OCR para analisar matrícula, edital e mercado de leilões judiciais na Cardeal, escrevendo código com o Cursor antes dos agentes.
Ficha
- stack
- Rails + gpt-4o
- tempo
- 3 meses
- resultado
- 4 análises em cadeia

Entre maio e julho de 2025, na Cardeal, eu reescrevi sozinho o núcleo de inteligência artificial de um produto que analisava imóveis de leilão judicial: 23 commits em três meses, com gpt-4o, uma biblioteca Ruby chamada langchainrb e OCR de verdade rodando em cima de matrículas escaneadas. O código foi escrito quase todo com o Cursor. O Claude Code tinha acabado de sair do preview e o Codex nem existia como o conhecemos hoje. Em termos de ferramenta, um ano atrás é outra era.
Ou seja: esse foi o projeto em que a IA estava nos dois lados da mesa ao mesmo tempo. Era o core do produto, a coisa que o cliente pagava para ter, e era a ferramenta com que eu escrevia o produto. A Cardeal não decolou, e isso é papo para outro post. Este aqui é sobre o que eu construí, o que quebrou, e o quanto a distância entre desenvolver com IA em 2025 e em 2026 é maior do que parece.
O que a Cardeal fazia
A Cardeal ajudava investidores a encontrar e analisar imóveis em leilões judiciais e extrajudiciais. O trabalho manual de quem investe nisso é brutal: acompanhar dezenas de sites de leiloeiros, ler o edital, puxar a matrícula no cartório, entender se há dívida de condomínio, se o imóvel está ocupado, se a descrição da matrícula bate com o que foi penhorado, e comparar o lance mínimo com o preço de mercado. Cada etapa é um documento diferente, em formato diferente, escrito em juridiquês.

A promessa era automatizar as três partes: achar, analisar e decidir. Achar era o crawler, um monorepo em Bun e TypeScript com Puppeteer e regras específicas para 97 leiloeiros, alimentando um Postgres e um Elasticsearch. Analisar e decidir era a parte de IA, dentro de uma API em Rails 7. O investidor via tudo num front em Next.js: um Score de Oportunidade, um indicador de risco e um gráfico cruzando avaliação com preço de mercado.
97
leiloeiros com regras próprias de extração no crawler da Cardeal
Cada site tinha seletores e tratamento específicos; o crawler rodava em Bun com Puppeteer e Google Pub/Sub
O peso disso para quem investe é difícil de exagerar. Analisar um único imóvel na mão significava abrir o site do leiloeiro, baixar o edital, ler as cinquenta páginas procurando dívida e ocupação, pedir a matrícula no cartório e esperar, decifrar averbações e penhoras, e depois pesquisar preço de mercado em portais e no ITBI. Eram horas por imóvel, às vezes dias quando dependia do cartório, para chegar a uma resposta binária: entro ou não entro nesse leilão. E o investidor sério olha dezenas de imóveis por semana, porque a maioria não passa no filtro. A Cardeal transformava esse trabalho numa análise pronta em cerca de 15 minutos, com os riscos apontados e a conta feita. Não era conveniência: era a diferença entre analisar cinco oportunidades por semana e analisar cinquenta, e leilão é um jogo em que quem analisa mais acha o desconto que os outros não viram.
15 min
para a análise completa de um imóvel, contra horas ou dias no processo manual
Matrícula, edital e mercado analisados em cadeia; o tempo dependia do OCR e do tamanho do edital
O pipeline de IA em quatro análises
O que eu reescrevi em 2025 foi uma cadeia de quatro análises, executadas em sequência por um job com retentativas.
- Matrícula. O documento chega como PDF escaneado, às vezes uma foto. O fluxo converte para imagem a 300 dpi, amplia, converte para escala de cinza, aplica nitidez e limiar, e só então roda o Tesseract em português. O texto extraído vai para o gpt-4o com um esquema de saída definido: proprietários, ônus, penhoras, área, endereço.
- Edital. Aqui o PDF costuma ter texto, então o caminho é ler direto e mandar para o modelo, que devolve partes envolvidas, dívidas, condições de pagamento, comissão do leiloeiro e um resumo analítico.
- Mercado. Cruza o valor de avaliação com ITBI, anúncios e referências como FipeZap e Secovi para estimar o preço de mercado, com uma média ponderada entre as fontes.
- Consolidada. Recebe as três anteriores e responde à pergunta que o investidor faz de verdade: o desconto compensa os riscos?
E o processo judicial, que é de onde o leilão nasce? Não tinha automação própria. O plano era buscar direto nos sistemas dos tribunais, e ele ficou no plano. O que dava para fazer, e o modelo fazia, era extrair do próprio edital o que ele carrega sobre o processo: número, vara, natureza da ação, partes, fase da execução e qualquer sinal de risco processual, como recurso pendente, discussão sobre a penhora ou intimação que não aconteceu. Não substitui ler o processo, e o texto deixava isso claro para o investidor. Mas já filtrava boa parte do que faria alguém desistir antes de gastar uma hora no site do tribunal.
O prompt do resumo do edital dá uma boa ideia do nível de especificidade que funcionava:
Você é um assistente jurídico especializado em leilões de imóveis.
Sua tarefa é gerar um resumo analítico, com foco no que é mais
relevante para o arrematante. Destaque de forma clara:
o tipo e valor da oportunidade; existência de dívidas (IPTU,
condomínio, taxas) e seus valores; se há ocupação do imóvel;
se há divergência entre o imóvel descrito na matrícula e o
imóvel penhorado; riscos processuais ou gravames relevantes;
condições de pagamento e obrigações do arrematante.
Finalize com uma recomendação prática e clara.Nada de embeddings, nada de banco vetorial. O texto inteiro do documento ia no prompt. Em 2025, com a janela de contexto do gpt-4o, isso funcionava para um edital de dez páginas e quebrava em documento grande, e foi por isso que a análise de mercado acabou dividida em duas chamadas. A saída vinha em JSON validado por esquema, com um parser de correção por trás para quando o modelo devolvia JSON quebrado, o que acontecia mais do que eu gostaria.
Por que análise jurídica é um caso de uso quase perfeito para IA
Não foi sorte a IA funcionar bem na Cardeal. Documento jurídico tem quatro características que fazem dele o terreno ideal para um modelo de linguagem: é texto longo, é estruturado por convenção (toda matrícula tem os mesmos campos, todo edital segue o mesmo roteiro), a leitura humana é cara e cansativa, e a resposta pode ser conferida contra o próprio documento. Essa última é a que importa. Um modelo que resume um edital pode errar, mas o erro é verificável em minutos por quem sabe onde olhar. Diferente de prever demanda ou escrever anúncio, aqui existe uma resposta certa dentro do texto.
O mercado percebeu isso antes de mim. Em 17 de agosto de 2023 a Thomson Reuters concluiu a compra da Casetext por US$ 650 milhões em dinheiro, uma empresa cujo produto, o CoCounsel, fazia essencialmente o que o meu pipeline fazia: ler documento jurídico e devolver análise estruturada, para mais de 10 mil escritórios e departamentos jurídicos. Em 23 de junho de 2025 a Harvey, que vende IA para escritórios de advocacia, levantou US$ 300 milhões numa avaliação de US$ 5 bilhões. Ninguém paga isso por chatbot. Paga porque advogado sênior lendo contrato é uma das horas mais caras da economia, e o modelo lê em segundos.
No Brasil o caso é ainda mais forte, porque o nosso documento é pior. Matrícula escaneada de cartório do interior, edital em juridiquês com cinquenta páginas, jurisprudência espalhada em dezenas de tribunais. Quanto mais lento e caro é ler, maior o valor de quem lê por você. O que o time da Cardeal fazia por um investidor de leilão, os tribunais e os escritórios estão fazendo em escala, e o gargalo que sobra não é o modelo: é a qualidade do documento que entra e a disciplina de conferir o que sai.
Como era escrever isso com o Cursor
Vale lembrar o que existia e o que não existia. O Cursor de maio de 2025 era um editor com chat e autocomplete muito bom, com a opção de aplicar mudanças em vários arquivos. Não era um agente: não rodava os testes sozinho, não abria o terminal para investigar um erro, não lia o log do job que tinha falhado. Cada iteração passava por mim.
O que ele fazia bem, fazia muito bem. Um analisador novo, seguindo o padrão do anterior, saía em minutos. O esquema de saída com descrição campo a campo, aquele boilerplate longo que ninguém gosta de escrever, ele escrevia. O pré-processamento de imagem para o OCR, com os parâmetros do ImageMagick, veio de uma conversa em que eu descrevia o problema (contraste baixo, carimbo por cima do texto) e ele sugeria a receita.
O que ele fazia mal também deixou marca no código. Cada método dos analisadores tem um log, porque era o jeito de eu enxergar o que estava acontecendo dentro de um job de dez minutos sem um agente para me contar. Ele inventava método de biblioteca que não existia, principalmente na langchainrb, que é pouco documentada e mudava a cada versão, tanto que a gem ficou fixada num fork. E o código repetia estrutura entre arquivos porque o modelo repetia o que via, sem a visão do todo que um agente com acesso ao repositório tem hoje.
Um comando que resume a época:
tesseract matricula.png stdout -l por --oem 1 --psm 6Uma linha de OCR de 2006, dentro de um pipeline de IA de 2025, escrita com ajuda de um modelo de linguagem. A parte mais moderna do sistema dependia da mais antiga.
O que quebrou
Conto pelos commits, porque eles não mentem.
"Checagem dupla para que propriedades não criadas pela IA sejam extraídas." O modelo, ao estruturar a saída, criava campos e valores que não estavam no documento. Foi preciso conferir a saída contra o texto original antes de gravar. Alucinação não era teoria, era registro errado no banco.
"Remove OCR do edital." Durante semanas o edital passava pelo OCR como a matrícula, e o resultado piorava, porque o PDF já tinha texto e o OCR introduzia erro onde não havia. Trocar por leitura direta do PDF foi um dos maiores ganhos de qualidade do projeto, e custou uma linha.
"Aumenta timeout análise matrícula." "Quebra análise de mercado em duas partes." Os limites de tempo e de contexto apareciam como falhas silenciosas. A resposta foi tratar cada análise como uma etapa com estado próprio, que pode terminar em completa, parcial ou falha, com aviso no Slack, em vez de um fluxo só que ou funcionava inteiro ou não funcionava.
E duas coisas que não quebraram porque nunca existiram: teste automatizado da parte de IA e medição de custo por análise. Eu sabia quanto a conta da OpenAI dava no mês, não quanto custava analisar um imóvel. Hoje isso seria a primeira coisa que eu colocaria.
O que eu faria diferente
Com o que existe em 2026, três mudanças.
Primeiro, avaliação. Um conjunto de vinte editais e matrículas com a resposta certa marcada à mão, rodado a cada mudança de prompt ou de modelo. Sem isso, cada melhoria era uma opinião.
Segundo, custo e latência por etapa desde o primeiro dia, gravados junto com o resultado. É o que permite dizer se uma análise mais cara vale o que entrega.
Terceiro, um agente para o trabalho repetitivo: rodar o job, ler o log, propor a correção. Boa parte do que eu fazia à mão em 2025, um Claude Code ou um Codex faz hoje com supervisão. A diferença não é de velocidade de digitação, é de ciclo: o tempo entre "quebrou" e "entendi por quê" caiu de horas para minutos.
Por que eu continuo gostando desse projeto
Porque a IA estava onde deveria estar: em cima de documentos reais, resolvendo um problema em que a leitura humana é lenta, cara e cansativa, para um cliente que pagava para não ler. Não era chatbot na home. Era matrícula, edital, ônus, dívida de condomínio, lance mínimo.
A Cardeal fechou por outro motivo. Produto bom, tecnologia que funcionava, e um mercado que não respondeu do jeito que a gente precisava. Sobre isso, sobre o que é ter um produto que as pessoas elogiam e não compram, escrevo no próximo post.
Por enquanto fica o registro: há pouco mais de um ano, escrever software com IA era outra coisa. E mesmo assim já dava para colocar um modelo no centro de um produto de verdade. Quem diz que só agora ficou possível não estava construindo.
Quem escreve
Leia também
Como construímos o MCP da NFE.io para emitir nota fiscal pelo Claude e pelo ChatGPT
O que aprendemos construindo o MCP da NFE.io: por que todo sistema vai ser operado por linguagem natural, o que quebrou no OAuth e o que a IA se recusou a fazer.
Guru de IA é o novo 6 em 7, e o que fazer em vez de comprar o curso
Guru de IA vende o novo 6 em 7 para quem nunca colocou um agente em produção. O que funciona de verdade nas empresas, com fonte e com os pés no chão.