feat(market-intel): Finalize Level 4 Competitive Radar (Semantics & Relations)

- Implemented semantic classification for Products (e.g. 'Cleaning', 'Logistics') and Battlecards (e.g. 'Price', 'Support').
- Created 'import_competitive_radar.py' for full 4-database relational import to Notion.
- Updated Orchestrator with new prompts for structured output.
- Cleaned up obsolete scripts.
This commit is contained in:
2026-01-11 12:54:12 +00:00
parent 9a769f62a0
commit b5e6c415c7
5 changed files with 249 additions and 26 deletions

View File

@@ -301,10 +301,20 @@ DATENBASIS ({c_name}):
AUFGABE:
Erstelle eine präzise Analyse. Antworte als valides JSON-Objekt (NICHT als Liste).
STANDARD-KATEGORIEN FÜR PRODUKTE:
- "Cleaning (Indoor)"
- "Cleaning (Outdoor)"
- "Transport/Logistics"
- "Service/Gastro"
- "Security/Inspection"
- "Software/Fleet Mgmt"
- "Other"
Struktur:
{{
"competitor": {{ "name": "{c_name}", "url": "{c_url}" }},
"portfolio": [ {{ "product": "...", "purpose": "..." }} ],
"portfolio": [ {{ "product": "...", "purpose": "...", "category": "..." }} ],
"target_industries": ["..."],
"delivery_model": "...",
"overlap_score": 0-100,
@@ -320,7 +330,14 @@ Struktur:
"type": "object",
"properties": {
"competitor": {"type": "object", "properties": {"name": {"type": "string"}, "url": {"type": "string"}}},
"portfolio": {"type": "array", "items": {"type": "object", "properties": {"product": {"type": "string"}, "purpose": {"type": "string"}}}},
"portfolio": {"type": "array", "items": {
"type": "object",
"properties": {
"product": {"type": "string"},
"purpose": {"type": "string"},
"category": {"type": "string", "enum": ["Cleaning (Indoor)", "Cleaning (Outdoor)", "Transport/Logistics", "Service/Gastro", "Security/Inspection", "Software/Fleet Mgmt", "Other"]}
}
}},
"target_industries": {"type": "array", "items": {"type": "string"}},
"delivery_model": {"type": "string"},
"overlap_score": {"type": "integer"},
@@ -506,12 +523,22 @@ WETTBEWERBER & UNTERSCHEIDUNGSMERKMALE:
SILVER BULLETS (Argumentationshilfen):
{bullets}
KATEGORIEN FÜR LANDMINES & SCHWÄCHEN:
- "Price/TCO"
- "Service/Support"
- "Technology/AI"
- "Performance"
- "Trust/Reliability"
- "Company Viability"
AUFGABE:
Erstelle für JEDEN oben genannten Wettbewerber eine Battlecard.
- "competitor_name": Exakter Name aus der Liste.
- "win_themes": Warum gewinnen wir?
- "kill_points": Schwächen des Gegners.
- "silver_bullet": Das beste Argument (nutze die Silver Bullets als Inspiration).
- "silver_bullet": Das beste Argument.
- "landmine_questions": Kritische Fragen für den Kunden.
- WICHTIG: Ordne jedem Punkt in "landmine_questions" und "strengths_vs_weaknesses" eine der oben genannten Kategorien zu.
Antworte JSON.
""".format(
@@ -533,8 +560,20 @@ Antworte JSON.
"type": "object",
"properties": { "focus": {"type": "string"}, "positioning": {"type": "string"} }
},
"strengths_vs_weaknesses": {"type": "array", "items": {"type": "string"}},
"landmine_questions": {"type": "array", "items": {"type": "string"}},
"strengths_vs_weaknesses": {
"type": "array",
"items": {
"type": "object",
"properties": {"text": {"type": "string"}, "category": {"type": "string"}}
}
},
"landmine_questions": {
"type": "array",
"items": {
"type": "object",
"properties": {"text": {"type": "string"}, "category": {"type": "string"}}
}
},
"silver_bullet": {"type": "string"}
},
"required": ["competitor_name", "competitor_profile", "strengths_vs_weaknesses", "landmine_questions", "silver_bullet"]

View File

@@ -42,6 +42,7 @@ export interface Analysis {
portfolio: {
product: string;
purpose: string;
category?: string;
}[];
target_industries: string[];
delivery_model: string;
@@ -76,8 +77,8 @@ export interface Battlecard {
focus: string;
positioning: string;
};
strengths_vs_weaknesses: string[];
landmine_questions: string[];
strengths_vs_weaknesses: (string | { text: string; category: string })[];
landmine_questions: (string | { text: string; category: string })[];
silver_bullet: string;
}