# GewerbeLotse

> Free web tool for Austria: everyday language is translated into official GISA trade wordings — including trade keys, free vs regulated classification and orientation hints. No user accounts, no tracking, no personal data storage.

Client / context: Monadion GmbH
Role: Concept, product development, privacy by design, AWS operations & data maintenance
Status: Live

## Outcome

Founders find the matching official wording before trade registration — privacy-friendly, AI-supported and clearly labelled as orientation rather than legal advice.

A free, publicly available web tool for Austria: users describe in everyday language what they want to do professionally — GewerbeLotse returns the matching **official GISA trade wordings**, including trade key, free vs regulated classification and typical orientation hints.

🌐 **Live at:** [gewerbelotse.at](https://gewerbelotse.at)

---

## Starting situation

In Austria, trade registration is tied to official wordings. Someone who says “I want to take wedding photos” rarely knows the exact GISA wording, the trade key or whether the activity is free or regulated. Official lists are extensive and written in administrative language — hard to navigate for founders, freelancers and advisors.

## Solution

GewerbeLotse translates everyday language into the language of Austrian trade law — clearly labelled as **orientation**, not legal advice and not an official authority decision.

---

## How it works

### 1. Natural-language input
Examples: “nail studio”, “build websites”, “sell döner”. No forms in bureaucratic language required.

### 2. Search & classification
Lexical, semantic and AI-supported matches find suitable wordings — even when the user’s phrasing differs from the official text.

### 3. Clear results
Official wording, trade key, type (free / regulated / partial trade) and typical pitfalls at a glance.

### 4. Next steps
Further orientation on qualifications, authority finders and registration — always with the disclaimer: not legal advice.

---

## What the tool delivers

**Orientation instead of bureaucratic language**
- Everyday language → official GISA wordings
- Trade key and classification free / regulated / partial trade
- Typical pitfalls and orientation hints

**Privacy by design**
- No personal data
- No client storage (no cookies, no localStorage)
- No tracking, no third-party analytics
- No IP addresses, no fingerprints, no user-agent logging
- Search logs only in normalised form; timestamps max. date + hour
- AI transparency notice next to search (EU AI Act)

**Data sources**
- GISA / BMWET via data.gv.at (CC BY 4.0)
- RIS – Federal Legal Information System (CC BY 4.0)
- Data status and attribution permanently shown in the site footer

---

## Architecture (overview)

Static frontend + serverless search API on AWS (`eu-central-1`). Domain data lives as prepared JSON artefacts in S3 — **without a classic domain database** and without a vector database.

**Search pipeline**
1. Query normalisation (without storing the raw text)
2. Cache lookup in DynamoDB
3. Lexical search + substring matching
4. Semantic search over precomputed embeddings
5. Reciprocal Rank Fusion of result lists
6. Optional LLM ranking with fit filter and orientation texts
7. Anonymous logging and response to the client

When the global LLM budget is exhausted, search continues **without AI ranking** (lexical fallback) — protection against cost spikes and abuse.

On the client, MiniSearch adds offline-capable search in the build.

---

## Outcome

- **Fast orientation** before trade registration — in everyday language instead of administrative German
- **Official wordings & keys** from public sources, transparently attributed
- **Privacy-friendly:** no accounts, no tracking, no personal data
- **Cost-safe:** budget limits and fallback without AI ranking
- **EU operations:** AWS Frankfurt (`eu-central-1`)

---

## Tech stack

| Area | Technologies |
|---|---|
| Frontend | React 18, TypeScript (strict), Vite, Tailwind CSS |
| Client search | MiniSearch |
| Backend | AWS Lambda (Node.js), Function URLs |
| Hosting | AWS Amplify Hosting |
| Storage | Amazon S3 (JSON dataset, logs, aggregates) |
| Cache | Amazon DynamoDB (query cache + budget counters) |
| AI | OpenAI (embeddings + ranking model) |
| Pipeline | Node.js + TypeScript (`tsx`), pnpm monorepo |
| Region | AWS `eu-central-1` (Frankfurt) |

---

## Deliberate non-goals

- No legal advice / no binding authority decision
- No user accounts, no CRM, no analytics stack
- No Docker, no Redux/Zustand, no vector database for the wordings

---

*This project shows Monadion’s ability to deliver a publicly usable domain product end to end: concept, AI-supported search, privacy by design, serverless AWS operations and ongoing data maintenance — from a single partner.*

## Technologies

- React
- TypeScript
- Vite
- Tailwind CSS
- AWS Lambda
- Amazon S3
- DynamoDB
- OpenAI
- MiniSearch
- Amplify

## Relevant links

- [HTML version](https://monadion.com/en/work/gewerbelotse)
- [English overview (llms.txt)](https://monadion.com/en/llms.txt)
- [Full AI context](https://monadion.com/en/llms-full.txt)
- [Book an analysis call](https://monadion.com/en/booking)
- [Contact](https://monadion.com/en/contact)

## Related

- [All projects](https://monadion.com/en/work.md)
