返信が来る状態を作るSaaS

Page content

いい構成です。ただしそのまま作ると**「ただのツール」で終わるリスクが高い**ので、最初にMVPの“勝ち筋”を固定します。

結論:
👉 「営業リスト生成」ではなく「返信が来る状態を作る」SaaSにする


① MVPのコア定義(ここがズレると全部死ぬ)

❌ よくある失敗

  • リード抽出

  • メール生成

  • CRMっぽい管理

👉 競合(Apollo / Outreach / Salesloft)に勝てない


✅ MVPの正解

👉 「1クリックで“返信される営業”を作る」

最小価値:

  • ターゲット入力

  • AIが「刺さる理由」を生成

  • DM/メール文生成

  • 送信 or コピー


② MVP機能(削りまくり版)

必須機能(これだけ)

  1. ユーザー登録・ログイン(Clerk)

  2. ターゲット入力フォーム

  3. AI生成(Sonnet)

  4. 結果表示(営業文 + 理由)

  5. 保存(Supabase)

  6. 課金(Stripe:後からでOK)


削る機能(絶対やらない)

  • CRM

  • チーム機能

  • 自動送信(最初は不要)

  • 分析ダッシュボード

👉 “生成して終わり”でいい


③ 全体アーキテクチャ

[Astro Frontend]
   ↓
[Cloudflare Workers API]
   ↓
[Clerk Auth]
   ↓
[Supabase DB]
   ↓
[Claude Sonnet API]

④ DB設計(Supabase)

users(Clerk連携)

id (Clerk user_id)
email
created_at

generations

id
user_id
target_input
ai_output
created_at

⑤ 画面設計(Astro)

① LP

  • 「返信が来る営業をAIで作る」

  • CTA → Signup


② ダッシュボード

[入力]
- 業界
- 会社名
- 担当者
- 課題(任意)

[ボタン]
→ Generate

③ 結果画面

① 刺さる理由(WHY)
② 営業メッセージ(コピー可)

⑥ API設計(Cloudflare Workers)

POST /generate

export async function onRequestPost(context) {
  const { target } = await context.request.json()

  const response = await fetch("https://api.anthropic.com/v1/messages", {
    method: "POST",
    headers: {
      "x-api-key": API_KEY,
      "Content-Type": "application/json"
    },
    body: JSON.stringify({
      model: "claude-3-sonnet",
      max_tokens: 500,
      messages: [
        {
          role: "user",
          content: `
あなたはトップ営業です。

ターゲット:
${target}

以下を出力:
1. なぜ刺さるか(心理)
2. DM文(短く)
`
        }
      ]
    })
  })

  const data = await response.json()
  return new Response(JSON.stringify(data))
}

⑦ Clerk(認証)

やること:

  • Middlewareで保護

  • user_idをSupabaseと紐付け

const { userId } = auth()

👉 userIdをそのままDBキーにする


⑧ Supabase(RLS)

超重要

👉 ユーザーごとにデータ分離

create policy "Users can access own data"
on generations
for all
using (auth.uid() = user_id);

⑨ Stripe(後付け)

最初はこれだけ:

  • Free:3回生成

  • Pro:無制限

やること:

  • Webhookで制御

⑩ 開発スケジュール(リアル)

Day1

  • Astroセットアップ

  • Clerk導入

Day2

  • フォーム作成

  • API接続(Sonnet)

Day3

  • Supabase保存

Day4

  • UI改善

  • コピー機能

Day5

  • デプロイ(Cloudflare)

Day6

  • LP作成

Day7

  • 初ユーザー獲得

⑪ MVPで一番重要な部分

👉 技術じゃない

「プロンプト」が全て

・誰に
・なぜ
・どの文脈で

これが弱いと終わる


⑫ 初期ユーザー獲得(超重要)

やること(これだけ)

  • LinkedInで50人に手動送信

  • 「あなた向けに作りました」


メッセージ例

I built a tool that generates outreach messages 
based on your business.

Want me to try it for you?

まとめ

このMVPの本質:

👉 「AIツール」ではない
👉 「営業の成功確率を上げる武器」


必要なら次はこれ出せます👇

  • 「コピペで動く完全コード(Clerk + Supabase + Workers)」

  • 「勝てるプロンプト設計(かなり実践)」

  • 「最初の10社を取る営業スクリプト(英語/日本語)」