mcpField
R
resume-skill-extraction

resume-skill-extraction

github.com/happy-technologies-llcデータ・データベース4141 回インストール2 日前に更新
リポジトリ

resume-skill-extraction について

ServiceNow のタレント管理を使う採用担当者や HR チーム向けの履歴書スキル抽出スキルです。候補者の経験をスキルとして構造化し、組織のコンピテンシーフレームワークに対応付け、求人要件と比較します。

主な機能

  1. 01履歴書からスキルと資格を抽出
  2. 02スキルを組織の分類体系に対応付け
  3. 03求人要件とスキルを比較
  4. 04候補者プロフィールに構造化データを記録
  5. 05人材パイプラインの一括分析

活用シーン

  1. 01求人要件に照らした候補者の選考
  2. 02エンジニア職の候補者パイプライン分析
  3. 03社内異動に向けた従業員スキル評価

MCP 対応

SN-Query-Table、SN-Get-Record、SN-Natural-Language-Search で候補者、求人、スキル情報を取得し、SN-Update-Record で候補者プロフィールを更新します。

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/happy-technologies-llc/happy-platform-skills --skill resume-skill-extraction

インストール後、Claude Code で/resume-skill-extractionを入力して読み込まれたか確認します。

詳細

履歴書からのスキル抽出

概要

このスキルは、ServiceNow のタレント管理モジュールに保存された履歴書情報から、スキル、資格、経験に関する構造化データを抽出します。次のことに役立ちます。

  • 候補者のレコードからスキル、認定資格、資格を解析して抽出する
  • 抽出したスキルを組織のコンピテンシーフレームワークに対応付ける
  • 候補者の資格を求人要件と比較する
  • 対象職種に対するスキルの不足と強みを特定する
  • 構造化されたスキルデータをタレントプロフィールのレコードに入力する
  • タレントパイプライン分析向けの一括抽出をサポートする

使用する場面: 採用担当者や人事タレントチームが、候補者の応募書類からスキルを体系的に抽出・分類したり、候補者を募集中の求人と照合したり、要員計画のためにコンピテンシープロフィールを作成したりする場合に使用します。

前提条件

  • ロール: sn_hr_tm.recruiter、sn_hr_tm.hiring_manager、または sn_hr_core.manager
  • プラグイン: com.sn_hr_service_delivery(HR Service Delivery)、com.sn_hr_talent_management(Talent Management)
  • アクセス権: sn_hr_tm_candidate、sn_hr_tm_skill、sn_hr_tm_competency、sn_hr_tm_job_requisition への読み取り/書き込みアクセス権
  • 知識: 組織のコンピテンシーフレームワークと職種ファミリー構成に関する理解

手順

ステップ 1:候補者レコードを取得する

履歴書データと応募の詳細を含む候補者プロフィールを取得します。

MCP を使用する場合:

Tool: SN-Query-Table
Parameters:
  table_name: sn_hr_tm_candidate
  query: number=[candidate_number]
  fields: sys_id,number,first_name,last_name,email,phone,source,stage,resume_text,resume_content,current_title,current_employer,years_experience,education_level,location,skills_summary
  limit: 1

REST API を使用する場合:

GET /api/now/table/sn_hr_tm_candidate?sysparm_query=number=[candidate_number]&sysparm_fields=sys_id,number,first_name,last_name,email,phone,source,stage,resume_text,resume_content,current_title,current_employer,years_experience,education_level,location,skills_summary&sysparm_display_value=true&sysparm_limit=1
ステップ 2:履歴書の添付ファイルを取得する

履歴書がテキストフィールドではなく添付ファイルとして保存されている場合は、添付ファイルのメタデータを取得します。

MCP を使用する場合:

Tool: SN-Query-Table
Parameters:
  table_name: sys_attachment
  query: table_name=sn_hr_tm_candidate^table_sys_id=[candidate_sys_id]^content_typeLIKEpdf^ORcontent_typeLIKEdoc^ORcontent_typeLIKEtext
  fields: sys_id,file_name,content_type,size_bytes,sys_created_on
  limit: 5

REST API を使用する場合:

GET /api/now/table/sys_attachment?sysparm_query=table_name=sn_hr_tm_candidate^table_sys_id=[candidate_sys_id]&sysparm_fields=sys_id,file_name,content_type,size_bytes,sys_created_on&sysparm_limit=5

# Download attachment content:
GET /api/now/attachment/{attachment_sys_id}/file
ステップ 3:対象の求人情報を取得する

比較に必要なスキルと資格を把握するため、求人情報を取得します。

MCP を使用する場合:

Tool: SN-Query-Table
Parameters:
  table_name: sn_hr_tm_job_requisition
  query: number=[requisition_number]
  fields: sys_id,number,title,description,department,location,job_family,required_skills,preferred_skills,minimum_education,minimum_experience,competencies,status,hiring_manager
  limit: 1

REST API を使用する場合:

GET /api/now/table/sn_hr_tm_job_requisition?sysparm_query=number=[requisition_number]&sysparm_fields=sys_id,number,title,description,department,location,job_family,required_skills,preferred_skills,minimum_education,minimum_experience,competencies,status,hiring_manager&sysparm_display_value=true&sysparm_limit=1
ステップ 4:組織のコンピテンシーフレームワークを取得する

スキルの対応付けに使用するコンピテンシーの定義を取得します。

MCP を使用する場合:

Tool: SN-Query-Table
Parameters:
  table_name: sn_hr_tm_competency
  query: active=true^job_familyLIKE[target_job_family]
  fields: sys_id,name,description,category,proficiency_levels,job_family,required_level,active
  limit: 50

REST API を使用する場合:

GET /api/now/table/sn_hr_tm_competency?sysparm_query=active=true^job_familyLIKEEngineering&sysparm_fields=sys_id,name,description,category,proficiency_levels,job_family,required_level&sysparm_display_value=true&sysparm_limit=50
ステップ 5:既存のスキル分類体系を取得する

抽出したスキルを標準化された項目に対応付けるため、組織のスキル分類体系を取得します。

MCP を使用する場合:

Tool: SN-Query-Table
Parameters:
  table_name: sn_hr_tm_skill
  query: active=true
  fields: sys_id,name,category,skill_type,description,active
  limit: 200

REST API を使用する場合:

GET /api/now/table/sn_hr_tm_skill?sysparm_query=active=true&sysparm_fields=sys_id,name,category,skill_type,description&sysparm_display_value=true&sysparm_limit=200
ステップ 6:履歴書からスキルを抽出して分類する

履歴書のテキストを解析し、抽出した情報を分類します。

=== SKILL EXTRACTION RESULTS ===

Candidate: John Martinez (CND0004521)
Current: Senior DevOps Engineer at TechCorp
Experience: 8 years

--- Technical Skills ---
| Skill               | Proficiency | Years | Matched Taxonomy Entry |
|---------------------|-------------|-------|------------------------|
| Kubernetes           | Expert      | 5     | SKL0001234 - Kubernetes |
| AWS (EC2, S3, Lambda)| Expert      | 6     | SKL0001201 - AWS Cloud  |
| Terraform            | Advanced    | 4     | SKL0001256 - Terraform  |
| Python               | Advanced    | 7     | SKL0001102 - Python     |
| Jenkins/CI-CD        | Expert      | 6     | SKL0001189 - CI/CD      |
| Docker               | Expert      | 5     | SKL0001233 - Docker     |
| Ansible              | Intermediate| 2     | SKL0001267 - Ansible    |

--- Certifications ---
| Certification                        | Date    | Mapped Qualification |
|--------------------------------------|---------|----------------------|
| AWS Solutions Architect Professional | 2024-06 | QAL0000456           |
| Certified Kubernetes Administrator   | 2023-11 | QAL0000489           |
| HashiCorp Terraform Associate        | 2025-01 | QAL0000512           |

--- Education ---
| Degree                    | Institution          | Year |
|---------------------------|----------------------|------|
| B.S. Computer Science     | State University     | 2018 |
| M.S. Information Systems  | Tech University      | 2021 |

--- Soft Skills ---
- Team Leadership (managed team of 6)
- Cross-functional collaboration
- Incident management and on-call coordination
- Technical documentation and knowledge sharing

--- Unmapped Skills (New to Taxonomy) ---
- Pulumi (Infrastructure as Code - no taxonomy match)
- Backstage (Developer Portal - no taxonomy match)
ステップ 7:求人要件と照合する

抽出したスキルを対象の求人情報と照合します。

=== SKILL GAP ANALYSIS ===

Requisition: REQ0002345 - Staff Site Reliability Engineer
Department: Platform Engineering

--- Required Skills Match ---
| Required Skill      | Status  | Candidate Level | Required Level |
|---------------------|---------|-----------------|----------------|
| Kubernetes           | MATCH   | Expert          | Advanced       |
| Cloud Platform (AWS) | MATCH   | Expert          | Advanced       |
| CI/CD Pipelines      | MATCH   | Expert          | Intermediate   |
| Python or Go         | PARTIAL | Python-Advanced | Advanced       |
| Monitoring (Datadog) | GAP     | Not found       | Intermediate   |

--- Preferred Skills Match ---
| Preferred Skill      | Status  | Candidate Level |
|----------------------|---------|-----------------|
| Terraform/IaC        | MATCH   | Advanced        |
| Incident Response    | MATCH   | Experienced     |
| Service Mesh (Istio) | GAP     | Not found       |

--- Competency Alignment ---
| Competency              | Required Level | Assessed Level | Status |
|-------------------------|----------------|----------------|--------|
| Infrastructure Design   | Level 4        | Level 4        | MET    |
| Automation Engineering  | Level 4        | Level 5        | EXCEEDS|
| Observability           | Level 3        | Level 2        | GAP    |
| Leadership              | Level 3        | Level 3        | MET    |

Overall Match Score: 82% (Strong Candidate)
Key Gaps: Monitoring/Observability tooling, Service Mesh
Key Strengths: Infrastructure automation, Cloud architecture, CI/CD
ステップ 8:抽出したスキルで候補者レコードを更新する

構造化されたスキルデータを候補者プロフィールに書き戻します。

MCP を使用する場合:

Tool: SN-Update-Record
Parameters:
  table_name: sn_hr_tm_candidate
  sys_id: [candidate_sys_id]
  data:
    skills_summary: "Kubernetes(Expert), AWS(Expert), Terraform(Advanced), Python(Advanced), Docker(Expert), CI/CD(Expert), Ansible(Intermediate)"
    education_level: "Masters"
    years_experience: 8

REST API を使用する場合:

PATCH /api/now/table/sn_hr_tm_candidate/[candidate_sys_id]
Content-Type: application/json
{
  "skills_summary": "Kubernetes(Expert), AWS(Expert), Terraform(Advanced), Python(Advanced), Docker(Expert), CI/CD(Expert), Ansible(Intermediate)",
  "education_level": "Masters",
  "years_experience": 8
}

ツールの使用方法

MCP ツールのリファレンス
ツール使用する場面
SN-Query-Table候補者、求人情報、スキル分類体系、コンピテンシーを検索する
SN-Natural-Language-Search条件に合う候補者や職種を自然言語で検索する
SN-Get-Record履歴書の内容を含む候補者レコード全体を取得する
SN-Update-Record抽出したスキルデータを候補者プロフィールに書き戻す
REST API のリファレンス
エンドポイントメソッド目的
/api/now/table/sn_hr_tm_candidateGET/PATCH候補者レコードと履歴書データ
/api/now/table/sn_hr_tm_job_requisitionGET求人要件
/api/now/table/sn_hr_tm_skillGET組織のスキル分類体系
/api/now/table/sn_hr_tm_competencyGETコンピテンシーフレームワークの定義
/api/now/table/sn_hr_tm_qualificationGET認定資格と資格のレコード
/api/now/table/sys_attachmentGET履歴書ファイルの添付ファイル

ベストプラクティス

  • スキル名を正規化する: バリエーション(例:「k8s」、「Kube」、「Kubernetes」)を、単一の標準分類項目に対応付けます
  • 元のテキストを保持する: 監査できるよう、正規化した対応付けとともに抽出した生テキストも保存します
  • 複数形式の履歴書に対応する: PDF、DOCX、プレーンテキストをサポートします。抽出品質は形式によって異なります
  • 資格を検証する: 資格の申告内容を、既知の認定機関や有効期限と照合します
  • 習熟度の指標を活用する: 自己申告のレベルだけでなく、利用年数、プロジェクトの複雑さ、リーダーとしての役割など、文脈から習熟度を推定します
  • データのプライバシーを尊重する: 履歴書データは PII です。抽出結果へのアクセスは、権限を持つ採用担当者に限定します
  • 分類体系を定期的に更新する: 対応付けられていないスキルにフラグを立て、分類体系の管理者が確認し、必要に応じて追加できるようにします

トラブルシューティング

「履歴書のテキストフィールドが空です」

原因: 履歴書がテキストフィールドに解析されず、添付ファイルとしてのみ保存されている可能性があります
解決策: 候補者レコードの sys_attachment をクエリし、添付ファイル API を使ってファイルの内容をダウンロードします

「分類体系に一致するスキルがありません」

原因: 組織のスキル分類体系に、すべての技術分野が含まれていない可能性があります
解決策: 対応付けられていないスキルを別途記録し、分類体系の拡張に向けてフラグを立てます。一致しないスキルを破棄しないでください

「候補者の応募が求人に紐付いていません」

原因: 応募レコードで別の参照フィールドが使われている可能性があります
解決策: sn_hr_tm_candidate_application を candidate=[candidate_sys_id] でクエリし、紐付けレコードと求人への参照を見つけます

「コンピテンシーフレームワークが空を返します」

原因: コンピテンシーに職種ファミリーのタグが付いていないか、別の分類が使われている可能性があります
解決策: job_family フィルターを指定せずにクエリし、説明とカテゴリに基づいてコンピテンシーを手動で照合します

例

例 1:候補者 1 人のスクリーニング

入力:「求人 REQ0002345 に対する候補者 CND0004521 のスキルを抽出する」

手順:

  1. sn_hr_tm_candidate をクエリして履歴書データを取得します
  2. sn_hr_tm_job_requisition をクエリして要件を取得します
  3. sn_hr_tm_skill からスキル分類体系を取得します
  4. 履歴書のテキストからスキルを抽出し、分類します
  5. 求人と照らし合わせてギャップ分析を実施します
  6. 構造化データで候補者レコードを更新します
例 2:パイプラインの一括分析

入力:「エンジニアリング職の求人に応募しているすべての候補者からスキルを抽出する」

Tool: SN-Query-Table
Parameters:
  table_name: sn_hr_tm_candidate_application
  query: job_requisition.departmentLIKEEngineering^status=active
  fields: sys_id,candidate,job_requisition,status,applied_date,stage
  limit: 50

次に、各候補者を反復処理してスキルを抽出し、比較します。

例 3:社内異動に向けたスキル評価

入力:「現在の従業員が社内異動する場合のスキルを評価する」

Tool: SN-Query-Table
Parameters:
  table_name: sn_hr_core_profile
  query: user=[employee_sys_id]
  fields: sys_id,user,department,job_title,skills,certifications,education,years_in_role
  limit: 1

同じギャップ分析フレームワークを使い、従業員の既存プロフィールにあるスキルと、対象職務の要件を比較します。

関連スキル

  • hrsd/persona-assistant - 社内異動に関する個別の HR ガイダンス
  • hrsd/case-summarization - 人材プロセスに関連する HR ケースを要約する
  • hrsd/sentiment-analysis - 候補者体験の感情を評価する
  • knowledge/duplicate-detection - 重複する候補者プロフィールを検出する
  • reporting/trend-analysis - 求人全体のスキル需要の傾向を分析する

コメント