0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Claudeで実務試験40本を半日で量産:業界×職種マトリクスを自動設計する

0
Posted at

Claude Cowork を社内AXに使っている私の実践ログです。社内固有名・個人名は伏せています。

正直に言う。最初、私はこの作業を3週間かけてやるつもりだった。

実務試験フォーマットを10種類追加する話。1種類あたり「ブリーフィングシート」「ワークシート」「評価シート」「管理画面入力テキスト」の4本セットで、合計40ドキュメント。各フィールドには800字制限があり、業界も職種も全部バラバラ。営業、CS、PM、デザイナー、データアナリスト、事業開発、オペレーション設計——どれも実在の現場っぽい解像度で書かないと意味がない。

3週間。下手すると1ヶ月。

それを半日で終わらせた。Claudeに丸投げしたわけじゃない。私が設計と検証の枠だけ作って、量産は Claude にやらせた。今日はその話を書く。

何が一番しんどい作業だったか

実務試験って、書こうとすると「業務内容」を書くのが一番難しい。

リアリティが要る。「Webアプリの企画書を書いてください」みたいな抽象は1秒で底が割れる。架空企業の名前、扱っているサービス、想定する顧客、配布データのフォーマット、それを使って学生が90分で出すアウトプット——ここまで具体にしないと、評価する側も「何をもって合格か」を判断できない。

これを10種類、しかも業界をバラけさせて書く。普通に発狂する。

私の判断:「マトリクス」を先に作って、中身は後から埋める

最初、私は1本ずつ順番に書こうとしていた。これがダメだった。

3本目で「あれ、これさっき書いた営業の課題と構造が似てる」みたいなことが起きる。設計の重複が見えていない。

結局やり方を変えた。先に「業界 × 職種」のマトリクスをExcelで作って、空セルを Claude に渡して埋めさせる方針に切り替えた。これが正解だった。

私が決めるのはこの3つだけ。

  • 補強したい職種(既存ラインアップで弱い領域)
  • それぞれの業界アンカー(SaaS / 製造業 / 医療 / 物流 など)
  • 評価で見たい能力の4軸

中身はClaudeに任せる。

コピペで使えるプロンプトテンプレ

私が実際に使ったプロンプトはこんな形。

あなたは新卒向けワークサンプル試験の設計者です。

# 入力
- 職種: {ROLE}
- 業界: {INDUSTRY}
- 評価軸: {AXIS_1} / {AXIS_2} / {AXIS_3} / {AXIS_4}
- 試験時間: 90分

# 出力(JSON、各フィールド800字以内)
{
  "fictional_company": "(架空企業設定。社名・事業内容・顧客・規模)",
  "distribution_data": "(配布データの中身・フォーマット)",
  "task_description": "(学生が90分で取り組む業務内容)",
  "deliverable": "(提出物の形式)",
  "eval_points": "(評価で見たいこと、軸ごとに)",
  "fail_patterns": "(よくある不合格パターン3つ)"
}

# 制約
- 実在の企業名・サービス名は使わない
- 業界用語は1〜2個に絞る
- 各フィールド800字を絶対に超えない

これでうまくいかなかったら、評価軸の文言を変えて再生成する。プロンプト自体は同じ。

800字制限を機械的に検証する

ここが一番効いた。

10種類×6フィールドで60セルある。目視で字数を数えるとか、もう人類のやることじゃない。最後の最後に「全部超過してました」が起きると死ぬので、Pythonで殴った。

import json
from pathlib import Path

LIMIT = 800
violations = []
for p in Path("./works").glob("*.json"):
    data = json.loads(p.read_text(encoding="utf-8"))
    for field, value in data.items():
        if isinstance(value, str) and len(value) > LIMIT:
            violations.append((p.name, field, len(value)))

if violations:
    for v in violations:
        print(f"NG {v[0]} {v[1]} {v[2]}")
else:
    print("OK: 全フィールド800字以内")

3行で終わる。最大値は521字に収まっていた。安心して投稿側に渡せる!

うん、800字制限のバッファはまだあった。

ハマったところ

ここからが本題。半日で終わったとはいえ、詰まったポイントはちゃんとあった。

1. 業界アンカーが「化学」「半導体」みたいに狭すぎると守秘判定で全部書き直しになった
最初、現業のクライアント業界に近い設定で書いてしまった。後で読み返したら社名が割れる粒度になっていて、全部「あるバーティカルSaaS」「ある業界特化型プラットフォーム」レベルに抽象化し直した。これ、地味に効く。最初から「一般化された業界×職種」で振った方が安全。

2. Claudeに「リアリティを上げて」と言うと、固有名詞を盛り始める
具体性を求めるとブランド名や法規制名を勝手に入れてくる。「実在の企業名・サービス名は使わない」を制約に明記したら止まった。明記が大事。

3. 評価軸を抽象にしすぎると、不合格パターンが書けない
最初「論理的思考力」とか書いていたら、Claudeも抽象でしか返してこない。「定量データを根拠に提案できる」みたいに動詞で書いたら、不合格パターンが具体になった。

4. ワークシートと評価シートのファイル名規則を最初に決めなかった
途中で気付いてリネーム地獄。私のミス。最初に {番号}_{職種}_{種別}.md のテンプレを決めておけば良かった。これは反省。

5. JSON出力を指示してもMarkdownのコードフェンスで返してくる
これあるあるだと思う。いや、というか、ほぼ毎回起きる。re.search(r"\{[\s\S]*\}", text) で正規表現抜き出しに統一した。json.loads 直叩きはやめた方がいい。

6. 「ぜんぶやって」で40本一括投入したら、途中でClaudeが息切れした
1セッションで40ドキュメントは欲張りすぎた。10本ずつ、4ラウンドに分けたら安定した。バッチサイズ重要。

7. 一括生成のあと、必ず1本だけ人間が読む
品質の抜き打ち検査。10本全部読まなくていい。1本読んで「これ素材として使えるな」と判断できれば残り9本もだいたい同じ品質で出ている、というのが経験則。

私の判断:この種の作業は「人間が枠、AIが量」が一番速い

これは賛否あると思う。

「全部AIに任せる」も「全部自分で書く」も、私は遅いと思っている。

枠(評価軸・業界アンカー・字数制限・出力スキーマ)は人間が決める。中身の量産はClaudeに振る。最後の検証だけ機械的に走らせる。この役割分担が、たぶん一番速い。

ちなみに私が日中見ている事業は N限(Ngen)インターン——新卒向けに、実務試験型のワークサンプルを企業に提供する仕組みです。今回作ったのも、そのライブラリ拡充の一環でした。実務試験の設計って、AIで一気に解像度が変わる領域だと、現場で本当にそう感じる。

まとめ

  • 3週間想定の作業を半日で終わらせた話
  • 1本ずつ書くのではなく「業界×職種マトリクス」を先に作るのが正解
  • プロンプトはJSONスキーマで固定、字数検証はPythonで殴る
  • 1セッションに40本は無理。10本×4ラウンドが安定
  • 「人間が枠、AIが量、機械が検証」の3層で回す

みなさんはどう運用していますか?

ワークサンプルや評価シートみたいな「構造はあるけど中身は多種多様」なドキュメントを量産するとき、どんな工夫をしていますか? バッチサイズの決め方、字数検証のやり方、品質の抜き打ち検査の頻度——みなさんのやり方があったらコメントで教えてください。

特に「私はもう全部AIに任せる派です」みたいな極端な運用、聞いてみたい。


Claude Cowork を社内AXの相棒として毎日使っているエンジニアの実践ログです。

私が日中見ている事業は「N限(Ngen)インターン」── 新卒の実務試験型(ワークサンプル型)インターンを企業に提供しています。AI時代の新卒採用に関心がある方は、下記からどうぞ。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?