1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

ChatGPTで営業メール解析:1ヶ月使ってわかった“自分用ツール”の落とし穴

Last updated at Posted at 2025-08-05

はじめに

以前こちらの記事で作ったアプリを、一ヶ月ほど実際に使ってみました。

ChatGPTで営業メールを要約 → DBに保存 → クエリで探せる仕組みを作ってみた
https://qiita.com/shrimpTail/items/530e8c54e14a048e9394

一ヶ月ってみて思った、「やっぱり保守って大事」

自分で作ったアプリ、自分で使ってみて思ったんですが……

ちょっと使いづらい!

いや、構想、設計はちゃんと考えたつもりだったんですが、運用して初めて気づく不便さってありますよね。
というわけで、リリース後一ヶ月、自分自身で使ってみて感じたこと、そして実際に行った改善をまとめておきます。

不便だったポイントと改善した内容

▶ クエリが流れすぎて何が起きてるのか分からん

処理のログを出すのは良いこと……なんですが、保存用SQLのクエリが全部表示されていて、もうわけが分からない

INSERT INTO emails (...) VALUES (...);
INSERT INTO email_projects (...) VALUES (...);
-- (以下無限に続く)

改善:ENVでログ出力ON/OFF切り替え

envで、保存系のクエリ表示を抑制できるようにしました。
デフォルトでは表示しない、デバッグ時だけ有効化できるように。

▶ どのメールを保存してるのか分かりづらい

メールはAPIから順に取って保存してるんですが、

え?今のメール、どれ?どこ?

みたいなことが頻発。
クエリは流れるけど、処理対象が不明瞭という状態に。

改善:GmailのメッセージIDをログに表示

これで「どのメールか」がちゃんと特定できるようになりました。
今後、処理失敗の調査や個別再取得にも使えるので、一石二鳥。

▶ メールの整理がしたい

一覧画面を作る予定とはいえ、「これはチェック済み」「これは良かった」「これは微妙…」みたいにステータスをつけたい。

改善:emails テーブルに3つの状態カラムを追加

  • is_checked: チェック済み
  • is_good: 良さそう!
  • is_bad: 微妙かも…
    一覧画面を作る際にはこの3つでフィルタ・ソートが可能になります。

番外編:Claude Sonnet 4に裏切られた話

clineを本格的に使用した知見をためておきたいこともあり、vive codingすることを決意。
「まぁClaude Sonnet 4と一緒にvive codingすればいけるっしょ!」と思ったのが間違いでした。
最初はどんどん出来上がる成果物にAI驚き屋と化していましたが、
出てきたのは、いわゆる“クソコード”。
テストも破綻、構造も崩壊、コメントも意味不明。
最終的には。

8000行削除、2000行書き直し

という大規模リファクタを手動で実施しました。
(夜のテンションで「クソコードしかねぇじゃねぇか」と言って消したのを覚えてます)

保守はつらいけど、愛着はわいてくる

機能追加よりも、地味なところの手入れのほうが時間かかることもあります。
でも、毎日使うツールなら、「ちょっと便利」が積み重なるだけで気持ちよくなるのもまた事実。

今後は、一覧UIと人材メール対応をしつつ、もう少しだけ育てていこうかなと思ってます。

ソースコード(変わらず公開中)

実行コストについて

chatGpt 4.1miniを使用しています。
私の環境でのAIによるメール解析のAPI利用料/処理件数は以下の通りでした。
$0.1=93通
$1=930通
image.png

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?