+++
title = "Claude Codeで採用管理ツールを0から作る — HR担当者の実践記録"
date = 2026-06-08
description = "Excelでやっていた採用管理をWebアプリに置き換えた。コードは書けないHR担当者がClaude Codeを使って実現した方法と、3つの学び"
[taxonomies]
tags = ["Claude Code", "HR×AI", "HR実務", "採用管理", "内製ツール"]
[extra]
public = true
belief_version = 1
ai_written = true
one_true_sentence = "Claude Codeが変えたのは「コードを書けるか」ではない。「自分の業務を、相棒に渡せる言葉にできるか」だ。"

[[extra.faqs]]
question = "コードが書けないHR担当者がClaude Codeでツールを作ることは可能ですか？"
answer = "可能です。ただし「コードを全く理解しなくていい」ではなく、「何を作りたいか、どう動いてほしいか」を明確に指示できる必要があります。Claude Codeは指示された通りのコードを書きますが、要件定義と仕様の言語化はあなたが行う必要があります。採用管理ツールのような「何を管理したいか」が明確な用途では、Claude Codeとの協働が特に効果的です。"

[[extra.faqs]]
question = "Claude Codeでどんな採用管理ツールが作れますか？"
answer = "Excel・スプレッドシートでやっていた作業のWebアプリ化が最もフィットします。具体的には：候補者一覧の管理（ステータス・選考段階・担当者・コメント）、面接スケジュール管理（面接官・日時・場所の調整と通知）、評価シートの統合（複数面接官の点数を集計してサマリーを出す）、内定〜入社管理（書類送付・手続き進捗のチェックリスト）の4つが典型的な用途です。"

[[extra.faqs]]
question = "Claude Codeで採用管理ツールを作る時の個人情報保護の注意点は？"
answer = "候補者の個人情報（氏名・連絡先・職歴）を扱うツールを作る際は、①データの保存場所（会社のクラウドか外部サービスか）②アクセス権限（誰が見られるか）③データの削除ルール（不採用後いつ消すか）の3点を情報システム部門と確認してから実装に入ることを推奨します。Claude Code自体は指示通りにコードを書くだけなので、設計時点でのセキュリティ要件の定義はあなたが行う必要があります。"

[[extra.faqs]]
question = "Claude Codeで作ったHRツールを社内展開する時の注意点は何ですか？"
answer = "社内展開の前に確認が必要な3点：①IT部門のセキュリティレビュー（社内データを扱うツールは審査が必要なことが多い）②ブラウザ・OS互換性（作成時に使っていない環境で動くか確認）③バグ発生時の対応者（IT部門が対応できるか、Claude Codeで自分が直すか）。自分専用のツールとして使い始めて、チームに広げる前にITと連携するのが現実的なステップです。"
+++

金曜の夜、デスクトップに「採用管理_最新.xlsx」「採用管理_最新_v2.xlsx」「採用管理_本当に最新.xlsx」が並んでいた。どれが本物か、もう自分でも分からない。月曜にはまた面接が入っている。

その週末、Claude Codeに「これをWebアプリにして」と話しかけてみた。3日後、Excelのコピーは消えた。

私はエンジニアではない。HTMLを少しいじれる程度で、JavaScriptもPythonも業務で書いたことはなかった。それでも動くものができた。これは、その3日間で相棒に何を渡し、何を学んだかの実況記録だ。

---

## なぜ既存のATSを使わなかったのか

候補者が少人数規模の採用では、市販ATSの月額費用が割高になることが多い。求人媒体ごとに来るExcelフォーマットが違い、社内の選考管理はコピペと関数の組み合わせで回っていた。

「作ったほうが安い、そして使いやすい」という判断でClaude Codeを試した。

---

## 作ったもの

シンプルな採用管理Webアプリ:

- **候補者一覧** — 氏名・応募職種・現在の選考段階・担当者・最終更新日
- **選考ステータス管理** — 書類選考/一次/二次/最終/内定/入社/辞退 の7段階
- **コメント欄** — 各選考段階のメモ。面接後に記録する
- **検索・フィルタ** — 選考段階別、担当者別に絞り込める

データはGoogleスプレッドシートに保存（IT部門への承認が不要な最短経路）。フロントエンドはGitHub Pagesで公開し、社内ネットワークからのみアクセス可能にした。

完成まで: 3日間、合計約8時間。相棒と隣り合って交わした対話の積み重ねだ。

---

## 実際の進め方

### Step 1: 要件を日本語で書き出す（1時間）

Claude Codeを開く前に、紙に書いた:

- 今Excelで何を管理しているか（列の一覧）
- 誰が使うか（採用担当少数名、面接官は読むだけ）
- どんな操作が毎日必要か（ステータス更新、コメント追加、一覧確認）
- セキュリティ要件（社内のみアクセス可、候補者の個人情報あり）

この整理が後の指示の質を決める。「採用管理ツールを作って」だけでは曖昧すぎる。

### Step 2: 最小の動くものから始める（2時間）

最初の指示:

```
候補者一覧を表示するWebページを作ってください。
データはGoogleスプレッドシートから読み込みます。
表示する列: 氏名、応募職種、選考段階、担当者
選考段階はボタンで変更できるようにしてください。
```

Claude Codeが出してきたコードをそのままHTMLファイルに貼って、ブラウザで開いた。動いた。

ここで重要なのは、**完璧を求めずに動くかどうかだけを確認すること**。見た目が崩れていても、データが表示されなくても、まず骨格が動くかを確認する。

### Step 3: 機能を1つずつ追加する（4時間）

動く骨格ができたら、機能を1つずつ追加した:

1. コメント欄の追加（「コメントを記録できるようにしてください。Googleスプレッドシートの別の列に保存します」）
2. 検索機能（「氏名と担当者で絞り込める検索窓を追加してください」）
3. 並び替え（「最終更新日の降順でデフォルト表示してください」）
4. 見た目の調整（「ステータスによって行の色を変えてください。内定=緑、辞退=灰色」）

各ステップでClaude Codeに追加の指示を出し、コードを確認し、ブラウザで動作確認した。

### Step 4: セキュリティとデプロイ（1時間）

GitHub Pagesへのデプロイと、GoogleスプレッドシートのAPIキーを外部から見えない形で管理する方法をClaude Codeに聞きながら設定した。

IT部門に「社内データを扱うツールを作ったので確認してもらいたい」と依頼し、コードとデータ保存先を説明した。問題なしで承認された。

---

## 3つの学び

### 学び1: 渡す言葉の質が、出てくるものを決める

相棒は、渡された言葉の通りに動く。「使いやすいツールを作って」と渡せば、私の頭の中の「使いやすい」は伝わらない。「採用担当者が1日に何度も触るステータス更新を、3クリック以内で終わる設計にして」と渡して初めて、欲しいものに近づく。

ここで効いたのは技術力ではなく、自分の毎日の手の動きを言葉にする力だった。普段は無意識にやっているExcel操作を「誰が・いつ・何回・何のために触るか」まで分解する。その分解こそが、相棒に渡せる設計図になる。

### 学び2: エラーは「相棒への伝言」だと思う

ブラウザのデベロッパーツールに赤いエラーが出ても、そのメッセージをそのままコピーして相棒に渡すだけでいい。意味が分からなくていい、原因が読めなくていい。エラー文は、私の代わりに状況を読んでくれる相手への伝言だ。「分からないまま渡す」と割り切れた瞬間から、作業が止まらなくなった。

### 学び3: 小さく作って使いながら育てる

最初から全機能を作ろうとしない。動く最小版を2日で作って使い始め、「この操作が面倒」という感覚が出たら機能を追加する。エンジニアが仕様書を書いてから作るアプローチより、HRが使いながら育てる方が実態に合ったツールになる。

---

## 作って終わりじゃない — 貯まったデータに問いを立てる

ツールを使い始めると、副産物として「構造化された採用データ」が貯まっていく。誰がどの段階でどれだけ止まったか、どのポジションで辞退が多いか。Excelの関数では追いきれなかった問いに、同じ相棒で答えられるようになる。

ただし順番が逆だと意味がない。データを丸ごと渡して「何か傾向を教えて」では、当たり障りのない要約しか返ってこない。先に**自分の問いを決める**。

- 「内定承諾率が落ちる時期は、どの選考段階で離脱が増えているか」
- 「辞退理由を分類すると、一番多いのは何か」
- 「応募から内定までの日数が長いポジションは、途中離脱も多いか」

問いを決めてから、候補者を特定できる情報（氏名・連絡先）を外した集計データを渡す。すると相棒が分析コードをその場で書いて、結果を見せてくれる。問いを変えるたびに新しい分析が返ってくる。

注意は2つ。ひとつは、個人情報は渡す前に必ず匿名化すること（候補者IDと選考段階だけにする）。もうひとつは、出てきた分析を**結論ではなく次の問いの材料**として扱うこと。「なぜそうなっているか」「どう変えるか」を決めるのは、現場を知る自分の仕事だ。相棒は傾向を見せる。判断は渡さない。

---

## 月曜の朝、最初の30分でできる一歩

大げさな準備はいらない。月曜の朝、こうする。

1. 今のExcelを開き、列の名前を紙に書き写す（これがそのまま仕様だ）
2. 「自分が1日で一番多く触る操作」を1つだけ選ぶ
3. Claude Codeに「この列を持つ一覧を表示して、◯◯の操作だけできるページを作って」と渡す

完璧な全体像を描く必要はない。動く骨格が一つ立てば、あとは使いながら育てられる。

---

## 向いているケース・向いていないケース

**向いている**:
- 年間採用規模が小さいチーム
- 既存のExcel/スプレッドシート管理をWebに置き換えたい
- 市販のATSより「自分たちの運用に合った設計」を優先したい
- IT部門が柔軟（または個人ツール範囲で試せる）

**向いていない**:
- 大規模組織で複雑な承認フローが必要
- 複数部門が同時に使う高可用性が求められる環境
- IT部門のセキュリティ要件が厳しく外部ツール承認に数ヶ月かかる

---

## 参考リソース

Claude Codeの基本的な使い方は[公式ドキュメント](https://docs.anthropic.com/claude/claude-code)が詳しい。HR担当者向けのとっかかりとしては、下の関連記事から入るのがいい。

---

## 関連記事

- [Claude CodeをHRに使う方法——顧問が実務で1ヶ月回した記録](/n/hr-work-with-claude-code/) — Claude Code導入の基本ステップと、採用JD生成・面接コメント言語化を含む実際の活用法
- [AIエージェントをHR業務フローに組み込む実践ガイド](/n/ai-agent-hr-workflow-automation/) — より高度な自動化への次のステップ
