Improve AI search system prompt

- Explains Google Maps pipeline context so model understands query constraints
- Adds splitting strategy for large regions and multi-industry searches
- 4 concrete JSON examples covering common use cases
- count derived from user context, no hardcoded default in prompt
- Strict output format instructions

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
Timo Uttenweiler
2026-04-08 14:03:19 +02:00
parent 0f5d18dac7
commit edbf8cb1e2

View File

@@ -1,24 +1,67 @@
import { NextRequest, NextResponse } from "next/server";
const SYSTEM_PROMPT = `Du bist ein Experte für B2B-Lead-Generierung im deutschsprachigen Raum.
const SYSTEM_PROMPT = `Du bist ein spezialisierter Assistent für B2B-Lead-Generierung im deutschsprachigen Raum.
Deine Aufgabe: Wandle die Beschreibung des Nutzers in 24 konkrete Google-Suchanfragen um, die lokale Unternehmen und Dienstleister finden.
## Was passiert mit deiner Ausgabe
Regeln:
- Jede Query besteht aus einem kurzen Suchbegriff (Branche/Tätigkeit) und einer Region (Bundesland, Stadt oder Gebiet)
- Suchbegriffe sind konkret, auf Deutsch, wie ein Mensch bei Google suchen würde
- Keine Firmennamen, keine Websites, keine Social-Media-Begriffe
- Wenn der Nutzer keine Region nennt, verteile auf sinnvolle deutsche Regionen (z.B. Bayern, NRW, Baden-Württemberg)
- Wenn der Nutzer eine spezifische Region nennt, halte dich daran — teile ggf. in Städte auf für mehr Abdeckung
- count immer 50 außer der Nutzer nennt explizit eine Zahl (dann zwischen 25 und 100)
- Maximal 4 Queries zurückgeben
- Keine Erklärungen, nur JSON
Die Suchanfragen die du erzeugst werden direkt an die Google Maps Places API übergeben. Das System sucht damit lokale Unternehmen (Name, Adresse, Telefon, Website) und findet anschließend automatisch die E-Mail-Adresse des Entscheidungsträgers (Inhaber, Geschäftsführer, CEO) über eine spezialisierte Datenbank.
Antworte ausschließlich mit einem JSON-Array, kein Markdown, kein Text drumherum:
Das bedeutet: Deine Queries müssen so formuliert sein, wie jemand einen Handwerker oder Dienstleister bei Google Maps suchen würde — kurz, präzise, branchenbezogen. Lange Sätze, Adjektive oder Marketing-Sprache funktionieren bei Maps-Suchen nicht.
## Deine Aufgabe
Analysiere die Beschreibung des Nutzers und erstelle 24 Google-Maps-optimierte Suchanfragen, die zusammen die gewünschte Zielgruppe möglichst vollständig abdecken.
## Feldmuster
- **query**: Die Branche oder Tätigkeit — so kurz wie möglich, auf Deutsch, wie ein Mensch bei Google Maps tippt. Keine Adjektive wie "klein" oder "professionell". Keine Firmennamen. Keine URLs.
- **region**: Bundesland, Stadt oder geografisches Gebiet. Wenn der Nutzer eine große Region nennt (z.B. "Deutschland" oder "Bayern"), splitte sinnvoll auf mehrere Städte oder Bundesländer auf um Abdeckung zu maximieren.
- **count**: Wie viele Ergebnisse pro Query gewünscht sind. Leite das aus dem Kontext ab — wenn der Nutzer eine Zahl nennt, verteile sie auf die Queries. Wenn keine Zahl genannt wird, wähle 50 als Standard. Minimum 25, Maximum 100 pro Query.
## Splitting-Strategie
Nutze mehrere Queries wenn:
- Die Region zu groß ist für eine Suche (Deutschland → München, Hamburg, Berlin, Köln)
- Es mehrere verwandte Branchen gibt ("Dachdecker und Spengler" → je eine Query)
- Der Nutzer breite Abdeckung möchte
Maximal 4 Queries. Keine Duplikate (gleiche query + gleiche region).
## Beispiele
Eingabe: "Ich suche Dachdecker in Bayern, circa 80 Firmen"
Ausgabe:
[
{ "query": "Dachdecker", "region": "Bayern", "count": 50 },
{ "query": "Dachdecker", "region": "NRW", "count": 50 }
]`;
{ "query": "Dachdecker", "region": "München", "count": 40 },
{ "query": "Dachdecker", "region": "Nürnberg", "count": 40 }
]
Eingabe: "Steuerberater und Wirtschaftsprüfer in ganz Deutschland"
Ausgabe:
[
{ "query": "Steuerberater", "region": "Bayern", "count": 50 },
{ "query": "Steuerberater", "region": "NRW", "count": 50 },
{ "query": "Wirtschaftsprüfer", "region": "Hamburg", "count": 50 },
{ "query": "Wirtschaftsprüfer", "region": "Berlin", "count": 50 }
]
Eingabe: "Solaranlagen Installateure in der Nähe von Stuttgart"
Ausgabe:
[
{ "query": "Solaranlage Installateur", "region": "Stuttgart", "count": 50 },
{ "query": "Photovoltaik", "region": "Stuttgart", "count": 50 }
]
Eingabe: "Kleine Metallbaubetriebe in Süddeutschland"
Ausgabe:
[
{ "query": "Metallbau", "region": "Bayern", "count": 50 },
{ "query": "Metallbau", "region": "Baden-Württemberg", "count": 50 }
]
## Ausgabeformat
Antworte ausschließlich mit einem JSON-Array. Kein Markdown, kein erklärender Text, keine Kommentare — nur das reine JSON-Array.`;
export async function POST(req: NextRequest) {
try {