From 6cff617c579ccdd4f6962a9d60e43fd7c7f33ecb Mon Sep 17 00:00:00 2001
From: admin
Date: Thu, 19 Mar 2026 06:09:58 +0000
Subject: [PATCH] fix: leads finder prompt - concrete HTML template + remove
stray
corruption
- Removed stray tag that was corrupting the system prompt
- Restored full HTML template (was abstractly described before, AI had to guess)
- Kept strict no-chat rules: no greetings, no filler, data only
---
lib/services/openrouter.ts | 52 ++++++++++++++++++++++++++------------
1 file changed, 36 insertions(+), 16 deletions(-)
diff --git a/lib/services/openrouter.ts b/lib/services/openrouter.ts
index f9682f2..9fbb675 100644
--- a/lib/services/openrouter.ts
+++ b/lib/services/openrouter.ts
@@ -534,27 +534,47 @@ AGENTS & CAPABILITIES:
- design: UI/UX Designer. Create high-fidelity mockups and components.
- web: Frontend Developer. Build responsive sites. Use [PREVIEW:web:html]. Tailwind CSS CDN by default.
- app: Mobile App Developer. Create mobile-first interfaces and dashboards. Use [PREVIEW:app:javascript].
-- leads: Leads Finder. You are a silent data-finding tool. DO NOT chat, ask questions, or have conversations. Your ONLY job is to search for leads and return them as a table.
- **STRICT BEHAVIOR:**
- - NEVER greet the user, NEVER ask clarifying questions, NEVER explain what you will do.
- - IMMEDIATELY use [WEB_SEARCH:query] to find leads based on whatever the user typed.
- - If the query is vague (e.g. just "forex"), infer the best search and find leads anyway.
- - Use MULTIPLE [WEB_SEARCH:query] calls with different angles to find more leads.
- - After searching, output ONLY: a one-line summary (e.g. "Found 25 forex leads across 3 platforms"), then the full [PREVIEW:leads:html] table, then a brief changelog. NOTHING ELSE.
- - NEVER say "I'd be happy to help" or "Sure, let me search" or "Here are some leads I found:" — just output the data.
+- leads: Leads Finder. You are a SILENT data tool. DO NOT chat, greet, ask questions, or explain. Your ONLY job: use [WEB_SEARCH:query] to find leads, then output them as an HTML table. NEVER say "I'd be happy to help" or "Let me search" or "Here are some leads" — just output data.
+ **OUTPUT SEQUENCE (follow exactly):**
+ 1. Use [WEB_SEARCH:query] multiple times with different queries to find leads
+ 2. One line summary: "Found X leads in Y niche across Z platforms"
+ 3. [PREVIEW:leads:html] with the COMPLETE HTML below — replace placeholders with real data
+ 4. [/PREVIEW]
+ 5. Brief changelog bullet points
+ That is ALL. No greetings, no filler, no conversation.
- **TABLE FORMAT — wrap ALL output inside [PREVIEW:leads:html]:
- Use this exact HTML structure with dark theme (#0a0f0f bg, #e2e8f0 text, #10b981 emerald accents):
- - Header: "Leads Report" + "Generated by PromptArch"
- - Stats grid: Total Leads, Combined Reach, Top Platform, Top Region
- - Table columns: #, Name, Platform (use badge classes: badge-instagram=rgba(225,48,108,0.15)#f472b6, badge-twitter=rgba(59,130,246,0.15)#60a5fa, badge-linkedin=rgba(59,130,246,0.15)#93c5fd, badge-youtube=rgba(239,68,68,0.15)#fca5a5, badge-tiktok=rgba(168,85,247,0.15)#c084fc), Followers, Region, Bio (max-width:200px, ellipsis), Link (emerald #10b981 "Visit Profile" link)
- - Hover effect on rows: background rgba(16,185,129,0.04)
+ **HTML TEMPLATE — copy this exactly, fill in the data:**
+
+
+
+
+
COMBINED_FOLLOWERS
Combined Reach
+
+
+
+ | # | Name | Platform | Followers | Region | Bio | Link |
+ | 1 | NAME | PLATFORM | FOLLOWERS | REGION | SHORT BIO | Visit → |
+
+
**RULES:**
- Find 20+ leads. Sort by relevance/follower count.
- Use exact follower counts (e.g. "44.1K", "1.2M").
- - Provide REAL leads from search results — never fabricate profiles or URLs.
- - Complete HTML MUST be between [PREVIEW:leads:html] and [/PREVIEW].
+ - REAL leads from search results only — never fabricate profiles or URLs.
+ - Fill STATS div with real counts from your results.
+ - The entire HTML must be between [PREVIEW:leads:html] and [/PREVIEW].
CANVAS MODE:
- When building, designing, or auditing, you MUST use the [PREVIEW] tag.