add_to_shortlist
Add one concrete provider from the current search results (find_nearby / generate_starter_plan) to the shared plan. Reference it by category slug + exact name.
category: string, name: string
draft_outreachread-only
Draft a ready-to-send first-contact message (email/phone text) to one provider on the plan — asking about availability and English communication, and including the user's note on that entry as a question. Returns the…
id: integer, language: string?
find_bookableread-only
Unified booking lookup: online-bookable service providers (hairdresser, massage, physio, vet, driving school …) around the configured PLZ, normalized across booking platforms with one deep link each — booking…
category: string?, limit: integer?
find_jobsread-only
Search real job openings around the configured PLZ via the OFFICIAL German Federal Employment Agency (Bundesagentur fuer Arbeit) API. Returns title, employer, city, salary range when stated, home-office flag and an…
what: string?, limit: integer?, radius: integer?
find_nearby
Search the closest providers of ONE category around the configured PLZ and render them on the page for the user. Returns JSON with name, city, distance in km, phone, website, rating. category must be a slug from…
category: string, limit: integer?
generate_starter_plan
The one-step relocation helper: searches the configured PLZ across the essential categories in parallel (or a provided list of category slugs) and puts the CLOSEST provider per category into the shared plan. Existing…
categories: array?
get_paperwork_checklistread-only
Return the German bureaucracy starter pack: the ordered official steps after moving (Anmeldung, tax ID, health insurance, bank account, Kindergeld child benefit, Buergergeld, broadcasting fee) with official government…
get_profileread-onlyuntrusted content
Read the shared arrival profile: household (solo/couple/family), pet, language needs (en_only/de_ok), mobility (walk/bike/car) and profession. Use it to personalize every decision — categories, job queries, outreach…
get_shortlistread-onlyuntrusted content
Read the shared plan including the user's handwritten NOTES and who created each entry (human/agent). Call before modifying or summarizing the plan. Read-only.
list_categoriesread-only
List all 80+ business categories of the underlying German directory network (slug, label, emoji) plus which ones are pre-selected as everyday essentials. Call this first to learn valid category slugs. Read-only.
propose_appointment
Propose 1-3 concrete appointment slots for one provider on the plan (e.g. after the user said when they are free). The proposal renders on the page; the HUMAN confirms a slot with one click — that opens a pre-written…
id: integer, slots: array, service: string?
remove_from_shortlist
Remove one entry from the shared plan (id from get_shortlist). Only when the user wants it — never silently delete entries the human saved themselves.
id: integer
set_home_location_formHTML form
Set the new home postal code (German PLZ) and load nearby everyday essentials.
plz: text?
set_home_plz
Set the user's new home postal code (German PLZ) — the center of all searches. Call generate_starter_plan or find_nearby afterwards. Changes page state.
plz: string
set_note
Write or update a note on a plan entry (e.g. 'book an appointment', 'open till 6pm weekdays'). The user sees the note in the plan immediately.
id: integer, note: string
set_profile
Update the shared arrival profile (partial update; only provided fields change). The user sees every change immediately, and relevant categories are auto-added (pet → vet & pet store, family → hospital & tutoring, car…
household: string?, pet: string?, languages: string?, mobility: string?, work: string?