← 一覧に戻る
⚖️
ビジネス(開発部)

bias-audit-studio

既存のATS(採用管理システム)からエクスポートした選考データのCSVを取り込み、性別・年齢層といった属性ごとの選考通過率を集計し、カイ二乗独立性検定で「その差が統計的に有意かどうか」を判定してダッシュボード上に可視化する監査レポート専用ツール。求人掲載や応募者管理、面接調整といったフルのATS機能は持たず、あくまで「取り込んだ選考結果を統計的に監査する」機能だけに絞った単体ツール。

実際のアプリを開く ↗

保存場所: C:\Users\utsus\Desktop\AIの作業場\bias-audit-studio\apps\web

なぜ作ったか

採用選考におけるバイアス(性別・年齢による通過率の偏り)は、企業側が「体感」ではなく数字で把握しない限り気づきにくく、かつ気づいた頃には法的・レピュテーションリスクに発展しかねない領域。株式会社ひよこのDEV(開発部)が、この「見えないバイアスを可視化する」というニッチだが確度の高いニーズに対して、統計的検定という専門性の高い機能を自前実装できるか(外部統計ライブラリに頼らずカイ二乗検定・p値算出まで実装できるか)を試す意味も込めて形にした成果物。

どういう場面で使うか

自社の採用選考データを一度棚卸しして、属性による通過率の偏りがないかチェックしたい時。人事・法務から「選考プロセスに客観的な説明責任を持たせたい」と言われた時。ステージ(書類選考・一次面接・二次面接・内定)ごとに、どの段階でバイアスが強く出ているかを特定したい時。

自動化されているポイント

  • CSVの列名表記ゆれ(external_id/candidate_idjob/job_titlepassed/合否など)を自動で吸収して読み込む
  • 行単位でエラー(空欄・真偽値として解釈できない合否列など)を自動検出し、不正な行だけスキップして全体は失敗させない。同じCSVを再取込しても候補者・応募データが重複しないよう自動でupsertする
  • 期待度数(行合計×列合計/総合計)が5未満のセルが1つでもある場合、または区分の合計人数が5未満の場合は、自動で「統計的判定なし・サンプル数不足」の警告表示に切り替え、少数データでの誤検知を防ぐ
  • カイ二乗統計量とp値算出用の正則化不完全ガンマ関数(Lanczos近似+連分数展開)を外部の統計ライブラリなしで自前実装しており、取込んだデータからその場で有意差判定まで自動算出する
  • 属性別の詳細レポートは、専用の閲覧権限を持つユーザーだけに表示。権限がない場合はサーバー側でそもそも属性別データを計算・送信しない設計(アプリ層とDBのRLSの二重チェック)

使い方(画面の流れ)

①既存ATSからエクスポートした選考データCSVを取り込む。

CSVインポート画面(架空データ)

列名の表記ゆれを吸収しつつ、データ行数・取込件数・スキップ件数、新規登録された求人数・候補者データ数をその場で表示する。氏名・連絡先などの個人情報を含む列があっても取込ロジックはその列を一切保存しない。

②ダッシュボードでステージ別の全体通過率を確認する。

ダッシュボード概要画面(架空データ)

候補者数・応募件数・求人数・全体通過率をサマリーカードで表示し、書類選考から内定までの各ステージの通過率をグラフで可視化する。属性の内訳を含まないこの集計値は、ログイン済みなら誰でも閲覧できる。

③閲覧権限を持つユーザーは、属性別(性別・年齢層)の詳細な統計判定結果を確認できる。

性別・年齢層別の詳細監査レポート画面(架空データ)

ステージごとに男女の通過率とカイ二乗検定のp値・有意差判定バッジを表示。サンプル数が少ないステージでは「サンプル不足」の警告に自動で切り替わり、誤った有意差判定を出さない。年齢層など、統計的に偏りが見られない属性は「有意差なし」として素直に表示される。

訴求ポイント

  • 「バイアスがあるかもしれない」という感覚論を、カイ二乗検定という統計的な裏付けのある数字に変換できるのが最大の強み
  • サンプル数不足時は判定を出さず警告に留める設計により、「少数データで誤ってバイアスありと決めつけてしまう」リスクを抑えている
  • 氏名・連絡先などの個人情報(PII)をそもそもデータモデルに持たない設計のため、取込んだCSVに個人情報の列が含まれていても保存されない
  • 権限のないユーザーには属性別データそのものをサーバー側で生成・送信しない設計になっており、「見せてはいけない人に見せてしまう」事故を構造的に防いでいる

補足(本番運用にあたっての注意)

本アプリはCSVアップロード方式の監査ツールであり、本番のATSに常時接続してデータを収集する機能は持たない。ただし属性データ(性別・年齢層)を扱う機能である以上、実際の採用選考データを投入して本番運用する場合は、同意設計やデータ取り扱いについて法務レビューを別途受けることが望ましい(アプリ本体のREADMEにもその旨が明記されている)。ポートフォリオ上のデモは、上記スクリーンショットの通りすべて架空の人物・企業を用いたサンプルデータで検証したものであり、実在のデータは一切使用していない。

README原文を見る →