Research
Eine Produktnische recherchieren, bevor du Lager bestellst
Sammle den Kategorie-Kontext, erfasse Wettbewerberseiten an einem genannten Datum, lies auf X, worüber Käufer klagen, und halte Belege und Memo in einem LiveDoc fest, das du vor der Bestellung wieder öffnest.
Prompt kopieren
Ersetze die Felder in eckigen Klammern und füge den Prompt in Claude Code, Codex oder eine KI mit Terminalzugriff ein. Sie installiert den Felo-Skill, fragt vor Credits und führt den Workflow aus.
Recherchiere diese Produktnische, bevor wir Lagerbestand kaufen oder launch: [Produkt oder Kategorie]. Markt: [Land oder Region]. Kanal: [Marktplatz / DTC / Einzelhandel]. Zeitraum für Käuferbeiträge: letzte [30] Tage. Vergleichsprodukte oder Wettbewerber-URLs: [URLs]. Budget- und Margenvorgaben: [Vorgaben]. Zielgruppe: [Team]. Erstelle ein Markdown-Memo mit: 1. Einem Absatz Urteil: Lohnt sich weitere Recherche, und was würde deine Meinung ändern. 2. Nachfragesignalen: was die Quellen zu Interesse, Saisonalität und Substituten sagen. 3. Konkurrenzprodukten: was jedes behauptet, der auf der Seite erfasste Preis und wo Käufer es kritisieren. 4. Preispositionierung: die tatsächlich gefundenen Preispunkte, jeweils mit Erfassungsdatum. 5. Käuferbeschwerden und unerfüllten Bedürfnissen, mit Zitaten, Handles und Daten. 6. Risiken und offenen Fragen, die vor dem Lagereinkauf geklärt werden müssen. 7. Quellen: jede genutzte Seite und jeder Beitrag mit URL und Datum. Regeln: - Nutze nur, was die APIs zurückgeben. Erfinde niemals Marktgröße, Verkaufsschätzungen, Bewertungszahlen oder Wettbewerbspreise. - Melde Preise exakt wie erfasst, mit Seiten-URL und Erfassungsdatum. Averagiere oder normalisiere sie niemals. - Behandle X-Beiträge als Anekdote, nicht als Marktdaten, und sage es, wenn die Stichprobe dünn ist. - Trenne Anbieterbehauptungen von Käuferberichten. - Bevor Credits verbraucht werden, zeige die geplanten Extraktionen und Suchen und warte auf meine Freigabe. - Kontaktiere keine Lieferanten, bestelle nichts und schreibe niemandem auf X. - Schreibe das Ergebnis nach ./product-research.md und fasse es im Chat zusammen.
Die Kopie enthält auch die Installationsschritte und Sicherheitsregeln.
Das bekommst du
Beispielausgabe eines Laufs. Keine Live-Generierung.
Produktrecherche — Beispielkategorie
Urteil
Ein genauerer Blick lohnt, aber die öffentliche Evidenz reicht nicht für eine Lagerentscheidung. Die offenen Fragen unten sind der nächste Schritt.
Kategoriekontext
Käufer vergleichen eher Stellfläche und Reinigung als Druck. Keine öffentliche Quelle stützt eine Marktgrößenschätzung.
Wettbewerberseiten
- Example A — Produktseite (erfasst am 2026-10-30)
- Example B — Produktseite (erfasst am 2026-10-30)
Was Käufer berichten
- @example_buyer: „Dritter Ersatz in einem Jahr; die Dichtung versagt.“ — 2026-10-19
- @example_home: „Reinigen dauert Minuten, das erwähnt niemand.“ — 2026-10-24
Preispositionierung
Preise wurden am 2026-10-30 von den verlinkten Seiten erfasst. Sie liegen in zwei Stufen; jede Seite wird direkt zitiert statt gemittelt.
Risiken und offene Fragen
- Haltbarkeit der Dichtung ist die häufigste Beschwerde.
- Keine Quelle deckt Rücksendequoten ab.
- Vor der Bestellung Lieferzeiten und Landed Cost prüfen.
Quellen
- https://example.com/product-a — 2026-10-30
- https://x.com/example_buyer/status/... — 2026-10-19
Die konkreten Aufrufe
Für Entwickler: derselbe Workflow als kopierbarer Code in Ausführungsreihenfolge.
Konkrete API-Aufrufe zeigen
Chat nach dem Kategoriebild fragen
Starte mit der belegten Antwort statt einer leeren Seite: Chat durchsucht das öffentliche Web, sortiert Seiten und gibt genutzte Ressourcen zurück. Frage in einer Abfrage nach Nachfragekontext, Alternativen und häufigen Beschwerden und behalte die Top-Ressourcen als Belegliste.
product-research.ts const BASE = "https://openapi.felo.ai"; const headers = { Authorization: `Bearer ${process.env.FELO_API_KEY}`, "Content-Type": "application/json", }; async function felo<T>(path: string, body?: unknown): Promise<T> { const res = await fetch(`${BASE}${path}`, { method: body ? "POST" : "GET", headers, body: body ? JSON.stringify(body) : undefined, }); if (!res.ok) throw new Error(`${res.status}: ${await res.text()}`); return res.json() as Promise<T>; } type ChatData = { data: { answer: string; resources: { link: string; title: string; snippet: string }[]; }; }; const niche = "portable espresso maker"; // replace with the category you are judging const context = await felo<ChatData>("/v2/chat", { query: `Demand, price bands, and buyer complaints for ${niche} in the US`, }); const sources = context.data.resources.slice(0, 5);Beispielausgabe
{ "answer": "Buyers compare on counter space and cleanup …", "sources": [ { "link": "https://example.com/category-guide", "title": "…", "snippet": "…" } ] }Wettbewerberseiten erfassen
Extrahiere zwei oder drei Wettbewerbs-Produktseiten mit Lesbarkeit als Markdown. Ziel sind die Aussage und der Preis auf der heutigen Seite, nicht ein umgeschriebenes Datenblatt. Halte URL und Inhalt zusammen und notiere das Erfassungsdatum – ein Preis ohne Datum ist ein Gerücht.
product-research.ts const PRODUCT_PAGES = [ { url: "https://example.com/product-a", title: "Example A — product page" }, { url: "https://example.com/product-b", title: "Example B — product page" }, ]; type ExtractData = { data: { content: string } }; const listings = await Promise.all( PRODUCT_PAGES.map((page) => felo<ExtractData>("/v2/web/extract", { url: page.url, output_format: "markdown", with_readability: true, }).then((extracted) => ({ ...page, content: extracted.data.content })), ), );Beispielausgabe
[ { "url": "https://example.com/product-a", "title": "Example A — product page", "content": "# Example A\n\nSpecs and price as displayed…" } ]Lesen, was Käufer auf X berichten
Anbieterseiten listen Funktionen, Käufer beschreiben Fehler. Suche Nische plus Reibungswörter – Versand, Qualität, Rückerstattung – in den letzten 30 Tagen und behalte Handle, Datum und Post-Link. Das sind Anekdoten, keine Nachfragedaten, und das Memo muss das sagen.
product-research.ts type XData = { data: { tweets: { content: string; author: { username: string }; created_at: string; metrics: { retweet_count: number; favorite_count: number; reply_count: number }; url: string; }[]; }; }; const since = Math.floor((Date.now() - 30 * 24 * 60 * 60 * 1000) / 1000); const search = await felo<XData>("/v2/x/tweet/search", { query: `"${niche}" (shipping OR quality OR refund)`, limit: 50, since_time: since, }); const complaints = search.data.tweets;Beispielausgabe
{ "data": { "tweets": [ { "content": "Third replacement in a year; the seal fails.", "author": { "username": "example_buyer" }, "created_at": "2026-10-19T15:02:00Z", "metrics": { "retweet_count": 1, "favorite_count": 12, "reply_count": 3 }, "url": "https://x.com/example_buyer/status/..." } ] } }Das Memo schreiben
Dieser Schritt ist normaler Code: Fasse Kategorieantwort, Erfassungsdaten, Käuferzitate und Quellenliste in einem Markdown zusammen. Halte offene Fragen ehrlich – das Memo ist nützlich, weil es trennt, was Seiten belegen, von dem, was du mit einem Lieferanten klären musst.
product-research.ts const capturedOn = new Date().toISOString().slice(0, 10); const memo = [ `# Product research — ${niche}`, "", "## Category context", context.data.answer, "", "## Competitor pages", ...listings.map( (page) => `- [${page.title}](${page.url}) — captured ${capturedOn}`, ), "", "## What buyers report", ...complaints.slice(0, 10).map( (post) => `- @${post.author.username} (${post.created_at.slice(0, 10)}): ${post.content}`, ), "", "## Sources", ...sources.map((source) => `- [${source.title}](${source.link})`), ].join("\n"); console.log(memo);Belege im LiveDoc ablegen
Führe es einmal pro Nische aus: LiveDoc anlegen und
short_idin der Konfiguration speichern. Füge Wettbewerberseiten und Chat-Quellen als URL-Ressourcen hinzu, damit das Archiv sie dedupliziert, und das Memo als Dokument. Vor der Bestellung kannst du Erfassungen durchsuchen und sehen, welche Preise sich bewegt haben.product-research.ts type LiveDocData = { data: { short_id: string } }; const research = await felo<LiveDocData>("/v2/livedocs", { name: `Product research: ${niche}`, description: "Competitor pages, buyer posts, and the memo", }); await felo(`/v2/livedocs/${research.data.short_id}/resources/urls`, { urls: [ ...listings.map((page) => ({ url: page.url, title: page.title })), ...sources.map((source) => ({ url: source.link, title: source.title })), ].slice(0, 10), }); await felo(`/v2/livedocs/${research.data.short_id}/resources/doc`, { title: `Product memo — ${capturedOn}`, content: memo, });Beispielausgabe
{ "short_id": "PvyKouzJirXjFdst4uKRK3" }
Enthalten
- Belegtes Kategoriebild aus Chat und die Seiten dahinter
- Wettbewerberseiten als Markdown mit Erfassungsdatum
- Käuferbeschwerden aus X mit Handles, Daten und Links
- Markdown-Memo aus diesen Eingaben
- Ein LiveDoc mit Belegen und Memo
Was es nicht macht
- Nur öffentliche Quellen; bezahlte Marktberichte, Lieferantenzitate und interne Verkaufsdaten außen vor
- Es schätzt Marktgröße, Verkaufsvolumen oder Marge nicht
- Preise werden wie erfasst dokumentiert, nie normalisiert oder gemittelt
- X-Posts sind Anekdoten, keine Nachfragedaten
- Es kontaktiert keine Lieferanten, bestellt nicht und ändert keine Listings
Fragen
Woher kommt der Marktkontext?
Die Chat API liefert eine belegte Antwort und die genutzten öffentlichen Seiten. Wettbewerberseiten kommen aus deinen URLs und werden mit Web Fetch extrahiert; Käufer-Posts kommen aus X Search. Private Verkaufsdaten sind nicht beteiligt.
Sagt es mir, ob ein Produkt verkauft wird?
Nein. Es ordnet öffentliche Belege – Kategorie-Kontext, erfasste Preise und Käuferbeschwerden – und schreibt das Unbekannte auf. Nachfragevalidierung braucht deine eigenen Daten, etwa Ads, Vorbestellungen oder Lieferantengespräche.
Was, wenn der Marktplatz die Extraktion blockiert?
Web Fetch lädt öffentliche Seiten einzeln, manche Sites blockieren. Nutze eine zugängliche Produkt- oder Lieferantenseite und lass das Memo die fehlende Erfassung markieren, statt einen Preis zu raten.
Wie verhindere ich veraltete Wettbewerbspreise?
Jeder Preis im Memo ist an Seiten-URL und Erfassungsdatum gebunden. Führe die Extraktion nahe der Kaufentscheidung erneut aus; das Archiv behält ältere Erfassungen, sodass du Preisänderungen siehst.
Kontaktiert es Lieferanten oder Verkäufer?
Nein. Der Workflow ist schreibgeschützt: Seiten extrahieren, öffentliche Posts suchen, lokales Memo schreiben. Er sendet keine Nachrichten, bestellt nicht und bearbeitet keine Listings.
Was kostet ein Recherche-Lauf?
Jeder Chat-, Extraktions- und X-Search-Aufruf verbraucht Credits; aktuelle Preise stehen auf der Preisseite. Der Prompt fragt vor Ausgaben nach Bestätigung.
Verwandte Workflows
Eine Frage in ein belegtes Research-Briefing verwandeln
Frage das Web, speichere die Seiten hinter der Antwort als Markdown, ergänze, was Praktiker auf X sagen, und halte die Belege in einem LiveDoc fest, das du später erneut durchsuchen kannst.
Workflow öffnenContentSozialgespräche in ein wöchentliches Listening-Briefing verwandeln
Suche die X-Posts der letzten Woche zu Marke und Wettbewerbern, ergänze belegten Web-Kontext, lies die Seiten dahinter und archiviere jede Ausgabe, damit die nächste Woche mit Bekanntem beginnt.
Workflow öffnenOfficeEine Rechercheseite in eine Präsentation verwandeln
Extrahiere die Seite, speichere sie als LiveDoc-Kontext, lass die PPT Task API das Deck bauen und frage ab, bis der fertige Link vorliegt.
Workflow öffnenMach es zu deinem
Dasselbe Rezept, angepasst an deinen tatsächlichen Ablauf.
Review-Transkripte ergänzen
Wenn es Review-Videos gibt, hole die Transkription mit YouTube Subtitling und ergänze zwei oder drei Zitate mit Timestamp im Käuferabschnitt. Ein Video-Review bleibt die Erfahrung einer Person, also behalte das Anekdoten-Label der X-Posts.
Zwei Kandidaten vergleichen
Führe dieselben Schritte pro Kandidat aus und stelle die Memos nebeneinander: behauptete Features, erfasster Preis, wiederkehrende Beschwerde und offene Frage. Der Vergleich bleibt qualitativ, bis du eigene Verkaufs- oder Retourendaten hast.
Vor der Bestellung aktualisieren
Führe die Extraktion einen Tag vor der Bestellung erneut aus. Behalte dasselbe LiveDoc und ergänze ein neues Memo, damit das Archiv zeigt, was sich zwischen Schreibtischrecherche und Kauf geändert hat – auch ein Preis außerhalb des Budgets.
Weiter
Die Referenzseiten hinter diesem Rezept und die nächsten Schritte.