プロジェクト概要
AI Agent と Next.js を組み合わせたフルスタックアプリケーションです。求人のリンクを 1 つ渡し、Claude Code(または GitHub Copilot)の /cv コマンドを実行するだけで、システムが JD を自動で取得して主要な要件を分析し、個人データのソースをもとに、求人に合わせた中国語・英語のバイリンガル履歴書 Web ページを生成します。
各履歴書は UUID ごとに独立したルートを持ち、ブラウザからそのまま PDF として印刷できます。トップページには履歴書の管理画面があり、検索、インライン編集、ワンクリックでのリンクコピーなどに対応しています。
技術的なポイント
- 01
Next.js 16 App Router + Standalone Output
最新の App Router アーキテクチャを採用し、standalone モードで軽量な Docker Image としてパッケージ化
- 02
AI Agent による自動化 SOP
Chrome DevTools MCP で JD を自動取得し、Claude Code 向けに定義した構造化 skill/Prompt SOP(copilot-instructions)と組み合わせて、エンドツーエンドの履歴書生成フローを実現
- 03
Claude Code の skill で構成したワークフロー
フロー全体は複数の skill で構成。
/cvでカスタマイズした履歴書を生成、/updateでベーステンプレートを同期、/cover-letterでカバーレターを作成、/job:sg//job:remoteで求人を検索・評価。pnpm cvは履歴書フォルダの雛形とデータベースのレコード作成のみを担い、別途check-cvスクリプトを作成して、生成された履歴書が skill の規範(自己紹介の文字数、弱い動詞など)に沿っているかを自動チェック。ルールチェックを通過したら、加重式(Required/Nice-to-have のカバー率、成果の定量化率、セクションの完成度、キーワードの分布)で ATS スコアを算出し、85% に満たなければ改善を繰り返す。この 2 つを合わせて、AI が生成する履歴書の品質ゲートとした - 04
すべての工程にスコアリングのゲート
求人検索の段階では、各求人を 100 点満点のスコア表(技術的な適合度、職位、勤務形態、プロダクト領域、給与、企業の評判など)で採点してランク分けし、スケジュール実行では上位ランクの求人に対してのみ履歴書を自動生成。生成した履歴書はまず check-cv のルールチェックを通し、さらに加重式で 85% に達してから次のステップへ
- 05
異なるモデルの reviewer による敵対的生成
履歴書の生成後、読み取り専用の reviewer を 2 つ並列で起動。モデルは Opus に固定し、生成側のモデルとは別に指定する。人事 reviewer は JD と履歴書だけを参照し(情報を隔離し、採用側の視点を再現)、ルール reviewer は skill の規範と source に照らして 1 項目ずつチェック。生成側は指摘に応じて修正するか、実際のギャップとしてマークし、最大 2 ラウンド、毎回新しい reviewer に入れ替える。技術記事の skill ではさらに、Haiku(初心者の読者)と Opus(仕組みを理解している読者)の 2 種類のモデルでレビュー
- 06
工程ごとのモデル割り当て
求人リストの取得など判断を必要としないステップには Haiku、企業の評判の収集には Sonnet、JD の読み解きと採点には Opus を使い、コストと判断の質を両立
- 07
一貫した求職フロー
複数の agent による分担、skill と異なるモデルの組み合わせ、さらに敵対的生成によって、「求人探し → マッチ度の判断 → カスタマイズした履歴書の生成 → 応募」までのフロー全体をつなげた。応募は agent がブラウザを操作して応募フォームに入力
- 08
Serverless デプロイ構成
Docker Image を AWS ECR に push し、Lambda Web Adapter で Next.js の SSR を実行。静的アセットは S3 + CloudFront CDN で配信し、CI/CD は GitHub Actions で完全自動化
- 09
Neon Serverless PostgreSQL + Drizzle ORM
Neon のサーバーレスデータベースと Drizzle ORM を組み合わせ、type-safe なデータアクセスを実現
- 10
TailwindCSS 4 + Framer Motion
レスポンシブデザインと滑らかなアニメーション
- 11
Vibe Coding の実践
プロジェクト全体をゼロから公開までわずか 2 日で完成させ、全工程を Claude Code の支援による開発(Vibe Coding)で実施