建設キャリアアップシステムの就業履歴を集計 — Claudeで作業員名簿と突き合わせる手順
CCUSから現場ID単位で出した就業履歴のCSVを、Claudeで人日・技能者別に集計し、作業員名簿や施工体制台帳の記載と食い違う行を洗い出す手順です。氏名を外してから渡す前処理も示します。
建設キャリアアップシステム(CCUS)に溜まった就業履歴は、事業者ポータルからCSVで出せます。これを現場ID・技能者別の人日に直し、作業員名簿(AZ6-b)の記載と並べると、名簿との食い違いや現場利用料の請求額とのずれが見つかります。この集計と突き合わせをClaudeに任せる手順を、出力操作から依頼文まで順に示します。
どの帳票をCSVで出すか
CCUSの現場運用マニュアル第8章には、事業者が出力できる帳票が番号つきで並んでいます。就業履歴は4種類あり、月別に集約した形とカレンダー形式、それぞれに個人別と一覧があります。
集計に向くのは「2-2就業履歴一覧(月別集約)」です。現場IDと年月を指定すると、その現場に入場した技能者の就業が一覧で出ます。マニュアルには、この画面で「CSV出力」ボタンを押すとCSVが出ると書かれています。
| 帳票 | 中身 | 集計での使いどころ |
|---|---|---|
| 2-2就業履歴一覧(月別集約) | 中身技能者ごとの月別の就業 | 集計での使いどころ人日の合計、技能者別の稼働 |
| 2-4就業履歴一覧(月別カレンダー) | 中身日ごとの入場状況 | 集計での使いどころ同日の重複入場、欠けている日 |
| AZ6-b作業員名簿 | 中身現場に登録された作業員 | 集計での使いどころ突き合わせの相手 |
| AZ1施工体制台帳 | 中身現場の施工体制 | 集計での使いどころ事業者の抜け漏れの確認 |
帳票の種類によってCSV出力ボタンの有無が違います。マニュアルのAZ6-bの出力手順には、CSV出力の記載がありません。CSVで扱うなら、Excelで出力したものをCSV形式で保存し直します。
見える範囲は立場で決まる
同じ現場の就業履歴でも、誰のIDでログインしたかで見える範囲が変わります。2-2の閲覧・出力範囲は、所属事業者・元請事業者・上位下請事業者に限られ、その他の事業者には就業実績は公開されません。
元請と上位下請には注意書きが付いています。表示されるのは「関係成立の技能者のみ」で、これは作業員名簿に登録されている技能者を指します。開示される期間も、技能者本人と元請・上位下請の関係が成立している間だけです。
立場別に、2-2で見える技能者
元請・上位下請
作業員名簿に載った技能者の就業だけが一覧に出ます。名簿に載せずに入場した人は、この一覧には現れません。
所属事業者
自社に所属する技能者の就業を全項目で見られます。自社の名簿との照合は、この立場が向いています。
つまり「入場しているのに名簿にいない人」を探すのは、元請の画面からはできません。所属事業者として自社の就業履歴を出し、自社が提出した名簿と照らします。
手順1: CSVとExcel帳票を出力する
事業者ポータルでの操作は、2-2の場合次のとおりです。
就業履歴一覧のCSVを出す
- 1
メニューを開く
事業者ポータルで「510_閲覧」から、40番の所属技能者の就業履歴を選びます。自社が関わる現場から探すときは「60_自社に関する現場・就業履歴」です。
- 2
年月と現場IDを指定する
就業期間の年月を選び、現場IDを入れて「月別集計」を押します。
- 3
CSV出力を押す
「就業履歴一覧(月別集約)」画面で「CSV出力」を押します。マニュアルによれば、CSVは確認画面を挟まず直接出力されます。
作業員名簿は「540_安全書類」の70番(社会保険の加入状況を組み込んだ作業員名簿)から、現場IDで検索し、事業者を選んで帳票出力します。施工体制台帳は同じ「540_安全書類」の「10_施工体制台帳」です。
日ごとの重複や欠落を見る2-4の出し方
2-2と同じ「510_閲覧」の40番から、年月と現場IDを入れます。「月別集計」を押すと「就業履歴一覧(月別カレンダー)」画面が表示され、ここで「CSV出力」を押すとCSVで取り出せます。
2-4は日ごとの入場が並ぶ形式なので、同じ日に複数の現場IDがある技能者や、稼働が続いたあとに抜けている日を目で追えます。2-2で出した人日の合計と食い違うときは、2-4でその技能者の日を確認し、どの日が重複または欠落しているかを絞ります。2-4の閲覧範囲も2-2と同じ考え方で、元請・上位下請には関係成立の技能者だけが表示されます。
手順2: 氏名を外してからClaudeに渡す
就業履歴には技能者の氏名が入っています。Claudeに渡す前に、氏名を連番に置き換えたファイルを作ります。対応表は手元に残し、結果を現場に戻すときだけ使います。個人情報の入力判断そのものは要配慮個人情報をClaudeに入力してよいかで整理しています。
次のスクリプトは、指定した列の値を W001 のような連番に置き換え、対応表を別ファイルに書き出します。列名は実際のCSVの先頭行を見て合わせてください。
import csv, sys
src, dst, table = sys.argv[1:4]
NAME_COLS = ["氏名"] # 先頭行を見て実際の列名に合わせる
ENC = "utf-8-sig" # 文字化けしたら "cp932" に変える
ids = {}
with open(src, encoding=ENC, newline="") as f:
rows = list(csv.DictReader(f))
fields = rows[0].keys()
for r in rows:
for c in NAME_COLS:
name = r[c]
ids.setdefault(name, f"W{len(ids)+1:03d}")
r[c] = ids[name]
with open(dst, "w", encoding="utf-8", newline="") as f:
w = csv.DictWriter(f, fieldnames=list(fields))
w.writeheader()
w.writerows(rows)
with open(table, "w", encoding="utf-8", newline="") as f:
w = csv.writer(f)
w.writerow(["id", "name"])
for n, i in ids.items():
w.writerow([i, n])python3 pseudonymize.py raw/shugyo_2-2.csv out/shugyo.csv out/table.csvClaude Codeで作業するときは、元のCSVを置いた raw フォルダに読み取り禁止のルールを入れておくと、置き換え前のファイルを誤って開かずに済みます。
{
"permissions": {
"deny": ["Read(./raw/**)"]
}
}このルールが止めるのは、Claudeの組み込みのファイル読み取りツールです。パスの指定方法は Read(./.env) や Read(./secrets/**) と同じ書式です。
手順3: 人日で数える依頼文
集計で最初につまずくのは、行数と人日が一致しないことです。現場利用料の説明では、同じ現場で朝と昼休み後に2回入場しても、1人日×1現場で10円と数えます。午前と午後で同じ元請の別の現場に入れば、2現場分で20円です。
CSVの行がカードの読み取り1回ごとか、日ごとかは、出力した実ファイルで決まります。そこで依頼文では、列の意味をClaudeに推測させず、先頭の数行を見せて対応づけさせます。
添付は、建設キャリアアップシステムから現場ID単位で出した
就業履歴一覧(月別集約)のCSVです。氏名は W001 形式に置換済みです。
1. 先頭5行を表にして、各列が何を表していると読めるか示してください。
判断できない列は、そう書いてください。
2. 同じ技能者・同じ現場・同じ日は1人日と数え、
技能者別・日別の人日を集計してください。
3. 合計人日が、行数と何行ずれるかも示してください。
4. 集計結果はCSVで出し、元の行番号を残してください。集計結果を受け取ったら、合計人日を自分でも数えます。Excelのピボットで同じ条件に絞れば足ります。数字が合わないときは、Claudeが重複とみなした行を一覧にさせると原因が見えます。
手順4: 作業員名簿と施工体制台帳に突き合わせる
人日が出たら、AZ6-bの作業員名簿と並べます。名簿側も氏名を同じ置換表で連番にしてから渡します。照合のパターンは次のとおりです。
| 食い違い | 見つかる立場 | 起きていること |
|---|---|---|
| 就業履歴があるのに名簿にいない | 見つかる立場所属事業者 | 起きていること入場した人を名簿に載せていない |
| 名簿にいるのに就業履歴がない | 見つかる立場元請・所属事業者 | 起きていること登録だけで入場していない、または打刻漏れ |
| 同じ日に複数現場の履歴がある | 見つかる立場元請・所属事業者 | 起きていること現場の掛け持ち、または現場IDの誤り |
| 名簿の事業者が施工体制台帳に無い | 見つかる立場元請 | 起きていること台帳の更新漏れ |
打刻漏れが疑われる日は、カードリーダーでの読み取りが無かった可能性があります。就業履歴は、現場のカードリーダーで蓄積されるほか、技能者や事業者が直接入力して元請が承認する経路もあります。直接入力は、就業日から数えて翌月末までが入力と承認の期限です。月をまたいだ後で空白に気づいても、期限を過ぎていれば入力できない場合があります。
打刻漏れだった日の直し方は、次の流れです。
打刻漏れの日を直接入力で補う
- 1
技能者本人か所属事業者が入力する
カードを持参し忘れた日や、読み取りを忘れた日は、技能者本人、または所属する事業者が就業履歴を直接入力します。当日以降なら入力でき、月末などにまとめて登録することもできます。
- 2
元請の承認を受ける
入力された就業履歴は、元請事業者が承認して初めて正式な就業履歴になります。承認が済むまで集計には載らないため、承認待ちの行が残っていないかを元請に確かめます。
- 3
翌月末までに済ませる
入力と承認の期限は、就業日から数えて翌月末です。たとえば10月15日の分は11月末までです。
そもそも就業履歴は、技能者がカードを現場のカードリーダーにタッチすることで蓄積されます。現場の開設時には元請が現場と契約の情報を登録するので、履歴が丸ごと無い現場は、まず現場の登録状況を確かめます。
添付は、置換済みの就業履歴の集計(shugyo_daily.csv)と、
作業員名簿の技能者一覧(meibo.csv)です。W001形式のIDで対応しています。
次の3つを別々の表で出してください。
A. 就業履歴にあって、名簿にないID
B. 名簿にあって、就業履歴がないID
C. 同じ日に2つ以上の現場IDがあるID
判断できない行は、理由つきで「要確認」にしてください。台帳との照合は、事業者名の列で同じ要領で行えます。施工体制台帳に載る範囲と、Claudeに任せてよい工程の線引きは施工体制台帳・安全書類の作成にClaudeはどこまで使えるかにあります。
現場利用料の請求額と照合する
元請事業者には、現場で技能者の就業履歴が登録された人日に応じて、1人日・1現場あたり10円(税込)の現場利用料がかかります。20人が50日就業した例では、20人×50日×10円で10,000円です。
集計した人日の合計に10円を掛ければ、請求額の目安が出ます。差が出たときは、まず集計の期間を請求の区切りに合わせます。直接入力の履歴は元請の承認で正式な就業履歴になるため、承認前のものが混じっていないかも見ます。
つまずきやすい点
落とし穴
月別集約のCSVに、期間外の日が混じっているように見える
出力の年月は月単位で指定します。締め日が月の途中にある現場では、締め日をまたぐ2か月分をそれぞれ出力し、集計側で期間を切る形が確実です。
- 元請の一覧には名簿登録者しか出ません。見落としを避けたいなら、下請各社に自社の就業履歴を出してもらい、名簿と照らす運用に分けます。
- 文字化けしたときは、スクリプトの
ENCを切り替えます。それでも列がずれる場合は、Excelで開いて保存し直すと形が揃うことがあります。 - 同じ処理を月ごとに繰り返すなら、依頼文とスクリプトを1つのフォルダにまとめ、Claudeには「先月分に差し替えて」とだけ伝える形にすると手間が減ります。繰り返しの集計を整える考え方は荷待ち時間の集計をClaudeで進める手順と同じです。
まとめ
CCUSの就業履歴は、2-2の「CSV出力」で現場ID単位に取り出せます。見える範囲は立場で変わり、名簿にいない入場者を探せるのは所属事業者だけです。集計は人日で数え、氏名を連番に置換したうえで、名簿や台帳との食い違いを3つの表にして確認します。最終的な書類の記載は、CCUSの登録内容と現場の記録で人が確かめます。