研究
第一次外聯之前研究一個目標客戶
讀目標公司自己的網站、近期報導和公開動態,再寫一份客戶簡報:最近動作、可能的優先順序、開場話題,以及誠實的未知項。
複製 prompt
把方括號裡的欄位替換掉,然後貼到 Claude Code、Codex 或任何能存取終端機的 AI。它會安裝 Felo skill、在花額度前詢問,並執行這套工作流程。
在[外聯 / 需求訪談 / 續約]之前,為[公司名稱或網域]製作一份客戶簡報。 我們的產品:[產品或服務]。我們關注的買家:[角色]。近期動態時間範圍:[過去 90 天 / 過去 12 個月]。 閱讀他們自己的網站、公開報導和公開貼文。輸出一份 Markdown 簡報,包含: 1. 他們做什麼,一段話,附來源。 2. 近期動態:發布、募資、招聘、管理層、合作——附日期和連結。 3. 本季可能的優先事項,明確標示為推論。 4. 開場話題:三個具體觀察,每個都附來源。 5. 未知項:你無法從公開來源核實的內容。 6. 完整來源清單。 規則: - 不要編造聯絡人姓名、電子郵件、電話、員工人數、營收或募資額。 - 只用公開來源:不要私人資料、不要僅登入可見的頁面、不要爬取的目錄。 - 不要寫入 CRM 或任何其他系統。簡報是供人審閱的檔案。 - 每個推論都標示為推論;事實保留連結和日期。 - 不要把買家的意圖寫成事實。 - 消耗額度前,先展示預計執行的 API 呼叫並等待我批准。 - 不要傳送、排程、發布或傳訊息給任何人。 - 將結果寫入 ./account-brief.md,並在對話中總結。
複製的內容也包含安裝步驟和安全規則。
你會得到什麼
一次執行的範例輸出,不是即時生成。
客戶簡報 — [公司],2026-10-30 核對
他們做什麼
為中型物流商製造倉庫揀選機器人。來源:https://example.com/about(2026-10-30 核對)。
近期動態
- 開設第二個組裝基地 — https://example.com/news/expansion(2026-10-24)
- 招聘「部署營運」團隊 — https://example.com/careers(2026-10-30 核對)
- 其帳號關於合作夥伴整合的貼文 — @example_company(2026-10-21)
可能的優先事項(推論)
在更多站點更快部署。來自擴張貼文與新部署職位的推論——不是已聲明的計畫,也未在公開管道確認。
開場話題
- 第二個基地是新的:問站點不同時部署手冊會怎麼變。來源:https://example.com/news/expansion
- 專職部署營運職位暗示業務與安裝之間的交接。來源:https://example.com/careers
未知
- 目前誰負責部署營運:公開來源暫無資料。
- 車隊規模與合約金額:暫無資料。
來源
- https://example.com/about
- https://example.com/news/expansion
- https://example.com/careers
實際呼叫
給開發者:同一套工作流程的可複製程式碼,依執行順序排列。
展開實際 API 呼叫
先拿公司概覽
用 Chat 問公司做什麼、最近有什麼公開變化,保留它引用的來源。
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);範例輸出
{ "answer": "The company builds …", "sources": [ { "link": "https://example.com/about", "title": "…", "snippet": "…" } ] }讀官網、定價和招聘
用 Web Fetch 讀 About、定價和招聘頁,看清他們的產品、客戶和正在招的職位。
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 }; }), );範例輸出
{ "url": "https://example.com/careers", "checkedAt": "2026-10-30", "content": "# Careers\n\nOpen roles: deployment operations…" }看最近 90 天的公開動態
在 X 搜公司名和產品名,保留最近 90 天的公開貼文、帳號和日期。
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);範例輸出
{ "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 } } ] } }寫客戶簡報
寫公司概覽、最近動作、可能優先順序、開場話題、未知項和來源。
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);範例輸出
# Account brief — Example Robotics
存進 LiveDoc
把簡報和來源存進 LiveDoc,下一次跟進可以直接重複使用。
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 LiveDoc範例輸出
{ "short_id": "PvyKouzJirXjFdst4uKRK3" }
包含什麼
- 來自 Chat 的有來源公司概覽
- 官網、定價頁和招聘頁的 Markdown 擷取
- X 上帶日期的公開動態
- 結構化客戶簡報
- 保存證據的 LiveDoc
不做什麼
- 不提供聯絡人電子郵件、電話或個人資料
- 不讀私有資料或僅登入可見的頁面
- 不寫 CRM,也不替你發訊息
- 人數、營收、募資只在來源明確給出時記錄
- 優先順序和意圖會明確標為推論
常見問題
它會給聯絡人電子郵件嗎?
不會。工作流程只做公開研究,不提供電子郵件、電話或個人資料。
資料來自哪裡?
Chat 回傳有來源的公司概覽,Web Fetch 讀官網、定價和招聘頁,X Search 補充公開動態。每條都保留連結和日期。
可以研究非科技公司嗎?
可以。公開資訊少的行業,簡報會明確標出未知項,而不是編造。
會寫進 CRM 嗎?
不會。它只產生 Markdown 簡報,CRM 寫入需要你自己的整合。
優先順序是事實嗎?
不是。簡報把「可能優先順序」標為推論,並給出依據;業務仍需自己判斷。
一次要花多少?
Chat、擷取和 X 搜尋都按用量計費;目前費率在價格頁面,prompt 會先請求確認。
相關工作流程
改成你的版本
同一套配方,依你實際的交付方式調整。
只研究一個細分
把範圍縮到某個行業或地區,簡報會更具體。
加入最近一次發佈會
把發佈會頁面作為額外來源,開場話題會更有時效性。
和競品拆解一起用
把客戶簡報裡的優先順序與競品拆解裡的定位對照,找到差異化切入點。
繼續深入
這套配方背後的參考頁面,以及下一步可以看什麼。