AI に採用パイプライン(ATS)を作らせてみた — 整備ラウンドで作った大型3つが、新業界でそのまま発掘された(やってみた #83)
/recruiting-pipeline375px のビューポートで撮影。縦長のページはフレーム内をスクロールします。
解説記事
AI に採用パイプライン(ATS)を作らせてみた — 整備ラウンドで作った大型3つが、新業界でそのまま発掘された(やってみた #83)
やってみたシリーズ: 自作のデザインシステム
@gunjo/ui(群青)を、群青のことを一度も見たことのない AI に、実際の画面で組ませていく連載。新業界 人材・採用 1枚目——採用パイプライン管理(ATS)。選考ステージを候補者が流れ、今週の面接を見て、候補者にドリルインし、承認フローで内定へ。
11業界目は人材・採用。架空の HR-tech 企業「ミドリリンク株式会社」のインハウス採用デスク。観測ポイントは明確——整備ラウンドで作った大型コンポーネント(KanbanBoard / WeekView / ApprovalWorkflow)が、採用という全く新しい業界の、予備知識ゼロの AI に、自力で発掘されるか。
結果 — 4/5・自作コンポーネントほぼゼロ
tsc/build 緑・375px・0 console error。応募ファネル俯瞰・選考パイプライン・応募経路内訳・ステージ別在籍・今週の面接グリッド・候補者を掘り下げる詳細(評価/履歴/内定承認)——構造はほぼ全部 @gunjo/ui。
観測の主役 — 大型3つが「この用途のために作られた」
予備知識ゼロの AI(群青を一度も触っていない設定)のレポートから:
KanbanBoard(摩擦ゼロ) — これがパイプライン。6つの選考ステージを列、候補者のフラットなリストを items、getColumnId={c => c.stage}でグループ化。onCardSelectを渡すとカードがキーボード操作できる<button>になり、列はariaの region、横スクロールは[contain:paint]でモバイルを破らない。JSDoc に「CRM のパイプライン、サポートのキュー」とある。摩擦ゼロ。
ApprovalWorkflow(驚くほど的確) — 現場面接官 → 採用責任者 → 内定承認に。controlledvalue/onChangeで、次へ / 差戻し(対象ステージ選択+理由・以降の記録をロールバック)/ 却下(terminal) を最初から持ち、各遷移に実行者+時刻を刻む。既定ラベルが既に日本語。「事務方の画面を作ったことがある人が設計したと最も感じさせた単一コンポーネント」。
WeekView(摩擦ゼロ) — 週次の面接グリッド。同時刻の面接を横並びに重なり詰め、todayが注入できる prop なのでサーバー描画でも安全(サーバーとブラウザのずれ無し)。
#318 で作った KanbanBoard が、初めて予備知識ゼロの環境で発掘された回——しかも採用という新業界で、名前と JSDoc から一発で見つかり最上級評価で嵌まった。 WeekView(#319)・ApprovalWorkflow(#267) も新業界で業界越え。Statistic/Rating/Timeline/MetadataList/DistributionBar/Badge も全部既存コンポーネントで。
唯一の大きな欠落 — 「人」を表すコンポーネントが無い
予備知識ゼロの AI が唯一2回手組みしたのがこれ:
候補者カードと候補者ヘッダー(アバター+氏名+ふりがな+職種+経路バッジ+評価★)。
Avatar+text+Badge+Ratingを手で組んだ。欠落: 人物サマリのコンポーネントが無い。メディア用のAssetCardはあるが、人のレコードを表すコンポーネントが無い——HR/CRM/ATS/担当者ピッカー/面接官名簿/承認者行、あらゆる画面の最小単位なのに。
→ PersonCell(avatar + name + secondary + tags + rating) を提案・課題に記録(#329・新業界の最頻出単位・3回ルールで再確認)。これが「追加すべき最も価値あるもの」。
その他の課題記録(コンポーネントを作らず)
- 🔴
Sheet右ドロワーの幅クラスが衝突(w-[384px] w-3/4が両立=前者が無効クラス)+掘り下げる詳細が既定で狭く、幅sizeprop が欲しい(#328)。 - 🟡 凡例のコンポーネントが見つからない(WeekView/Kanban に tone はあるが凡例が無い・
ChartLegendが chart 専用に見えて発掘されず手組み・#327)。 - 🟡 prop の語彙が不統一(
KanbanColumnTone未 export でas never/SearchInputはonValueChange/VStack gapが数値 vssizeが文字列=#82 に続き2回目・#330)。
今回 src の新規コンポーネントなし(ライブラリが 4/5 で持ちこたえ、残る欠落は新しいコンポーネント候補+開発体験+発見可能性)。
学び — 大型コンポーネントは、業界を越えて「発掘される」段で価値が確定する
整備ラウンドで KanbanBoard/WeekView/Gantt/EventCalendar/LineageGraph を腰を据えて作った。その価値は、作った回の自己評価では決まらない——何も知らない次の業界の AI が、名前と JSDoc だけで見つけて摩擦ゼロで使った時に確定する。 #82 でメディアが LineageGraph/EventCalendar を、#83 で採用が KanbanBoard/WeekView/ApprovalWorkflow を発掘した。JSDoc に支えられた発見可能性が、予備知識ゼロで採用されるための本当の資産だと、予備知識ゼロの AI 自身が言っている。
そして欠落は、また一段上に収束した——個別のコンポーネントでも大型レイアウトでもなく、「人」という最小単位の合成コンポーネント(PersonCell)。HR を3〜5枚回す中で再出現を待つ。
次回予告(やってみた #84)
- 人材・採用2枚目(勤怠
ScheduleGrid/ 人事評価ワークフロー / 組織図 など)。PersonCell の再出現観測。
試す
まだ alpha。だが「整備ラウンドで作った大型3つが、新業界の予備知識ゼロの AI にそのまま発掘される」のを見られた回——作った投資が業界を越えて複利する、その11業界目の実証。
この連載は、作者が AI(Claude と Codex)と協働で制作しています。実験・検証の設計、判断、公開前の事実確認は人間が行い、実作業と下書き執筆は AI が担っています。
使用した @gunjo/ui コンポーネント
この画面のソースが直接 import しているコンポーネントです。
cold AI が組み上げた実コード
ファイル名をクリックでソースを展開できます。