U3 · Core
Achado de Leilão
A single search across official Brazilian auctions (federal bank Caixa, other banks, tax authority, DMVs, labor courts, city halls and auctioneers). Live since Sept 28, 2026, with a Python collector, a Next.js site and an MCP server.
Engineering decisions
- One module per source, all sharing the same `collect()` contract. Upserts never overwrite a field with an empty value, and a lot is only marked inactive after a full pass of its source.
- Price and status history lives in the database: a trigger records every change to bid, appraisal, status and final sale in an events table, which powers each lot's timeline and the sell-through rate.
- Accent-insensitive Portuguese full-text search inside PostgreSQL (`tsvector` + `unaccent`), with no separate search service.
- MCP server with 7 tools, including guarded free-form SQL: read-only session, 15 s timeout, 200-row cap and a constant-time token check.
- Magic-link sign-in and Stripe subscriptions through Better Auth, with no custom plans table. Email alerts fire at the end of each collection cycle.
- Public pages per category, state and city, with sitemap, JSON-LD and `llms.txt`, for organic search and AI assistants.
Results
- 53,997 active lots from 22 official sources, across 27,282 auctions (as of Oct 14, 2026).
- Lots in all 27 Brazilian states; 30,123 properties and 17,333 vehicles.
- Data refreshed every 6 hours.
- 7 MCP tools: lot search, lot detail, upcoming auctions, summary, sale results, lot history and SQL.
Stack
Python 3.12httpxPostgreSQL 17Next.js 16React 19TypeScriptBetter AuthStripeMCP SDK (Python)Docker
What it shows
Shows I can take a data product from scraper to website to MCP server end to end, and run it in production.
More projects
U1
LedgerJobMulti-tenant SaaS for US construction contractors covering leads, quotes, projects, invoices and scheduling. Owners run the business by chatting with an AI agent, and the same tools are exposed through an MCP server.
liveU2Cape Cod PermitsMassachusetts building permits are scattered across six municipal systems with no shared API. This pipeline pulls them into one PostgreSQL database that people and AI agents query through a web dashboard and an MCP server.
privateU4DockPlus Atendimento — multichannel customer service agentA customer service agent for WhatsApp, Telegram and email. A LangGraph graph classifies intent and routes to the right node: RAG answers, scheduling, feedback or handoff to a human. There's also a version for US real estate agents.
private