Mestre Bizu
AI-powered question portal for public exams: reads the exam notice PDF and shows how much of the exam the question bank covers.
Context
People studying for public-service exams need to know what will be on the exam for the position they chose. That information is in the exam notice, a long and unfriendly PDF. Mestre Bizu reads the notice, extracts positions, exams and syllabus, and shows how much of the exam the question bank already covers.
What I built
Today the product is at its foundation (internal use): upload the PDF of a notice, pick the position and get a coverage report.
- Structured extraction from notices of up to 600 pages with the Claude API, showing the source page of every data point.
- Mapping of the notice content to a subject taxonomy, with embeddings and pgvector and AI confirmation.
- Dashboards for gaps (items, subjects and laws with no coverage) and for AI cost per notice and per task.
Technical decisions
- Every piece of information points to its source. Each extracted data point carries the PDF page it came from, and anything not found is marked “not located in the PDF”.
- Quality is measured, not assumed. Automated recall and precision evaluations track the extraction.
- AI cost is visible. Spending is recorded per notice and per task, so it can be judged before scaling.
- Background processing with Inngest, to handle large notices.
- Honest about its limits. With no legal corpus yet, an item that cites a law is marked “not covered” and the law becomes a gap.
Results
- In development: the notice and taxonomy foundation is in place, with automated evaluations and cost control.
- up to 600
- pages per notice, with the source page of every data point
Stack
- Next.js 16
- React 19
- TypeScript
- Supabase
- pgvector
- Claude API
- Voyage AI
- Inngest
- Vitest
- Playwright