Remove count from AI search prompt, add query prioritization
- count no longer part of prompt or JSON output — fixed at 50 in backend - Added prioritization rules: most common term wins (Dachdecker > Spengler) - Cleaner examples without count field Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -15,48 +15,57 @@ Analysiere die Beschreibung des Nutzers und erstelle 2–4 Google-Maps-optimiert
|
||||
## 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.
|
||||
- **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 mehr Ergebnisse zu erzielen.
|
||||
|
||||
## Priorisierung
|
||||
|
||||
Wähle immer den geläufigsten, meistgesuchten Begriff für eine Branche — nicht Nischenbegriffe oder Synonyme. Beispiele:
|
||||
- "Dachdecker" vor "Spengler" oder "Klempner"
|
||||
- "Elektriker" vor "Elektroinstallateur"
|
||||
- "Steuerberater" vor "Steuerkanzlei"
|
||||
- "Solaranlage" vor "Photovoltaik Fachbetrieb"
|
||||
|
||||
Wenn der Nutzer mehrere Branchen nennt, priorisiere die volumenstärkste zuerst.
|
||||
|
||||
## 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 explizit mehrere verschiedene Branchen nennt (dann je eine Query pro Branche)
|
||||
- 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"
|
||||
Eingabe: "Dachdecker in Bayern"
|
||||
Ausgabe:
|
||||
[
|
||||
{ "query": "Dachdecker", "region": "München", "count": 40 },
|
||||
{ "query": "Dachdecker", "region": "Nürnberg", "count": 40 }
|
||||
{ "query": "Dachdecker", "region": "München" },
|
||||
{ "query": "Dachdecker", "region": "Nürnberg" }
|
||||
]
|
||||
|
||||
Eingabe: "Steuerberater und Wirtschaftsprüfer in ganz Deutschland"
|
||||
Eingabe: "Steuerberater 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 }
|
||||
{ "query": "Steuerberater", "region": "Bayern" },
|
||||
{ "query": "Steuerberater", "region": "NRW" },
|
||||
{ "query": "Steuerberater", "region": "Hamburg" },
|
||||
{ "query": "Steuerberater", "region": "Berlin" }
|
||||
]
|
||||
|
||||
Eingabe: "Solaranlagen Installateure in der Nähe von Stuttgart"
|
||||
Eingabe: "Solaranlagen Installateure und Elektriker in Stuttgart"
|
||||
Ausgabe:
|
||||
[
|
||||
{ "query": "Solaranlage Installateur", "region": "Stuttgart", "count": 50 },
|
||||
{ "query": "Photovoltaik", "region": "Stuttgart", "count": 50 }
|
||||
{ "query": "Solaranlage", "region": "Stuttgart" },
|
||||
{ "query": "Elektriker", "region": "Stuttgart" }
|
||||
]
|
||||
|
||||
Eingabe: "Kleine Metallbaubetriebe in Süddeutschland"
|
||||
Eingabe: "Metallbaubetriebe in Süddeutschland"
|
||||
Ausgabe:
|
||||
[
|
||||
{ "query": "Metallbau", "region": "Bayern", "count": 50 },
|
||||
{ "query": "Metallbau", "region": "Baden-Württemberg", "count": 50 }
|
||||
{ "query": "Metallbau", "region": "Bayern" },
|
||||
{ "query": "Metallbau", "region": "Baden-Württemberg" }
|
||||
]
|
||||
|
||||
## Ausgabeformat
|
||||
@@ -122,7 +131,7 @@ export async function POST(req: NextRequest) {
|
||||
.map(q => ({
|
||||
query: q.query.trim(),
|
||||
region: (q.region ?? "").trim(),
|
||||
count: Math.min(Math.max(Number(q.count) || 50, 25), 100),
|
||||
count: 50,
|
||||
}));
|
||||
|
||||
return NextResponse.json({ queries });
|
||||
|
||||
@@ -173,7 +173,6 @@ export function AiSearchModal({ onStart, onClose }: AiSearchModalProps) {
|
||||
)}
|
||||
</div>
|
||||
<div style={{ display: "flex", alignItems: "center", gap: 8 }}>
|
||||
<span style={{ fontSize: 11, color: "#4b5563" }}>{q.count} Leads</span>
|
||||
<div style={{
|
||||
width: 16, height: 16, borderRadius: 4,
|
||||
border: selected.has(i) ? "none" : "1px solid #2e2e3e",
|
||||
|
||||
Reference in New Issue
Block a user