Santiago Fernández de Valderrama が自分で求人に応募するのをやめてシステムに任せると決めたとき、多くの人はリリースされることのないサイドプロジェクトだと思っていた。しかし 11 週間後、彼は 631 件の求人を評価し、354 件のカスタマイズ済み履歴書を生成し、Head of Applied AI のポジションを獲得し、システム全体をオープンソースとして公開した。GitHub で 1 週間に 35,000 スターを集め、現在では 47,000 以上になっている。
Career-Ops は Claude Code 上に構築された、キャリア特化型のスキルバンドルとして最も高度なシステムです。マルチモードのスキルアーキテクチャが実際にどう機能するかを示す教材でもあります。本記事では、ファイル構成、スキルモード、評価手法、そして技術領域を問わず転職活動に応用する方法を解説します。
Career-Ops とは何か(作者について)
Career-Ops は Claude Code 上に構築されたオープンソースの AI 求人検索システムです。リポジトリは github.com/santifer/career-ops にあり、ドキュメントとコミュニティは career-ops.org にあります。
Santiago Fernández de Valderrama は 16 年間、携帯電話修理ビジネスを創業・成長させ、最終的に売却しました。2025 年に AI 職の市場に参入したとき、応用 AI の深い経験はあったものの、求職者としてはゼロからのスタートでした。プロセスは手作業で、繰り返しが多く、時間がかかりました。「転職活動の 1 週目はすべて手作業でした。2 週目には応募をやめて Career-Ops を作り始めていました。」
設計上の核心的な洞察は、求職活動をエンジニアリングの問題として扱うことでした。求人の発見、適合性の評価、履歴書の調整、応募状況の追跡——これらすべてのステップは構造的で、繰り返し可能で、AI が処理できる程度に明確に記述できます。Claude に漠然としたことをやらせようとしていたのではなく、どのようなエージェントとして振る舞うべきかを正確に伝えるコンテキストファイルを書いていたのです。
結果として生まれたのは 14 モードのマルチエージェントシステムです。Claude Code が求人を評価し、文書を生成し、ウェブをナビゲートし、進行中のすべてのパイプラインを管理します。人間はすべての意思決定ポイントでループに残ります。量はシステムが処理します。
Career-Ops が解決する問題
2026 年にシニアポジションに応募するソフトウェアエンジニアや ML リサーチャーは構造的な問題に直面しています。関連する求人の数は多いですが、一つひとつを意味のある形で評価するには時間がかかります。
求人票を丁寧に読み、自分の経験と実際に合致しているか確認し、応募する価値があるかを判断し、関連する実績が前面に出るよう履歴書をカスタマイズする——これを適切に行うと 1 応募あたり 45〜90 分かかります。週 10 件では、本業に加えてパートタイムの仕事をしているのと同じです。週 50 件は持続不可能です。
典型的な回避策はそれぞれ新たな問題を生みます。汎用履歴書をすべてに送れば返信率が下がり、双方の時間を無駄にします。「調整」のために硬直したテンプレートを使えば、調整したように見えるが実際には調整されていない履歴書が生まれます。キーワードマッチングで求人をフィルタリングすると、実際に適合性を予測するシグナルを見逃します。
Career-Ops は人間の判断を必要としない認知作業を担います。求人要件の抽出、複数の次元にわたる適合性スコアリング、関連する実績を前面に出すための既存の証拠の再構成、ATS システムで正しくパースされる文書の作成などです。人間は出力をレビューして意思決定を行います。処理量はシステムが担います。
Santiago の数字がこのアプローチを検証しています。631 件の評価から 66 件の応募、12 件の面接プロセス、1 件の内定へとつながりました。評価からの 10% 応募率は非効率ではなく、精度です。631 件のほとんどは本当に合わない求人で、応募していれば双方の時間を無駄にしていたでしょう。
アーキテクチャの概要
Career-Ops は単一のスクリプトではありません。各モードが独立したコンテキスト、独自の振る舞い指示、場合によっては独自のツールアクセスを持つ Claude Code スキルファイルで構成された、マルチモードのエージェントシステムです。
高レベルの構造は以下のとおりです。
career-ops/
├── AGENTS.md # 正規のエージェント指示
├── CLAUDE.md # Claude Code エントリーポイント
├── cv.md # 経歴書(唯一の真実のソース)
├── article-digest.md # 任意の詳細実績・ポートフォリオ
├── config/
│ └── profile.example.yml # ユーザー設定テンプレート
├── modes/ # すべてのスキルモードファイル
│ ├── _shared.md # 全モードに注入される共有コンテキスト
│ ├── _profile.template.md # プロフィールカスタマイズテンプレート
│ ├── oferta.md # 単一求人評価
│ ├── ofertas.md # 複数求人比較
│ ├── pdf.md # ATS 対応の履歴書生成
│ ├── scan.md # 採用ポータルスキャナー
│ ├── batch.md # 並列バッチ処理
│ ├── auto-pipeline.md # エンドツーエンドパイプライン
│ ├── apply.md # フォーム自動入力
│ ├── tracker.md # 応募状況追跡
│ ├── contacto.md # LinkedIn アウトリーチ
│ ├── deep.md # 企業調査
│ ├── interview-prep.md # 面接準備
│ ├── training.md # コース・資格評価
│ ├── project.md # ポートフォリオプロジェクト適合評価
│ ├── followup.md # フォローアップメッセージ
│ ├── update.md # 自己更新メカニズム
│ └── de/ fr/ ja/ pt/ ru/ tr/ # ローカライズされたモードバリアント
├── templates/ # CV HTML テンプレート、ポータル設定
├── batch/ # コンダクター/ワーカースクリプト
├── dashboard/ # Go TUI アプリケーション
├── data/ # パイプラインデータ(gitignore 対象)
└── reports/ # 生成された評価レポート
重要なアーキテクチャ上の決定は、cv.md / config/profile.yml(ユーザーデータ、システム更新で上書きされない)と modes/(システムロジック、作者によって更新される)の分離です。これにより git pull で最新のモードを取得してもパーソナライズ設定が失われません。
modes/_shared.md ファイルは共通コンテキストレイヤーです。すべてのモードの冒頭に注入され、エージェントのアイデンティティ、コアの制約、プロフィールデータへのアクセスを確立します。_shared.md を直接編集するのではなく、config/profile.yml とプロフィールテンプレートを通じてプロフィールを設定します。
Claude Code は起動時に CLAUDE.md を読み込み、詳細なシステム仕様のある AGENTS.md に委譲します。これは CLAUDE.md をシンプルに保ちながら、他の AI ツールも読めるファイルに詳細な指示を置く一般的なパターンです。
ファイル別の詳細解説
_shared.md — 共有コンテキストレイヤー
すべてのモードが _shared.md を継承します。このファイルはいくつかのことを行います。
エージェントの役割と制約を確立します。最も重要な制約は「ユーザーのレビューなしに応募を送信しない(NEVER submit an application without the user reviewing it first)」です。これは UI のガードレールとしてではなく、指示レベルで強制されます。
プロフィールを読み込みます。共有コンテキストは config/profile.yml(ターゲットの役職、ナラティブ、実績)と cv.md(実際の職歴)を参照します。評価やコンテンツを生成するすべてのモードが両方にアクセスできます。
データの整合性ルールを定義します。システムファイルはユーザー固有のコンテンツのために変更できません。ユーザーファイルはモードの更新によって上書きできません。この分離が長い転職活動においてシステムを保守可能にします。
学習ループを設定します。評価後、エージェントはフィードバックに基づいて設定ファイルの理解を更新するよう指示されます。時間が経つにつれ、スコアリングはデフォルトのルーブリックだけでなく実際の好みに合わせて調整されます。
oferta.md — 単一求人評価
これがコアモードです。求人の URL または説明を貼り付けると、oferta.md が複数のステップで分析を実行します。
ステップ 1: 正当性の確認。 Playwright がポスティングに移動して、まだ有効であることを確認します。これは必須要件で、検索結果が古くなる可能性があるため、この確認に WebSearch を使用することは明示的に禁止されています。
ステップ 2: JD 解析。 エージェントが役職名、企業名、勤務地、シニアリティシグナル、技術要件、ソフトスキル要件を抽出します。報酬が記載されている場合は抽出します。
ステップ 3: アーキタイプ検出。 Career-Ops は AI/ML 職を 6 つの役割アーキタイプで定義しています。AI Platform Engineer、Agentic Workflows Specialist、Technical AI PM、Solutions Architect、AI Field/Developer Engineer(FDE)、Transformation Lead です。アーキタイプによって経験のどの側面が最も重く評価されるかが決まります。
ステップ 4: 多次元スコアリング。 求人は加重サブ軸を持つ 6 つのカテゴリ次元でスコアリングされます。
- 役割適合性とスキルの整合性(これはゲートパス基準で、低スコアで評価が終了する場合があります)
- シニアリティと交渉可能性のシグナル
- 報酬とターゲット市場レートの比較
- 地理的実現可能性
- 企業のステージ適合性
- プロフィールを踏まえた面接獲得可能性
出力は 1〜5 の数値スコアと A〜F のレターグレードです。
ステップ 5: トラッカーへの記録。 評価がローカルデータストアに構造化レコードとして書き込まれます。URL、企業名、役職名、スコア、グレード、評価日、ステータスが含まれます。
pdf.md — ATS 対応の履歴書生成
PDF モードは多くのユーザーにとってシステムの真価が発揮される部分です。テンプレートに記入するのではなく、経歴書と求人票を一緒に推論して、ターゲットを絞った文書を作成します。
プロセスは 7 つの明確なステップがあります。
- JD から 15〜20 のキーワードを抽出(一般的なスキルよりもコンテキスト内に登場する用語を優先)
- 言語と地域を検出(A4 vs Letter 形式、地域の慣習)
- 役割アーキタイプを確認または再検出
- この特定の役職に最も関連するプロジェクトを経歴書から 3〜4 件選択
- 各役職内の実績箇条書きを JD に最も関連するものが先頭になるよう並び替え
- 実績を捏造せずにプロフェッショナルサマリーとスキルセクションにキーワードを注入
- ATS 安全なフォーマット(OCR で処理できなくなるテーブル、カラム、グラフィックなし)で Puppeteer を通じてレンダリング
「実績を捏造しない(without fabricating experience)」という制約が全体を通じて強制されます。システムは既存の実績を整理して再構成します。成果を捏造しません。
Santiago の 631 件の評価を通じて、このモードは 354 件のカスタマイズ済み PDF を生成しました。約 1.8 件の評価に 1 件の割合で、評価した求人の約半数が品質閾値をクリアしたことを意味します。
scan.md — 採用ポータルスキャナー
求人ボードを検索する代わりに、scan.md は企業の採用ページに直接アクセスします。システムには 45 社以上の事前設定済みエントリーが付属しています。
- AI ラボ: Anthropic、OpenAI、Mistral、Cohere
- 音声 AI: ElevenLabs、PolyAI、Deepgram、Vapi
- 開発者プラットフォーム: Retool、Airtable、Vercel、Temporal
- ATS バックアップのポータル: Greenhouse、Ashby、Lever、Wellfound
portals.yml に記載された各企業に対して、Playwright が採用ページを読み込み、title_filter.positive のキーワードを適用し、マッチした求人を抽出します。新しい URL は重複なしにパイプラインキューに追加されます。
portals.yml にエントリーを追加することで拡張できます。
portals:
- name: "Databricks"
url: "https://www.databricks.com/company/careers/open-positions"
type: "greenhouse"
title_filter:
positive: ["ML", "AI", "machine learning", "applied scientist"]
negative: ["intern", "sales", "marketing"]
type フィールドがスキャナーに抽出にどの DOM パターンを使用するかを伝えます。Greenhouse、Ashby、Lever はそれぞれ異なる構造を持っています。カスタムエントリーはデフォルトで汎用エクストラクターを使用します。
batch.md — 並列処理
未処理 URL が 10 件以上溜まったとき、batch.md はコンダクター/ワーカーアーキテクチャを使用して並列実行します。
コンダクターがキューを分割し、複数の Claude Code サブプロセス(ワーカーごとに 1 つ)を起動して完了を監視します。各ワーカーが割り当てられた URL を独立して評価し(それぞれ独自の 200K コンテキストウィンドウで)、結果を共有データストアに書き込みます。コンダクターが結果をマージし、失敗を処理します。
Santiago はピーク時に 122 URL を同時処理しました。効率化の利点は大きく、直列で 3 時間以上かかる処理が 20〜30 分で完了します。
重複排除システムは異なるパスを通じて同じポジションにマッピングされる URL を検出します。正確な URL マッチングと、正規化された企業名 + 役職名の比較を使用します。Santiago は転職活動全体で 680 件の URL を重複排除し、同じ求人を再評価することはゼロでした。
interview-prep.md — 面接準備
応募が面接段階に進んだとき、interview-prep.md は評価済みの求人レコードと経歴書の両方に基づいて準備資料を生成します。
モードは行動面接の質問に STAR + Reflection 形式(Situation、Task、Action、Result、プラス次回どうするか)を使用します。各想定質問タイプについて、テストされる想定コンピテンシーに経歴書の具体的な経験をマッピングします。
技術面接では、役割アーキタイプと企業プロフィールに基づいて最も可能性の高い技術評価領域を特定し、ポートフォリオのどのプロジェクトについて議論すべきかとその理由を提案します。
出力は構造化された準備文書であり、スクリプトではありません。目標は自分自身の経験を明確に表現できる形で表面化することであり、事前に書かれた回答を暗記することではありません。
contacto.md — アウトリーチとネットワーキング
contacto.md はコールドコンタクトがプロセスを加速できる可能性のある求人に対して LinkedIn アウトリーチを処理します。ターゲット企業と役職が与えられると、以下を実行します。
- 最も関連性の高いコンタクトを特定(エンジニアリングマネージャー、チームリード、または見つけられる場合は採用担当者)
- 真の個人化ポイントのためにコンタクトの経歴を調査
- 相手の仕事とあなたのバックグラウンドの具体的なつながりを参照する短く具体的なメッセージを下書き
- フォローアップのタイミングと枠組みを提案
ここでの制約は量よりも質です。システムは汎用的なアウトリーチを強く推奨しません。受信者の仕事について具体的なことを参照しないメッセージは、メッセージを送らないよりも悪い結果をもたらします。
インストール手順
完全なセットアップには約 20 分かかります。
ステップ 1: 前提条件
Claude Code がインストールされて設定済みであること、Node.js 18 以上、そしてターミナルダッシュボードが必要な場合は任意で Go 1.21 以上が必要です。
ステップ 2: クローンと依存関係のインストール
git clone https://github.com/santifer/career-ops.git
cd career-ops
npm install
npx playwright install chromium
Playwright はポータルスキャナーと求人確認に必要です。Chromium のインストールには数分かかります。
ステップ 3: doctor スクリプトの実行
npm run doctor
これが環境をチェックします。Node のバージョン、Playwright のインストール、Claude Code の接続性を確認します。続行する前に問題があれば修正してください。
ステップ 4: プロフィールの設定
cp config/profile.example.yml config/profile.yml
profile.yml を開いて以下を記入します。
nameとemail— 生成された文書で使用target_roles— ターゲットの役職タイトルのリスト(ポータルスキャニングフィルターとアーキタイプ選択に使用)narrative— 一人称で書いた 2〜3 文のプロフェッショナルサマリーproof_points— 具体的な指標を持つ 5〜8 件の実績target_compensation— 報酬スコアリングに使用するレンジgeography— 現在地と転居意志
ステップ 5: 経歴書の作成
プロジェクトルートに cv.md を作成します。これが Markdown 形式のマスター経歴書です。明確なセクション(プロフェッショナルサマリー、職歴(役職、企業名、在職期間、箇条書き)、スキル、学歴)で構成します。
cv.md の品質がアウトプット品質に最も大きく影響します。指標を具体的に記載し、能動的な動詞を使用し、技術スタックの詳細を含めてください。PDF モードはこのファイルから選択して並び替えます。ここにないコンテンツを作り出すことはできません。
任意: 最も重要なプロジェクトの詳細情報を含む article-digest.md を作成します。これにより PDF モードがシニア職向けにより豊富な素材を活用できます。
ステップ 6: ポータルの設定
cp templates/portals.example.yml portals.yml
portals.yml を編集して title_filter.positive をターゲット役職キーワードに更新し、デフォルトリストにない監視したい企業を追加します。
ステップ 7: 整合性の確認
node cv-sync-check.mjs
node verify-pipeline.mjs
これらのスクリプトが経歴書とパイプラインデータの一貫性を確認します。cv.md に大きな変更を加えた後に実行してください。
ステップ 8: 起動
career-ops ディレクトリで Claude Code を開きます。
claude
Claude が CLAUDE.md を読み込んでシステムをロードします。/career-ops と入力して利用可能なコマンドを確認してください。準備完了です。
Career-Ops のワークフロー実例
初期セットアップ後の典型的なセッションを紹介します。
朝: ディスカバリー実行
/career-ops scan
Career-Ops が Playwright をロードし、portals.yml の各ポータルにアクセスし、マッチするタイトルをフィルタリングして、新しい URL を data/pipeline.tsv に追加します。設定したポータル数に応じて 8〜15 分かかります。完了すると概要が表示されます。「7 件の新しい求人を発見。2 件の重複 URL をスキップ。パイプラインに 23 件の保留中エントリー」
バッチ評価
23 件の未処理求人のキューで:
/career-ops batch
コンダクターがワーカーを起動します。各ワーカーがキューのサブセットを評価します。Playwright を通じてポスティングを読み込んで有効であることを確認し、JD を解析し、プロフィールと照合してスコアリングし、構造化されたレポートを reports/ に書き込みます。バッチ全体が 20〜30 分で完了します。
完了したら、ダッシュボード(./dashboard/career-dashboard --path ..)を開いてグレード別に結果を閲覧します。2 件の A グレード、5 件の B グレード、11 件の C グレード、5 件の D/F グレードという結果が見えます。
詳細評価と PDF 生成
A グレードの評価の一つを開いてレポートを読みます。直感が確認されました。良い適合性、興味深い企業、報酬範囲内。応募することに決めます。
/career-ops pdf
Career-Ops がこの特定の求人に対して PDF モードを実行します。約 4 分かかります。キーワード抽出、アーキタイプ確認、プロジェクト選択、箇条書きの並び替え、PDF レンダリング。出力は企業名と役職名がファイル名に含まれた reports/ のファイルです。
PDF を開いてレビューします。サマリーがあなたのバックグラウンドを正確に反映しています。選択されたプロジェクトが適切です。キーワード密度が自然で、詰め込まれていません。PDF に 2 箇所直接編集を加え、data/tracker.tsv の対応するエントリーを「applied」に更新し、自分で応募を送信します。
システムが評価し、あなたが決定する。人間がループに留まる。
フォローアップ追跡
1 週間後にステータスを確認します。
/career-ops tracker
ダッシュボードにパイプラインが表示されます。応募済み、進行中、不合格、保留。受け取った返信に基づいてステータスを更新します。followup.md が 10 日間返信のない応募に対するフォローアップメッセージを生成します。
他の業界へのカスタマイズ
Career-Ops は AI/ML 職向けのアーキタイプとスコアリングウェイトで提供されています。異なる技術分野に適用する場合、必要なカスタマイズは主に config/profile.yml と modes/_shared.md のアーキタイプ定義の 2 ファイルです。
フロントエンドエンジニア
target_roles をフロントエンド固有のタイトル(Staff Frontend Engineer、Principal UI/UX Engineer、Frontend Platform Lead)に変更します。スコアリングの次元は概ね有効ですが、スキル整合性セクションでフロントエンドスタックの適合性(React、Next.js、パフォーマンス指標)を適切に重み付けする必要があります。プロフィールの proof_points をユーザー向けのインパクト指標(ロード時間の改善、コンバージョン向上、コンポーネントライブラリの採用状況)を重視するよう更新します。
バックエンドおよびプラットフォームエンジニア
デフォルトのアーキタイプシステムには Solutions Architect が含まれており、シニアバックエンドおよびインフラ職に概ね対応しています。Staff SRE、Principal Platform Engineer、Engineering Manager などの役職に対して _shared.md でカスタムアーキタイプ定義を補完します。調整する主要な次元は、システム設計のスコープ、スケールインジケーター(RPS、データ量、チームサイズ)、オンコール/信頼性の経験です。
データサイエンティストとアナリスト
統計的手法の厳密さ、ドメイン専門知識の適合性、ツールスタック(SQL、Python、R、Spark)、ビジネスインパクトのフレームに重み付けした次元を持つ Data Science アーキタイプを追加します。データサイエンスの求人票は実際に何が必要かで大きく異なります。アーキタイプ検出により「データサイエンティスト」の役職が実際には PM なのか、アナリストなのか、リサーチポジションなのかを判別できます。
エンジニアリングマネージャー
EM 職のスコアリングには異なる次元が必要です。チームサイズとスコープ、人材マネジメントの幅、技術的信頼性のシグナル、クロスファンクショナルな影響力、採用・組織構築の経験などです。PDF モードは引き続きうまく機能します。個々の技術的貢献よりもリーダーシップのインパクトを前面に出すよう経験を再構成します。
新しいアーキタイプを追加するには、modes/_shared.md にセクションを追加します。
## Archetype: Engineering Manager
**Signals:** "team lead", "manage engineers", "people manager", "director of engineering"
**CV weighting:**
- Lead with team size and scope in role summaries
- Emphasize cross-functional projects and stakeholder management
- Highlight hiring and org building accomplishments
- Technical depth: sufficient but not primary signal
**Scoring adjustment:**
- Company stage fit weight: 1.5x (EM roles are more stage-sensitive)
- Skills alignment: focus on leadership competencies, not just technical stack
エージェントは評価と PDF 生成の両方でこのアーキタイプ定義を尊重します。
Career-Ops vs 独自のキャリアスキルを構築すること
Career-Ops は包括的ですが、意見が反映されています。全面的に採用する前に、独自のスキルをゼロから構築することとの関係を理解する価値があります。
Career-Ops が明確に勝る点:
インフラはすでに構築されています。Playwright を使ったポータルスキャニング、ATS 最適化 PDF レンダリング、重複排除ロジック、バッチオーケストレーション——これらの開発とデバッグには数週間かかりました。目標が求職活動ツールの構築方法を学ぶことではなく、真剣な転職活動を行うことであれば、Career-Ops から始めてください。
評価方法論が検証済みです。Santiago のルーブリックは 631 件の実際の評価と実際の採用結果に対するキャリブレーションから生まれました。ゼロから設計したスコアリングシステムには盲点があり、発見するのに数ヶ月の実データが必要になります。
コミュニティがアクティブです。Discord に 3,300 以上のメンバーがいて、イシュートラッカーがアクティブで、定期的な更新があります。大手 ATS が DOM 構造を変更してスキャナーが壊れたとき、すぐに修正されます。
独自に構築することが有意義な場合:
キャリアが非常に異なる評価シグナルを持つ領域にある場合。臨床研究科学者、投資銀行家、ゲーム開発者はそれぞれ異なる採用プロセス、異なる履歴書の慣習、異なるポータルエコシステムを持っています。Career-Ops はこれらに対して大幅な再設計が必要になります。
システムを拡張できる程度に深く理解したい場合。シンプルなバージョン(単一モードの評価器、PDF 生成のみ、ポータルスキャナーのみ)を先に構築することで、完全なシステムを採用したときにより効果的に適用できるパターンを学べます。
スタンドアロンプロジェクトではなく既存の Claude Code 環境で機能するスキルが必要な場合。Career-Ops は独自の CLAUDE.md を持つプロジェクトとして実行するよう設計されています。経歴書を読んで求人を評価する通常の開発環境に組み込まれたキャリア関連スキルが必要な場合、カスタムスキルの方が適切です。
真剣な転職活動をしているほとんどのエンジニアへの正直な答えは、Career-Ops から始め、ターゲットドメイン向けにアーキタイプ定義とポータルリストをカスタマイズし、既存のインフラを置き換えるのではなくその上に構築することです。
転職活動のコンテキストを超えて適用できるスキル設計パターンについては、スキルコレクションで 2026 年に人々が実際に使っているスキルの全体像を確認できます。
よくある質問
AI 職以外にも対応していますか?
はい、カスタマイズが必要ですが対応します。デフォルトのアーキタイプは AI/ML に特化していますが、基盤となるアーキテクチャ(多次元評価、ATS 対応 PDF 生成、ポータルスキャニング)はどの技術職でも機能します。_shared.md のアーキタイプを再定義してポータルリストを更新する必要があります。フロントエンドとバックエンドエンジニアは 2〜3 時間の設定作業でシステムを適応させることに成功しています。
実行コストはどのくらいですか?
Santiago は他のプロジェクトですでに使用していた月額 200 ドルの Claude Max プランで転職活動全体を実行したので、限界コストはほぼゼロでした。Career-Ops を Claude Code の主な用途として使用する場合、量に応じて月額 30〜80 ドル程度で、バッチ処理が最大のコストドライバーです。システムは Gemini CLI やその他の Claude Code 互換ツールでも動作することが文書化されています。
自動で応募を送信しますか?
いいえ、これは柔らかいデフォルトではなくハードな制約です。apply.md モードはフォーム入力を支援しますが、送信前で止まります。Santiago の設計原則は明確です。AI がフィルタリングして準備し、人間が決定して送信します。すべての PDF は送信前にレビューされます。これは倫理的な立場だけではなく、実用的な理由でもあります。人間のレビューなしで送られた応募は、予期しなかったフォローアップの質問に対応できません。
ポータルが DOM 構造を変えたら?
更新されるまでそのポータルのスキャナーが壊れます。portals.yml フォーマットには既知の ATS 構造にマッピングされる type フィールドが含まれています。Greenhouse、Ashby、Lever がマークアップを更新すると、ポータル抽出ロジックのパッチで修正されます。汎用エクストラクターを使用するカスタムエントリーはより壊れやすいです。コミュニティの Discord では通常、主要な ATS の変更に対して 24〜48 時間以内に報告とパッチが提供されます。
Windows で動きますか?
コアの評価と PDF モードは Windows で動作します。並列セッションに tmux を使用するバッチ処理は、WSL2 か Windows ネイティブの並列化アプローチへの変更が必要です。Go ダッシュボードは Windows でクリーンにビルドできます。セットアップドキュメントでは完全な機能パリティが必要なユーザー向けに WSL2 のパスが説明されています。
プロフィールデータをプライベートに保つにはどうすればいいですか?
Career-Ops はローカルファースト設計です。cv.md、config/profile.yml、data/ ディレクトリはすべてローカルファイルで、設定された AI プロバイダーに直接送信されます。プロジェクトはホームに接続しません。data/ はデフォルトで gitignore 対象なので、パブリックフォークに git push しても応募履歴は公開されません。サードパーティの AI プロバイダーを使用する場合、それぞれの標準的なデータ取り扱いポリシーが適用されます。
不合格から学習して改善しますか?
_shared.md の学習ループは、各評価後のフィードバックに基づいて設定を更新するようエージェントに指示します。実際には、アプリケーションに対して(ポジティブまたはネガティブな)返信が来たとき、トラッカーに結果を記録すると、システムがパターンを特定できます。たとえば A グレードでも書類通過していない企業や役職タイプなどです。_shared.md のルーブリックウェイトは学んだことを反映するよう手動で調整できます。このキャリブレーションは転職活動の 2〜3 週目に行う最も価値のある作業の一つです。
Career-Ops は Claude Code スキルが複雑で現実のある問題に対して真剣にエンジニアリングされたときどのようなものになるかを示しています。ここに見られるアーキテクチャパターン(共有コンテキスト注入、モード分離、コンダクター/ワーカーバッチ処理、指示レベルでの HITL 制約)は、他の複雑なワークフロー自動化に直接転用できます。転職活動のドメインは、これらのパターンが最も完全な実装を得た場所に過ぎません。
リポジトリは github.com/santifer/career-ops にあります。コミュニティは career-ops.org にあります。
Claude Code スキルの全体像については、スキルコレクションをご参照ください。独自のスキルを作成するには、Career-Ops が使用しているパターン(共有コンテキストレイヤー、モード分離、数百セッションにわたって Claude が確実に従う指示の構造化)をカバーしたスキル作成ガイドを参照してください。