人材派遣 × 生成AI × 業務自動化SaaS
面談音声からスキルシート・推薦文を自動生成する人材派遣向けAI SaaS
面談の録音からスキルシート・推薦文を自動生成し、CRM連携と求人マッチングまで支援するマルチテナントSaaS。障害時に自動再実行される非同期基盤を自前で構築。
CASE STUDY / 実績 Back to WORKS
対象業種
IT・人材(人材派遣会社向け)
開発区分
生成AI活用マルチテナントSaaSの設計・開発 / 体制3名・メンバー
期間
2024年10月〜2025年4月(約7ヶ月)
担当範囲
画面構造設計 / 内部設計 / バックエンド・フロントエンド実装 / 外部連携設計 / 非同期処理基盤設計(要件は事業側で確定済みのものを受領。ビジュアルデザインと検証は専任メンバーが担当)
使用技術
Next.js / React / Node.js / Express / Dify / Redis / MySQL
連携サービス
Dify / Salesforce API / BullMQ + Redis / ffmpeg / pdfkit
OVERVIEW
プロジェクト概要
面談の録音からスキルシート・推薦文を自動生成し、CRM連携と求人マッチングまでを支援する、生成AI活用のマルチテナントSaaSです。要件は事業側で確定済みのものを受領し、画面構造設計から内部設計・バックエンド/フロントエンド実装・外部連携設計・非同期処理基盤設計までを担当しました(ビジュアルデザインと検証は専任メンバーが担当)。ORMを使わず生SQLで実装し、実行内容とパフォーマンスを細かく制御しています。

PROBLEM
元の業務課題
- 面談内容をメモし、候補者の経歴やスキルを整理して営業用スキルシートへ手作業でまとめる必要があった
- スキルシートの書式が担当者ごとに異なり、提案資料の品質が属人化していた
- 候補者理解や面談質問の準備に時間がかかり、提案スピードが上がらなかった
- 数分かかるAI処理の途中でワーカーがクラッシュすると、ジョブが「処理中」のまま止まってしまう
- SaaSとして複数企業で利用するには、企業単位のデータ分離と権限管理が不可欠だった
BEFORE
Beforeの業務フロー
- 01面談を実施し、内容を手元でメモに取る
- 02メモを見ながら候補者の経歴・スキル・希望条件を整理
- 03営業用スキルシートへ手作業で転記・整形
- 04候補者プロフィールを読み込み、面談質問を都度考える
- 05CRM上の情報を手作業で更新し、提案資料を作成

SOLUTION
提案した解決方法
- ffmpegによるMP3変換と無音区間検出(閾値-40dB)を用いた3段階フォールバック分割を実装
- 既定最大10並列でリトライ付きの文字起こしを実行し、成功率が閾値80%を下回ると品質異常と判定
- Difyへ処理を委譲し、文字起こし/スキルシート・推薦文生成/フォロー面談要約の独立3ワークフローを構築
- 統一フォーマットでのスキルシート自動生成と、pdfkitによるPDF出力・ZIP一括ダウンロードを実装
- company_id列による行レベルのマルチテナント分離。認可はJWTから解決したcompany_idによるサーバー側SQLフィルタで実施
- BullMQ+Redisに加え、DB側ハートビート(30秒間隔)とreaper(60秒間隔)を自前実装し、停止ジョブを自動再キューイング
- Salesforce連携の認証情報をAES-256-GCMで暗号化保存し、営業担当メモを保持したままAI生成部分のみ更新するマージ処理を実装
- JWT+bcrypt、招待制登録(32バイトトークンをSHA-256でハッシュ保存・有効期限7日)、30分無操作で自動ログアウト、3段階のロール管理
ARCHITECTURE
システム構成イメージ

FEATURES
主な機能
面談音声の書き起こし
ffmpegでMP3変換後、無音区間検出→時間ベース分割→単純分割の3段階フォールバックで分割し、並列で文字起こし。
スキルシート自動生成
要約結果をもとに統一フォーマットのスキルシートを自動生成し、画面上で確認・編集できる構成に。
PDF出力・ZIP一括ダウンロード
pdfkit+日本語フォント埋め込みでPDF化し、複数まとめてZIPでダウンロード。
面談質問の自動生成
候補者プロフィールとスキルに基づき、面談で深掘りすべき質問を自動生成。
求人マッチング支援
求人要件・企業情報と候補者情報を突き合わせ、適合度と理由を提示。
Salesforce連携
認証情報をAES-256-GCMで暗号化保存。営業担当メモを保持したままAI生成部分のみを更新するマージ処理を実装。
回復力のある非同期基盤
BullMQ+Redisに加えDB側ハートビートとreaperを自前実装し、応答なし5分超・想定超過30分超のジョブを自動再キューイング。
マルチテナント・権限管理
company_id列による行レベル分離、企業ごとのテンプレート・プロンプト調整、3段階のロール管理。

OUTCOMES
導入効果
- 数分かかるAI処理の途中でワーカーがクラッシュしてもジョブが止まらない、回復力のある非同期基盤を構築
- 面談音声の書き起こしからスキルシート・推薦文生成、PDF出力までを一連の流れとして自動化
- company_id列による行レベルのマルチテナント分離により、複数企業での安全な利用を実現
- データ消失リスクが最も高いSalesforce連携のマージ・変換ロジックに絞って自動テストを厚くする優先順位づけを実施
- ※稼働後の定量的な業務効果は立場上把握していないため、数値としては記載していません
STACK
技術構成
TypeScript 5.6 / JavaScript (ES2022)React 19 / Next.js 15Node.js 20 LTS / Express 4Dify(AIワークフロー)BullMQ 5 + Redis 7(非同期処理)DB側ハートビート・reaperの自前実装ffmpeg 6(音声変換・無音区間検出)pdfkit 0.15(日本語フォント埋め込み)Salesforce API / AES-256-GCMMySQL 8.0(生SQL)行レベルのマルチテナント分離JWT / bcrypt / 招待制登録
RELATED
関連プロジェクト
エンタープライズ × 生成AI × データベース連携
自然言語で社内データベースを分析・自動化するAIエージェント基盤
教育 × AIチューター × バックエンド開発
AIチューターと対話しながら学べる個別学習支援システム
再生医療・研究 × マルチテナントSaaS × AWS
実験管理・機器連携・凍結在庫・監査ログを統合した細胞培養管理SaaS
EC・Amazon運用 × Python × 順位トラッキング
広告順位と自然検索順位を自動取得するAmazon順位トラッキングツール
遊技場運営 × Python × データ収集自動化
パチンコ・スロット台データを自動収集しGoogleスプレッドシートへ連携するWindowsツール
SNS運用 × Instagram × 投稿自動化
複数アカウントのInstagramストーリー投稿を自動化する運用支援アプリ
EC・小売 × GAS × 発注管理自動化
SKU参照・発注推奨数計算・注文書作成を自動化する楽天市場の発注管理ツール
ゴルフ施設 × GAS × 地図データ収集
Google Apps ScriptとPlaces APIでゴルフ施設情報を自動収集するデータ基盤
LET’S CONNECT
生成AIを、
動く業務につなぎませんか。
AI適用可否の検証から、バックエンド開発、AWSインフラ構築、
リリース後の運用改善までご相談いただけます。