Badania
Zbadaj konto docelowe przed pierwszym kontaktem
Przeczytaj stronę firmy, ostatnie relacje i to, co publikują, a potem napisz brief konta z ostatnimi ruchami, prawdopodobnymi priorytetami, tematami rozmowy i uczciwie nieznanymi.
Skopiuj prompt
Podmień pola w nawiasach kwadratowych i wklej do Claude Code, Codex albo AI z dostępem do terminala. Instaluje skill Felo, pyta przed wydaniem kredytów i uruchamia workflow.
Przygotuj briefing konta [nazwa firmy lub domena] przed [kontakt / rozmowa discovery / odnowienie]. Nasza oferta: [produkt lub usługa]. Kupujący, na którym nam zależy: [rola]. Okres ostatnich ruchów: [ostatnie 90 dni / ostatnie 12 miesięcy]. Przeczytaj ich stronę, publiczne relacje i publiczne posty. Przygotuj briefing w Markdown zawierający: 1. Czym się zajmują, w jednym akapicie, ze źródłami. 2. Ostatnie ruchy: premiery, finansowanie, rekrutacja, kierownictwo, partnerstwa — z datami i linkami. 3. Prawdopodobne priorytety na ten kwartał, wyraźnie oznaczone jako wnioski. 4. Tematy do rozpoczęcia rozmowy: trzy konkretne obserwacje, każda ze źródłem. 5. Niewiadome: czego nie udało się zweryfikować w publicznych źródłach. 6. Pełną listę źródeł. Zasady: - Nigdy nie wymyślaj nazwiska kontaktu, e-maila, telefonu, liczby pracowników, przychodu ani kwoty finansowania. - Tylko publiczne źródła: bez danych prywatnych, stron wymagających logowania i scrapowanych katalogów. - Nie zapisuj w CRM ani innym systemie. Briefing to plik, który przegląda człowiek. - Oznaczaj każdy wniosek jako wniosek; fakty zachowuj z linkami i datami. - Nie przedstawiaj intencji kupującego jako faktu. - Zanim zużyjesz kredyty, pokaż planowane wywołania API i poczekaj na moją zgodę. - Nie wysyłaj, nie planuj, nie publikuj i nie pisz do nikogo. - Zapisz wynik w ./account-brief.md i podsumuj go w czacie.
Kopia zawiera też kroki instalacji i zasady bezpieczeństwa.
Co otrzymujesz
Przykładowy wynik jednego uruchomienia. Nie generowanie na żywo.
Briefing konta — [firma], sprawdzono 2026-10-30
Czym się zajmują
Buduje roboty do kompletacji magazynowej dla średnich operatorów logistycznych. Źródło: https://example.com/about (sprawdzono 2026-10-30).
Ostatnie ruchy
- Otworzył drugi zakład montażowy — https://example.com/news/expansion (2026-10-24)
- Rekrutuje zespół „deployment operations” — https://example.com/careers (sprawdzono 2026-10-30)
- Post ich konta o integracji partnerskiej — @example_company (2026-10-21)
Prawdopodobne priorytety (dedukcja)
Szybsze wdrożenia w większej liczbie lokalizacji. Dedukcja z posta o ekspansji i nowej roli wdrożeniowej — nie ogłoszony plan i publicznie niepotwierdzony.
Tematy na start rozmowy
- Druga lokalizacja jest nowa: zapytać, jak zmienia się playbook wdrożenia, gdy lokalizacje się różnią. Źródło: https://example.com/news/expansion
- Dedykowana rola deployment operations sugeruje przekazanie między sprzedażą a instalacją. Źródło: https://example.com/careers
Niewiadome
- Kto dziś odpowiada za deployment operations: brak danych publicznych.
- Wielkość floty i wartości kontraktów: brak danych.
Źródła
- https://example.com/about
- https://example.com/news/expansion
- https://example.com/careers
Dokładne wywołania
Dla deweloperów: ten sam workflow jako kod, w kolejności wykonania.
Pokaż rzeczywiste wywołania API
Weź przegląd firmy
Zapytaj Chat, czym firma się zajmuje i jakie są ostatnie publiczne zmiany, zachowując cytowane źródła.
account.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 company = "Example Robotics"; const domain = "example.com"; const buyerRole = "Head of Operations"; const overview = await felo<ChatData>("/v2/chat", { query: `What does ${company} do, who buys from it, and what changed in the last 90 days?`, }); const seedSources = overview.data.resources.slice(0, 5);Przykładowy wynik
{ "answer": "The company builds …", "sources": [ { "link": "https://example.com/about", "title": "…", "snippet": "…" } ] }Przeczytaj stronę, ceny i kariery
Przez Web Fetch przeczytaj About, ceny i kariery, by zrozumieć produkt, klientów i otwarte role.
account.ts type ExtractData = { data: { content: string } }; const companyPages = [ { url: `https://${domain}/about`, title: "About" }, { url: `https://${domain}/pricing`, title: "Pricing" }, { url: `https://${domain}/careers`, title: "Careers" }, ]; const pages = await Promise.all( companyPages.map(async (page) => { const res = await felo<ExtractData>("/v2/web/extract", { url: page.url, output_format: "markdown", with_readability: true, with_cache: true, }); const checkedAt = new Date().toISOString().slice(0, 10); return { ...page, checkedAt, content: res.data.content }; }), );Przykładowy wynik
{ "url": "https://example.com/careers", "checkedAt": "2026-10-30", "content": "# Careers\n\nOpen roles: deployment operations…" }Zobacz publiczne sygnały z 90 dni
Szukaj na X nazwy firmy i produktu, zachowując publiczne posty, konta i daty z ostatnich 90 dni.
account.ts type XData = { data: { tweets: { content: string; author: { username: string }; created_at: string; metrics: { retweet_count: number; favorite_count: number }; }[]; }; }; const since = Math.floor((Date.now() - 90 * 24 * 60 * 60 * 1000) / 1000); const posts = await felo<XData>("/v2/x/tweet/search", { query: `"${company}" (hiring OR launch OR partnership OR expansion)`, limit: 20, since_time: since, }); const recent = posts.data.tweets.slice(0, 5);Przykładowy wynik
{ "data": { "tweets": [ { "content": "We just opened our second assembly site", "author": { "username": "example_company" }, "created_at": "2026-10-21T14:02:00Z", "metrics": { "retweet_count": 4, "favorite_count": 31 } } ] } }Napisz brief konta
Opisz przegląd, ostatnie ruchy, prawdopodobne priorytety, tematy rozmowy, niewiadome i źródła.
account.ts const today = new Date().toISOString().slice(0, 10); const accountBrief = [ `# Account brief — ${company}`, `Checked ${today}. Buyer role: ${buyerRole}.`, "", "## What they do", overview.data.answer, "", "## Recent moves", ...recent.map( (post) => `- ${post.created_at.slice(0, 10)}: ${post.content} (from @${post.author.username})`, ), ...pages.map((page) => `- ${page.title} page captured ${page.checkedAt}: ${page.url}`), "", "## Likely priorities (inference)", "<!-- One or two sentences from the moves above. Mark them as inference, never a stated plan. Delete this comment when filled. -->", "", "## Conversation starters", ...recent.slice(0, 3).map( (post) => `- Ask about: ${post.content.slice(0, 100)} (dated ${post.created_at.slice(0, 10)})`, ), "", "## Unknowns", "- Who owns the workflow we sell into: Not available from public sources.", "- Contract values and team size: Not available.", "", "## Sources", ...pages.map((page) => `- ${page.title}: ${page.url}`), ...seedSources.map((source) => `- ${source.title}: ${source.link}`), ].join("\n"); console.log(accountBrief);Przykładowy wynik
# Account brief — Example Robotics
Zapisz w LiveDoc
Zapisz brief i źródła w LiveDoc, by użyć ich przy kolejnym kontakcie.
account.ts type LiveDocData = { data: { short_id: string } }; const accountDoc = await felo<LiveDocData>("/v2/livedocs", { name: `Account: ${company}`, description: `Briefs and sources checked ${today}`, }); await felo(`/v2/livedocs/${accountDoc.data.short_id}/resources/urls`, { urls: [ ...pages.map((page) => ({ url: page.url, title: page.title })), ...seedSources.map((source) => ({ url: source.link, title: source.title })), ], }); await felo(`/v2/livedocs/${accountDoc.data.short_id}/resources/doc`, { title: `Account brief ${today}`, content: accountBrief, }); console.log(accountDoc.data.short_id); // the next call reuses this LiveDocPrzykładowy wynik
{ "short_id": "PvyKouzJirXjFdst4uKRK3" }
Co zawiera
- Przegląd firmy ze źródłami z Chat
- Strona, ceny i kariery jako Markdown
- Datowane publiczne posty na X
- Ustrukturyzowany brief konta
- LiveDoc z dowodami
Czego nie robi
- Nie podaje e-maili, telefonów ani danych osobowych
- Nie czyta prywatnych danych ani stron tylko po logowaniu
- Nie zapisuje do CRM i nie wysyła wiadomości
- Liczba pracowników, przychody i finansowanie tylko z wyraźnym źródłem
- Priorytety i intencje oznaczone jako inferencja
Pytania
Czy podaje e-maile kontaktowe?
Nie. Workflow robi tylko publiczne badanie i nie podaje e-maila, telefonu ani danych osobowych.
Skąd dane?
Chat zwraca przegląd ze źródłami, Web Fetch czyta stronę, ceny i kariery, X Search dodaje publiczne posty. Każdy element zachowuje link i datę.
Czy bada firmy poza technologią?
Tak. Gdzie publicznych informacji jest mało, brief oznacza niewiadome zamiast wymyślać.
Czy zapisuje do CRM?
Nie. Tworzy tylko brief Markdown; integracja z CRM należy do ciebie.
Czy priorytety to fakty?
Nie. Brief oznacza „prawdopodobne priorytety” jako inferencję i pokazuje podstawę; decyzja końcowa należy do sprzedawcy.
Ile kosztuje jedno uruchomienie?
Chat, ekstrakcja i X Search są rozliczane według użycia; aktualne stawki na stronie cen, a prompt pyta o zgodę przed wydaniem.
Powiązane workflowy
Zamień pytanie rynkowe w brief go-to-market
Zadaj rynkowi precyzyjne pytanie, przeczytaj strony kategorii i cen za odpowiedzią, zbierz, jak kupujący opisują problem na X, i zapisz brief GTM z twierdzeniami ze źródeł i otwartymi pytaniami.
Otwórz workflowBadaniaZbuduj analizę konkurencji, której użyje zespół sprzedaży
Zbierz strony konkurenta, otaczające go relacje i to, co kupujący mówią na X, a potem złóż analizę, w której każde twierdzenie ma źródło, datę i status.
Otwórz workflowTreściZamień brief produktu w landing page
Zbadaj publiczność, zapisz brief w LiveDoc, utwórz z tego kontekstu zadanie Landing Page i pytaj, aż hostowana strona będzie gotowa.
Otwórz workflowDostosuj
Ta sama receptura, dopasowana do tego, jak naprawdę dostarczasz.
Tylko jeden segment
Ogranicz do branży lub regionu, by brief był konkretniejszy.
Dodaj ostatni launch
Dodaj stronę launchu jako dodatkowe źródło bieżących tematów.
Razem z analizą konkurencji
Porównaj priorytety z briefu z pozycjonowaniem z analizy, by znaleźć kąt.
Idź dalej
Strony referencyjne za tą recepturą i kolejne kroki.