Scanvice
An AI receipt and invoice scanner — upload a photo of a bill and Claude vision returns clean, structured JSON with vendor, totals, line items and per-field confidence, exportable to XLSX.
Scanvice is a landing site and an AI-powered receipt and invoice scanner. You upload a photo of a receipt, invoice or bill, and the app hands it to Anthropic's Claude vision model to read it and return clean, structured JSON — vendor, transaction details, totals and an amount breakdown, itemised line items, a category guess and a per-field confidence score — which is then rendered in the UI and can be exported to XLSX.
The extraction endpoint#
The heart of it is POST /api/extract-receipt, which runs on the Node.js
runtime. It sends the uploaded image to Claude (claude-sonnet-4-5) via the
Messages API together with a strict extraction prompt, and the model returns
JSON only. That JSON is parsed into a typed ExtractedReceipt schema before it
ever reaches the client, so the frontend always renders against a known shape.
Low-quality images still extract — they just come back with lowered confidence
scores and warnings rather than failing outright.
Guardrails around the model#
Because the endpoint accepts arbitrary user uploads and calls a paid API, the
server side is defensive: per-IP rate limiting, image MIME-type and size
validation (10 MB max), a request timeout, and metadata-only logging — the
receipt content itself is never retained. Without an ANTHROPIC_API_KEY the
endpoint returns a clear server_misconfigured error instead of failing
silently.
Around the scanner#
The results view renders a vendor card, a line-items table, an amount breakdown
and confidence indicators, with one-click export to XLSX via SheetJS. The rest
is a proper marketing site — hero, problem/solution, trust and CTA sections plus
an MDX-style blog — with SEO built in through sitemap.ts, robots.ts and a
dynamic OG icon. It's Next.js 16 (App Router), React 19, Tailwind CSS v4 and
shadcn/ui on Radix primitives.
Next, have a look at

Sentinel
Dynamic KYC-drift monitor built for AMINA Bank's SwissHacks 2026 challenge — it catches the slow structural changes that quietly invalidate a customer's risk profile.
warmap
A live map of conflict and incident news — it ingests trusted RSS feeds, geolocates and classifies each event with an LLM, and plots the current picture on an interactive map with a timeline.