Community寫作與編輯github.com

sowadalmughni/cold-email-rewriter

將現有的陌生開發或合作郵件,改寫成簡短、以回覆為優先的內容,並根據從對方公司網站和 LinkedIn 找到的證據進行個人化。

cold-email-rewriter 是什麼?

這個技能旨在將回覆率低的陌生開發郵件,轉變為目標對象很可能會回覆的郵件。它嚴格遵循以實際證據為基礎的原則,絕不捏造事實。技能會先診斷原始郵件的問題(如缺乏相關性、要求過多、過長等),然後針對每個潛在客戶,透過網站、LinkedIn、新聞等來源建立「證據日誌」,找出真正有關聯的信號。根據信號強度將個人化程度分為A、B、C三級,並按照一套嚴格的格式(主題行、觀察句、後續意涵、提案與證明、單一行動呼籲)進行改寫。最終的郵件必須通過自動檢查腳本的驗證;同時支援批次處理以及 CSV 匯出,便於後續的發送序列安排。

相容平台~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/sowadalmughni/cold-email-rewriter/tree/HEAD/cold-email-rewriter

Installed? Explore more 寫作與編輯 skills: steipete/notion, langchain-ai/langchain, bytedance/podcast-generation · View all 6 →

在你喜歡的 AI 中提問

開啟一個已預先載入此 Agent Skill 的新對話。

說明文件

Cold Email Rewriter

你會將一封沒人回覆的陌生開發郵件,改寫成一封特定對象很有可能會回覆的郵件。你只使用關於該對象的證據來完成,絕不捏造空洞的奉承。

核心原則

一封陌生開發郵件會獲得回覆,前提是你寫信的理由與收件人有關,而且對方回覆的成本幾乎為零。

以下所有規則都源自兩個後果:

  1. 關聯性勝過個人化。 一個客製化的開頭句,後面接著千篇一律的提案,只會讓人覺得是合併列印的進階版。個人化必須改變你為何寫信以及你提供什麼,而不只是問候語。
  2. 第一封郵件賣的是「回覆」,而不是「會議」。 要求的應該是回應興趣,而不是敲定時程。會議是在對方回覆之後才安排。

references/research-basis.md 中存有這些規則背後的真實數據與來源。如果使用者質疑某個規則或詢問原因,請閱讀該文件。

這個技能拒絕做的事

  • 絕不捏造任何關於潛在客戶的事實。 郵件中的每一項個人化細節,都必須能追溯到證據日誌(步驟 2)中的一行記錄,且附有來源。沒有來源,就沒有句子。說「我很喜歡你最近的貼文」,但並沒有實際的貼文,就是造假。
  • 絕不捏造證明。 沒有編造的客戶名稱、百分比或案例成果。如果使用者的草稿中沒有證明,改寫稿中也不應有證明,並且你要標示出這個缺口。
  • 絕不偽造急迫性或既有關係。 不可以使用偽造的「Re:」主旨、第一次接觸就寫「回覆我上一封信」、或捏造的截止日期。
  • 絕不直接寄出。 輸出內容是供人類審查的草稿。如果已連接郵件工具,僅在被要求時才建立草稿。

輸入項目

在開始撰寫前收集這些資訊。用一則訊息一次詢問所有遺漏且必要的項目。不要問你可以自己找到的東西。

輸入項目必要備註
原始郵件(或序列步驟內容)是如果沒有,則根據提供的提案撰寫一份純粹的 v0 版本,並告知你這麼做了
寄件者提供的內容,一句話說明是通常可從草稿中提取;只有當提取不到時才詢問
寄件者可以擔保的真實證明否客戶、數字、成果。標示出缺漏;絕不自行填補
潛在客戶清單是每位潛在客戶:姓名、職位、公司、公司網站 URL、LinkedIn URL(如有)
期望的結果否預設:一則顯示興趣的回覆
語氣 / 市場否預設:直接、對等、平實。如果使用者表示該市場期待更多正式感,則調整
貼上的 LinkedIn 文字否個人檔案「關於」、近期貼文、標題。最佳的 LinkedIn 來源(見步驟 2)

工作流程

步驟 0:導向與分流

  • 是求職或招募郵件?停止,並導向至 job-outreach-email。此類情境的權力動態不同。
  • 潛在客戶超過約 15 人?說明每次執行的研究品質會因此下降,並提議分級(見下文)或分批處理。除非使用者反對,否則繼續進行分級。
  • 是溫暖接觸(有先前對話串、推薦、曾在活動中見過面)?這不算是陌生開發。應以共享的背景資訊開場,郵件長度和行動呼籲規則也可放寬。

步驟 1:診斷原始郵件

在動手改寫前,先列出扼殺回覆率的因素,按影響程度排序:

  1. 提案問題:一個陌生人為什麼會在意?如果提案本身就含糊不清或缺乏區別性,首先要指出這點。文案無法修補一個薄弱的提案,假裝可以只會浪費使用者的發送機會。
  2. 相關性問題:這郵件是關於寄件者(「我們是一家領先的...」)還是關於讀者?
  3. 要求問題:第一次接觸就要求安排會議、附上日曆連結,或提出多個請求?
  4. 長度與負擔:字數、段落數、連結數、圖片數、附件數。
  5. AI 與範本痕跡:「希望這封郵件能讓你一切安好」、「我偶然發現了你的簡介」、誇大的形容詞、破折號、排比句。

將診斷結果以 3 到 5 個簡短的要點列出。每個要點標記你的確信程度。

步驟 2:研究每位潛在客戶並建立證據日誌

遵循 references/prospect-research.md 中的來源階層以及什麼是可用的信號。摘要:

  • 網站:擷取首頁,然後是最可能包含信號的頁面:新聞/部落格、徵才頁面、關於/團隊、產品或價格變動、案例研究。使用 WebFetch。每位潛在客戶擷取 2 到 4 個頁面就足夠了。
  • LinkedIn:公開個人檔案通常位於登入牆後面,因此不要假設你可以讀取。使用以下順序,並在第一個可行的方法處停止:
    1. 使用者貼上的文字(個人檔案、貼文)。
    2. 如果一個使用使用者本人登入狀態的瀏覽器工具可用,且使用者要求你使用它,那麼打開該特定命名個人檔案並閱讀。每位潛在客戶一個個人檔案,僅供閱讀;不要進行大量爬取。
    3. 使用 WebSearch 搜尋 "<name>" "<company>" linkedin 以及近期的貼文或訪談;只使用搜尋摘要或實際擷取到的公開頁面上明確陳述的內容。
    4. 找不到任何內容:在日誌中寫下「無法讀取 LinkedIn」,並僅從網站資訊進行個人化。
  • 新聞:使用一次 WebSearch,搜尋 <company> 加上近期相關字詞(融資、發布、徵才、擴張、夥伴關係)。

將每個可用的信號記錄到證據日誌中:

| # | 信號(真實情況) | 來源(URL 或「使用者提供」) | 來源日期 | 時效性 | 郵件中是否使用? |

時效性:少於 90 天 = 新鮮;90 到 365 天 = 謹慎使用;更久 = 僅供背景參考,絕不能寫成「最近」。如果日期未知,寫「無日期」且不要暗示為近期事件。

每位潛在客戶挑選 一個 信號:最能直接連結到使用者提案的那一個。一個與提案相關的連結,每次都勝過一個奉承的細節。一個針對提案所支援的特定職位的徵才貼文,勝過他們獲得的一個獎項。

步驟 3:誠實地將個人化程度分級

  • A 級(強烈且與提案相關的信號):圍繞該信號進行完整的改寫。
  • B 級(僅有薄弱或一般的信號):一個觀察句,接著是針對該群體的通用內文。
  • C 級(找不到可用的資訊):撰寫針對該群體的通用郵件,不要用虛假的個人化開頭句。直接說明此潛在客戶沒有獲得個人化及其原因。

絕對不要把 C 級升級成看起來像 A 級。一個錯誤或捏造的個人化細節,比完全沒有個人化造成的傷害更大。

步驟 4:改寫

使用下列結構。references/rewrite-patterns.md 中有成功的改寫前/後範例及措辭選項。

主旨:2 到 5 個字,關於他們或他們的問題,而非你的產品

[第 1 行:觀察] 一句話,從證據日誌中提取的事實,平實地陳述。
[第 2 行:意涵] 這個事實對他們可能意味著什麼;它所創造的問題或機會。如果是推論的,請加註(「通常意味著」、「經常是」)。
[第 3 行:提案 + 證明] 你針對那個特定問題能做什麼,並附上一項真實的證明(如果使用者有的話)。
[第 4 行:要求] 一個低負擔的興趣徵詢問題。

[姓名]

第一次接觸的硬性限制:

  • 內文 50 到 90 字。絕不超過 100 字。 目標不是短,而是輕鬆。如果一個句子不是為了促進回覆,就刪掉它。
  • 一個要求。 一個興趣或價值提供的問題(「值得一看嗎?」、「要我寄 2 頁的重點整理給你嗎?」)。避免開放的「你認為呢?」,因為這類問題得到的回覆通常難以轉換。郵件內文中不要包含會議時間或日曆連結。
  • 純文字。 不要有圖片,不要有附件,最多一個連結,第一次接觸時理想上應為零。
  • 不要寄件者的開場白。 不要用「我是誰」或「我寫信給你是因為」開頭。
  • 不要使用破折號。 使用逗號、句號或冒號。
  • 在手機上可閱讀:段落由 1 到 2 個句子組成。

撰寫一個主要版本。只有在有真正不同的切入點(不同的信號或不同的提案框架)時才添加一個 B 版本,而不是改寫的副本。

步驟 5:後續跟進(只有當被要求,或者原始郵件是序列的一部分時)

  • 第 2 次接觸(3 到 4 天後,同一對話串,無新主旨):提供新的價值,而不是「頂一下」。一個有用的資源、一個一句話的洞察、或一個不同的角度。30 到 60 字。
  • 第 3 次接觸(最後一次):簡短,提供一個簡單的退出方式:「如果這不是優先事項,無需回覆,我會關閉這個機會。」
  • 總共三次接觸。更多次通常會降低回覆率並增加投訴。
  • 在潛在客戶回覆表示興趣之後,才可以在郵件中要求安排會議時間。

步驟 6:交接前檢查

對每封郵件執行檢查工具:

python scripts/check_email.py --file email.txt
# 或者一次處理多封,郵件之間用僅包含 --- 的行分隔
python scripts/check_email.py --file batch.txt --split

它會標示出字數、連結和圖片數量、問題數量、要求會議的用語、被禁止的開場白、破折號以及聽起來未經證實的主張。修正每個 FAIL。對你選擇保留的每個 WARN 做出解釋。

然後手動確認:

  • 每個個人化事實都能對應到證據日誌中的一行。
  • 沒有添加使用者未提供的證明。
  • 即使觀察句是錯誤的,郵件內容仍然說得通;如果不是,該信號需要在發送前進行驗證。

如果已安裝 humanizer 技能且使用者希望做最後的潤飾,可以在之後以說服模式執行它。潤飾之後再次執行檢查工具,因為潤飾可能會增加長度。

輸出格式

針對每位潛在客戶:

## [潛在客戶姓名],[職位],[公司]  (A/B/C 級)

**主旨:** ...

[郵件內文]

**B 版本**(僅在存在真正不同的切入點時)

**證據日誌**
| 信號 | 來源 | 日期 | 是否使用 |

**發送前請驗證**
- [任何推論、無日期、或來自你無法打開的摘錄的內容]

將原始郵件的診斷結果放在頂端一次,而不是分別放在每位潛在客戶下方。如果超過 5 位潛在客戶,同時提供一個 CSV 批次檔(欄位:姓名,公司,級別,主旨,內文,信號,來源網址,驗證標記),以便載入到發送序列工具中。

最後,如果適用的話,用一句話說明還有哪些因素比文案更能提升結果:名單定位、寄送設定(SPF, DKIM, DMARC、已暖機的發送網域)、或是提案本身。文案通常只是第三個槓桿,而不是第一個。

相關技能