【個人開発ストーリー】就活生の"面接の記憶"を端末内だけで分析するAIアプリ「Mentor AI」を作ってApp Storeに出した話

note / 2026/4/24

💬 オピニオンDeveloper Stack & InfrastructureSignals & Early TrendsTools & Practical Usage

要点

  • 就活生の「面接の記憶」を端末内で分析するAIアプリ「Mentor AI」を個人開発し、App Storeに公開した取り組みが語られている。
  • 個人開発プロセスとして、AIアプリの企画から実装・公開までの流れと、作る過程での学び/工夫が中心になっている。
  • 端末内(ローカル)で分析する方針により、データ取り扱いの考え方(プライバシーや通信負荷の抑制など)を重視していることが示唆されている。
  • 面接体験の記録をAIで扱うことで、振り返りや自己理解を支援する“用途起点”のAI活用例になっている。
見出し画像

【個人開発ストーリー】就活生の"面接の記憶"を端末内だけで分析するAIアプリ「Mentor AI」を作ってApp Storeに出した話

40
やすだ.dev@毎日投稿

📖 読了目安:約13分 | 📅 2026年4月22日 | 🎯 「面接で何を話したか覚えてない」──その悩みを、データを一歩も外に出さずにAIが分析するアプリを作りました


🎯 この記事でわかること

就活の面接、終わった瞬間にこう思ったことはありませんか?

「で、私さっき何を話したっけ?」


面接の振り返りは、次の合格率を決める最重要プロセスです。でも、録音しても何時間分も聞き返すのは辛い。メモしても書ききれない。 結果、多くの就活生が"感覚"で振り返っている。



だから作りました:

  • 🎙️ 面接をワンタップで録音 → 端末内で リアルタイム文字起こし

  • 🤖 AIが内容を分析 (Apple Foundation Models 対応端末なら端末内完結)

  • 💬 AI面接官と練習 (音声で対話、即フィードバック)

  • 🔒 録音データは1ミリも外部に送らない (完全ローカル処理)

  • 💰 無料で使える基本機能 + Pro版月額¥980


アプリの名前は 「Mentor AI — 面接対策・練習」 。本日2026年4月22日、App Storeで正式公開されました。


なぜ"完全ローカル"にこだわったか?

面接の内容は、極めてプライベートな情報だから。

「前職の不満」「年収の話」「志望動機の本音」──これをクラウドに送って、万が一漏れたら就活どころじゃない。だから 全部端末内で完結 させました。


この記事で書くこと:

  • 🎯 Mentor AI で何ができるか

  • 💡 なぜ作ったか(就活における"振り返り問題")

  • ⚙️ 技術スタック(SwiftUI + Apple Foundation Models + Gemini API)

  • 🌀 ローカルLLM選定の迷走(MLX → llama.cpp → Foundation Models)

  • 🎙️ Speech framework の"セグメントリセット問題"との戦い

  • ❌ App Store 審査リジェクト2回の全記録

  • 💰 月100万円を目指すマネタイズ戦略


先に結論:

「プライバシーを守る」は、2026年の個人開発における最大の差別化要因になる。

これを本気で実装する方法を、コードと一緒に紹介します。


📖 目次



1. Mentor AI とは──面接の"記憶"を端末内で分析するアプリ



🏠 30秒でわかる Mentor AI

結論:面接を録音→AI分析→練習まで、全部端末内で完結する就活生向けアプリ。


コアフロー:

  • 🎙️ 面接前後にワンタップで録音開始 (背面タップにも対応)

  • 📝 リアルタイムで文字起こし (iOS Speech framework、端末内処理)

  • 🧠 AI分析 :質問抽出・回答評価・改善提案を自動生成

  • 🤖 AI面接官と練習 :音声で質問→回答→即フィードバック

  • 📊 成長トラッキング :スコア推移・弱点ランキング・面接タイプ別分析


🆓 無料でできること

結論:録音+文字起こし+プロンプト生成までが完全無料。


  • 面接録音 & リアルタイム文字起こし

  • AI分析用プロンプトの自動生成

  • 生成プロンプトをワンタップでコピー → ChatGPT/Claude/Gemini に貼り付け


つまり、自分で外部AIに貼り付ける手間を許容するなら、0円で使えます。


💎 Pro版(月額¥980)でできること

結論:アプリ内で分析完結 + AI面接官との練習機能。



  • 🧠 端末内AI分析 :Apple Foundation Models で外部送信ゼロ

  • 🤖 AI面接官との練習 :音声入力→即フィードバック(何度でも)

  • 📊 成長トラッキング :スコア推移グラフ、弱点ランキング

  • 🎚️ 面接の難易度設定 :初級 / 中級 / 上級(圧迫面接風)

  • ⏱️ 面接時間設定 :10分(一次)〜 45分(外資・技術)

  • 🔍 深掘り質問 :回答内容に基づいてAIが追加質問を生成


1週間の無料トライアル付き。 まず使ってみて合わなければキャンセルでOK。


📚 100問以上の質問バンク

4カテゴリ × 3難易度:

  • 🗣️ 一般 (自己紹介、強み弱み、キャリアプラン)

  • 🎭 行動 (過去の経験、STAR法で答える)

  • 💡 志望動機 (企業研究、業界知識)

  • 💻 技術 (エンジニア・専門職向け)



✨ こだわりの細部

  • 📳 Hapticフィードバック :録音開始・停止・スコア表示で触覚フィードバック

  • 🌊 波形アニメーション :音声レベルに連動した視覚フィードバック

  • 🔢 スコアカウントアップ :結果表示時に数字がカウントアップ

  • 📤 結果シェア機能 :練習スコアをSNSで共有可能


2. なぜ作ったか──就活生の"振り返り問題"


🤔 面接の振り返り、みんなどうしてる?

結論:大半は"感覚で振り返り"、結果として同じミスを繰り返す。


典型的な就活生の面接後:

  • ❌ メモを書く → 細部を忘れている

  • ❌ 録音を聞き返す → 数時間かかって心が折れる

  • ❌ 友達に話す → 主観的な意見しか返ってこない

  • ❌ 反省会をする → 「次は頑張る」で終わる


振り返りが"作業"になっているから、継続しない。


💡 課題は"プライバシー"と"手軽さ"

既存の面接対策アプリを調べてみると、2つの壁がありました:


  • 🔴 プライバシーの壁 :ほとんどがクラウド処理。 前職批判や年収など、外に出したくない情報 を扱いにくい

  • 🔴 手軽さの壁 :テキスト入力が前提。 面接直後に長文をタイプする気力はない


🎯 Mentor AI の解決策

結論:「音声だけで完結」×「端末内で完結」。


  • 音声1タップ :面接直後にボタンだけ押せば録音スタート

  • 文字起こしは端末内 :iOS Speech framework の on-device モード

  • AI分析も端末内 :Apple Foundation Models(iOS 26+)

  • 練習も音声で :喋って答える→即フィードバック


「プライバシーを守りながら、手軽に振り返る」── この2つを両立させることが Mentor AI の存在理由です。


3. 技術スタック──Apple純正フレームワーク一本勝負



⚙️ 採用技術

コンセプト:「外部ライブラリゼロ、Apple純正のみ」


  • 🎨 UI :SwiftUI + MVVM アーキテクチャ

  • 📝 音声認識 :iOS Speech framework( `requiresOnDeviceRecognition = true`

  • 🧠 AI分析(メイン) :Apple Foundation Models(iOS 26+、A17 Pro以降)

  • 🧠 AI分析(代替) :Google Gemini API(`gemini-3-flash-preview`)

  • 💰 課金 :StoreKit 2(Auto-Renewable Subscription)

  • 💾 データ保存 :LocalStorage(端末内完結)

  • 🏗️ プロジェクト管理 :XcodeGen(`project.yml` → `.xcodeproj` 自動生成)

  • 📦 外部ライブラリゼロ


🎯 設計判断のポイント

① 外部ライブラリゼロ

Apple純正のみ。SPM依存を1つも入れない。これにより、将来のOS更新で 依存ライブラリ起因の破綻が発生しない


② 全43ファイルの構成

MentorAI/
├── App/             (1ファイル)
├── Models/          (5ファイル)
├── Services/        (7ファイル)
├── ViewModels/      (4ファイル)
├── Views/           (18ファイル)
├── Storage/         (1ファイル)
├── Resources/       (QuestionBank 100問以上)
└── Utils/           (Theme, Haptic, Streak, Constants)

③ 2段階AIエンジン戦略

  • 🟢 iOS 26+ (A17 Pro以降) → Apple Foundation Models(端末内)

  • 🟡 それ以前の端末 → Google Gemini API(クラウド、ただし プロンプトのみ送信、録音は送らない


4. ローカルLLM選定の迷走──3つのアプローチと失敗



「端末内で動くLLMが欲しい」という要件、これが地獄の始まりでした。


💀 試行①:MLX(Apple Silicon最適化フレームワーク)

結果:シミュレータで Metal 初期化クラッシュ


  • 🔧 Apple公式の機械学習フレームワーク

  • ✅ 理論上は Apple Silicon で最高性能

  • Xcode Simulator で Metal 初期化に失敗

  • ❌ 実機では動くが、開発サイクルが激重化

  • ❌ モデルダウンロードサイズが 2〜4GB 、アプリ配布に不向き


💀 試行②:llama.cpp + Gemma 4(4Bモデル)

結果:バッチサイズ制限、EOSトークン問題で断念


  • 🔧 C++製のLLM推論エンジン、Swift バインディングあり

  • ✅ モデルは選び放題(Llama、Gemma、Qwen等)

  • バッチサイズ制限 に引っかかり、長文入力でクラッシュ

  • EOS(End of Sentence)トークン の扱いで応答が無限ループ

  • ❌ 4Bモデルでも iPhone での発熱が激しい

  • ❌ アプリサイズが 2.5GB超 に膨張


✨ 最終解:Apple Foundation Models(iOS 26+)

結果:これで勝ちが確定。


Apple が iOS 26 で導入した、端末内で動く純正LLM:

  • 🟢 約3Bパラメータ の言語モデル

  • 🟢 OS組み込み なのでアプリサイズに影響なし(0MB追加)

  • 🟢 `FoundationModels` フレームワーク、`SystemLanguageModel.default` で呼び出し

  • 🟢 完全オフラインで動作

  • 🟢 日本語対応


コード例(超シンプル):

import FoundationModels

let session = LanguageModelSession()
let response = try await session.respond(to: "面接の回答を分析してください")
print(response.content)

これだけで端末内AI分析が動く。 しかも無料。


🛡️ 非対応端末のフォールバック

iOS 26未満 or A17 Pro 未満の端末では、Gemini API を使用。

  • 🔴 Apple Foundation Models 非対応

  • 🟢 Google Gemini API(`gemini-3-flash-preview`)で代替

  • 🟢 送信するのは「文字起こし結果」のみ、録音ファイルは絶対に送らない


5. Speech framework の"セグメントリセット問題"を独自解決



🐛 発覚した問題

開発中、録音が10分を超えたあたりで発生した謎現象:

「文字起こしテキストが突然、数百文字分消える」


これは iOS Speech framework の既知の挙動:

  • 🔴 `SFSpeechAudioBufferRecognitionRequest` は 内部バッファをリセット する

  • 🔴 リセット後、新しい発話が認識されるが、 過去の認識結果が"消えた"ように見える

  • 🔴 Apple公式ドキュメントにも 明示的な説明はない

  • 🔴 StackOverflow や Apple Developer Forum で断片的に議論されているのみ


💡 独自解決策

結論:「テキスト長の減少」を検知して、確定テキストとして蓄積するロジックを実装。


ロジック概要:

// 疑似コード
var accumulatedText = ""      // 確定済みテキスト
var currentTranscript = ""    // 現在認識中のテキスト
var previousLength = 0        // 前回の長さ

func onRecognitionUpdate(_ newText: String) {
    if newText.count < previousLength {
        // テキスト長が減少 → セグメントリセット発生
        accumulatedText += currentTranscript + " "
        currentTranscript = newText
    } else {
        currentTranscript = newText
    }
    previousLength = newText.count
}

var finalText: String {
    return accumulatedText + currentTranscript
}

これで30分超の録音でも、テキストが消えないようになりました。


🎯 この教訓

個人開発あるある:

  • 💡 公式ドキュメントに書いてない挙動 が、本番で一番の難敵

  • 💡 StackOverflow と Apple Dev Forum を漁る根気が必要

  • 💡 独自の回避策 を実装する度胸も個人開発の腕


6. App Store 審査リジェクト2回の全記録



無事に1発で通らない、それが Apple 審査。今回は2回リジェクトされました。


❌ 1回目のリジェクト

指摘2点:

  • 🔴 「ChatGPT」という表記がガイドライン違反

    • アプリ内で「ChatGPTに貼り付けてください」と書いていた

    • → Appleは他社ブランドの直接言及を避けたがる

    • 🔧 修正 :「AIサービスに貼り付け」「お使いのAIツール」等に書き換え

  • 🔴 権限許可ボタンの文言が不適切

    • マイクアクセス許可の説明が曖昧

    • → Apple は「なぜ必要か」を明確に書かせる

    • 🔧 修正 :「面接の録音のためマイクへのアクセスを許可してください」等、用途を明記


❌ 2回目のリジェクト

指摘2点:

  • 🔴 スクリーンショットに価格表示(¥980)

    • マーケティング画像に「月額¥980」と記載

    • → App Store で 価格は別管理 、画像内に表示するのはNG

    • 🔧 修正Gemini Image API で画像を全部再生成 (¥980 を削除)

  • 🔴 iPad での IAP(課金)エラー

    • iPad でサブスクボタンを押すとエラー

    • → iPad シミュレータでの動作確認が甘かった

    • 🔧 修正 : Auto Layout の調整+ 実機 iPad で動作確認


✨ 教訓

  • 「ChatGPT」「OpenAI」等の固有名詞は避ける 、「AI」「AIアシスタント」と書く

  • マーケティング画像に価格を書かない (別管理なので矛盾リスク)

  • iPad / iPhone 両方で必ず動作確認 する

  • 権限説明は「なぜ必要か」を明記

  • リジェクトされても凹まない 。指摘を全部潰して返信するだけ


🌏 返信は英語で

テンプレ:

Thank you for the detailed review.

We have addressed all the issues you pointed out:

1. Removed all direct references to third-party AI products.
2. Clarified the microphone permission description.
3. Regenerated all marketing screenshots without price information.
4. Fixed the IAP display issue on iPad with Auto Layout updates.

Please find the updated build in TestFlight.

7. 月100万円を目指すマネタイズ戦略



💰 価格設計

サブスクリプション:

  • 📱 月額¥980

  • 🎁 1週間無料トライアル付き

  • 📅 就活期間(3〜6ヶ月)に限定した出費として訴求


月100万円に必要な数字:

  • 有料ユーザー 約1,020人

  • 日本の就活生は 毎年約45万人0.23% のシェアで達成


🎯 Freemium 導線設計

無料ユーザーの体験:

  • ✅ 録音・文字起こし・プロンプト生成までは 全部無料

  • ⚠️ AI分析は プロンプトコピー→外部AIに貼り付け という手間が必要


Pro移行の動機:

  • 💡 アプリ内で分析完結 :貼り付け不要、ワンタップで結果

  • 💡 AI面接官との練習 :これは Pro 限定の"一番の売り"

  • 💡 成長トラッキング :スコア推移・弱点分析


🧩 2段階リリース戦略

Phase 1(今):ユーザー獲得

  • 🎯 無料版で録音+文字起こし+プロンプト生成を提供

  • 🎯 就活生コミュニティで拡散(X、就活サイト)

  • 🎯 「プライバシー完全保証」を強調


Phase 2(3ヶ月後):課金転換

  • 🎯 Pro版の機能追加・改善

  • 🎯 「無料体験から有料へ」の導線強化

  • 🎯 月次MRR(継続課金収益)を計測・公開


📊 5層のファネル

  • 🎯 認知 :X告知、Note記事、就活コミュニティ

  • 📥 DL :App Store(今日公開)

  • 🎁 無料試用 :Pro 1週間トライアル

  • 💳 初回課金 :トライアル終了→自動課金

  • 🔁 継続 :就活期間中(3〜6ヶ月)の継続利用


8. まとめ+無料トライアル案内



📝 この記事の核心

今回の開発で得た3つの学び:

  • 「プライバシー完全保証」は2026年の最強の差別化要因 。Apple Foundation Models のおかげで現実的に可能に

  • 公式ドキュメントに書かれてない挙動 (Speech frameworkのセグメントリセット等)との戦いが個人開発の醍醐味

  • 審査リジェクトは2回くらい普通 。指摘を全部潰して返すだけ


🎁 今すぐ試してほしい

Mentor AI は App Store で公開中です:



🎁 Pro機能は1週間無料

「AI面接官と練習してみたい」と思ったら、まず無料トライアルから。

  • 🎁 Pro版1週間無料 (合わなければキャンセルOK)

  • 📱 アプリ内 「設定」→「Proを試す」 で今すぐ開始

  • 💰 継続する場合は 月額¥980


💬 フィードバック歓迎

使ってみた感想を、ぜひ教えてください。



🚀 今後の実装予定

  • 🔜 Apple Watch 連携 :面接直前のリマインダー

  • 🔜 模擬面接の動画録画 (プライバシー保護しつつ)

  • 🔜 面接タイプ別テンプレート :新卒 / 転職 / 外資 / 技術職

  • 🔜 進捗レポート :就活期間の成長を週次で可視化


就活は人生の大事な岐路。そこを支えるツールを、プライバシーを守りながら作り続けます。


この記事が役に立ったら「スキ」をお願いします!

就活中の方に、ぜひシェアしてもらえると嬉しいです。

ダウンロード
copy

いいなと思ったら応援しよう!

チップで応援する
40