インディーハッカー道
ついに実現!悩ましい営業メールをJevで撃退できた。プレスリリース後の逆営業も、Google・Zoom経由の売り込みも仕分ける
AI活用

ついに実現!悩ましい営業メールをJevで撃退できた。プレスリリース後の逆営業も、Google・Zoom経由の売り込みも仕分ける

·7分で読める
平城寿
平城 寿(ひらじょう ひさし)
@SOHO創業者 / インディーハッカー

この記事のポイント

  • ✓フィルタをすり抜ける営業メールを
  • ✓文章を読んで判定する AI の Jev で撃退しました
  • ✓プレスリリース後に増えた逆営業

毎日届く営業メールに、受信箱を埋められていませんか。 迷惑メールにするほどではない、でも読む暇もない。 フィルタを作っても、すり抜けてくる。 その悩ましい営業メールを、ついに撃退できました。 使ったのは、文章を読んで判定してくれる AI の Jev です。

きっかけは、プレスリリースでした。 プレスリリースを出すと、問い合わせが増えます。 ただ、増えるのはお客様からの連絡だけではありません。 「御社の取り組みを拝見しました」から始まる、セミナーの案内、資料の無料配布、展示会への出展のお誘い、広告運用の提案。 いわゆる逆営業です(笑)。

私は1人で10以上のプロダクトを運営しています。 その中の1つ、フリーランス向けの求人サイト@SOHO の窓口アドレスに、プレスリリースを出したあとから売り込みが目に見えて増えました。

振り分けのルールでは追いつかない

最初は Gmail のフィルタで片付けようとしました。 ところが、うまくいきません。

  • 差出人で弾こうにも、売り込みの差出人は毎回違う
  • 件名の「セミナー」「ウェビナー」で弾くと、本物の問い合わせに同じ語が入っていたときに取りこぼす
  • 「お問い合わせありがとうございます」は、フォームの自動返信にも、人が書いた丁寧な返事にも出てくる

いちばん厄介なのは、大きなサービスの仕組みを借りてくる売り込みです。 英語圏の会社がよく使う手で、Google ドキュメントに提案書を書き、こちらのアドレスに「共有」してきます。 すると届くメールの差出人は Google になります。 Google からの通知を迷惑メール扱いにすれば、本当に必要な共有まで届かなくなるので、軽々しく拒否できません。

Zoom のウェビナーに勝手に招待してくる手口もあります。 こちらも差出人は Zoom の共通アドレスなので、簡単には迷惑メールに回せません。 今回も、この手のメールが何件も届いていました。 正直、いちいち振り分けるのが面倒です(笑)。

@SOHO では、求人を出していそうな会社に、問い合わせフォームから掲載のご案内を送っています。 そのため受信箱には、売り込みに加えて、フォームの受付控え(自動返信)と、担当者の方が書いてくださった本物の返事が混ざって届きます。 ここを取り違えると、お礼を返すべき方を放置することになります。

言い回しで決めるルールで、実際に失敗もしました。 「今回は見送らせていただきます」という返事を、お断りとして送信禁止にしてしまったのです。 読めば分かるとおり、これは「今回は」であって「二度と送るな」ではありません。

ルールを書き足すほど例外が増え、受信箱は溜まる一方でした(笑)。

人なら一瞬で分かる、を機械にやらせる

人がメールを開けば、売り込みか返事かは一瞬で分かります。 欲しいのは、その「読めば分かる」判断です。

そこで、TypeSafe AI の Jev という判定用のAIを使いました。 Jev は文章を生成するAIではなく、渡した文章について「はい/いいえ」や選択肢で答えを返す、判定に特化したAIです。 答えは「はい」である確率で返ってくるので、どこから先を機械に任せるかを数字で決められます。

1通のメールについて聞いたのは、次の5つです。

  • 人が個別に書いた返事か(自動の受付控えや宣伝ではないか)
  • こちらから返信するのがふさわしいか
  • 先方が自社の商品やセミナーを売り込んでいるか
  • 打ち合わせや面談を求めているか
  • 今後は連絡しないでほしいと、はっきり求めているか

ルールを書き足す代わりに書いたのは、この日本語の問い5つだけでした。

結果:92通が2通に

2026年10月2日、受信箱には92通が溜まっていました。 仕分けを流した結果です。

  • 宣伝やセミナー案内として「返信不要」へ移したもの:約70通
  • フォームの自動返信の控えとして片付けたもの:約15通
  • 宛先不明で戻ってきたメール:3通
  • 受信箱に残ったもの:2通(Google Workspace の請求書と、返信が必要な1通)

残った2通は、どちらも私が自分で見るべきものでした。 いまは5分おきに同じ仕分けが自動で回っているので、受信箱には人が読むべきメールしか残りません。

任せきりにしないための決めごと

AIの判定は便利ですが、何でも任せると別の事故が起きます。 次の4つを決めてから任せました。

  • コードで決まるものは、先にコードで決める。 宛先不明の戻りは差出人で分かるので、AIに聞かない。請求・支払い・契約の連絡は、AIの判定にかかわらず片付けない
  • 2回聞いて、答えが揃ったときだけ機械が決める。 同じメールでも、聞くたびに確率は少し揺れる。揺れて答えが割れたものは、人が見る側へ回す
  • 取り返しのつかない判定ほど線を高くする。 「送信禁止」は一度付けると二度と案内できないので、ほかの判定より高い確率を求める
  • 線は、実際の受信箱で測って引く。 26通で測ったところ、人の返事は返信の要否で 0.61〜0.93、宣伝や自動返信は 0.05〜0.49 に分かれた。既定の線のままでは、ほぼ全部が「決めきれない」になっていた

導入の手順

同じ仕分けを自分の受信箱で動かすまでの手順です。 プログラムを書かずに試すところから始められます。

1. Playground で、手元のメールを1通判定させてみる

TypeSafe のコンソールの Playground を開いてログインします。

https://console.typesafe.ai/playground

受信箱から営業メールを1通選び、差出人・件名・本文をそのまま貼り付けます(これが判定の対象になります)。 次に、問いを1つ足します。 型は noul(はい/いいえ)を選び、説明に「差出人は、自社の商品・サービス・セミナーなどをこちらに売り込もうとしている」と書きます。 実行すると、「はい」である確率が 0〜1 の数字で返ってきます。 人の返事と営業メールを何通か入れ替えて、数字がどう分かれるかを眺めてみてください。

2. API キーを取る

コンソールのキーの画面で API キーを作ります。

https://console.typesafe.ai/keys

キーはプログラムの中に書かず、環境変数(例:TYPESAFE_API_KEY)に入れておきます。

3. メール1通につき1回、5つの問いをまとめて送る

API は POST を1本呼ぶだけです。 state に差出人・件名・本文を入れ、questions に問いを並べます。 問いは1回の呼び出しにまとめます。 費用の大半は本文を送る分なので、問いごとに呼び出すと同じ本文を何度も送ることになります。

curl -X POST https://api.typesafe.ai/v1/systemone \
  -H "Authorization: Bearer $TYPESAFE_API_KEY" \
  -H "Content-Type: application/json" \
  -d @- <<'EOF'
{
  "model": "jev-latest",
  "state": "差出人: ...\n件名: ...\n\n本文...",
  "questions": {
    "human": { "type": "noul", "instructions": "このメールは、担当者が個別に書いた返事である。自動の受付控えや宣伝・メールマガジンは当たらない。" },
    "needReply": { "type": "noul", "instructions": "このメールに対して、こちらから返信するのが礼儀上または商談上ふさわしい。" },
    "counterSales": { "type": "noul", "instructions": "差出人は、自社の商品・サービス・セミナーなどをこちらに売り込もうとしている。" },
    "meetingRequest": { "type": "noul", "instructions": "差出人は、打ち合わせ・面談・訪問の場を設けたいと求めている。" },
    "stopRequest": { "type": "noul", "instructions": "差出人は、今後こちらから連絡を送らないでほしいと、はっきり求めている。「今回は見送る」のように今回だけを断っているものは当たらない。" }
  }
}
EOF

返ってくる answers の中に、問いごとの noul(「はい」である確率)が入っています。

4. 2回送り、揃ったときだけ振り分ける

同じメールを2回送り、2回とも線の同じ側に落ちたときだけ振り分けます。 割れたものは受信箱に残し、自分で見ます。 私の場合の振り分け先は次のとおりです。

  • counterSales が「はい」:「返信不要」のラベルを付けて受信箱から外す
  • human が「いいえ」で、自動返信の形をしているもの:控えとして片付ける
  • needReply が「はい」:「要返信」のラベルを付けて受信箱に残す
  • stopRequest が「はい」:今後の案内を止める(線は高めに 0.7)

ラベル付けと受信箱から外す操作は、Gmail API でメールにラベルを付け、INBOX のラベルを外して行っています。

5. 線は、自分の受信箱で測って決める

最初に20〜30通を流し、問いごとの数字を並べて見ます。 私の受信箱では、返信の要否が、人の返事で 0.61〜0.93、営業メールや自動返信で 0.05〜0.49 に分かれたので、線を 0.6 にしました。 問いの組を変えると数字も動くので、問いを足したら測り直します。

6. 定期的に回す

あとは、この処理を5分おきなどで定期的に動かすだけです。 同じメールを何度も判定しないよう、判定済みのメールの ID と結果を手元に控えておきます。

向いている人、向いていない人

向いているのは、ルールで振り分けようとして例外に追われている人です。 差出人もキーワードも当てにならない、でも人が読めば一瞬で分かる、という種類のメールは、判定用のAIに任せると一気に片付きます。

向いていないのは、件数が少ない人です。 1日に数通なら、自分で開いたほうが早いです。

プレスリリースを出すと、良い連絡と一緒に売り込みも増えます。 売り込みを減らすことはできませんが、自分が読む前に仕分けておくことはできます。

TypeSafe AI(Jev)の資料はこちらです。

https://docs.typesafe.ai/introduction

シェア
#AI#Gmail#業務効率化#メール仕分け#TypeSafe
平城寿
平城 寿(ひらじょう ひさし)
インディーハッカー。2004年に@SOHOを創業し、20年間1人で運営。
フォロー