Indeed XMLフィード と Google for Jobs JSON-LD、解説
2つの主要な配信チャネル
Indeed または Google for Jobs に求人を掲載する場合、2つのオプションがあります:
- 直接掲載 — Indeed.com にログインして、フォームに入力し、公開をクリック
- フィード経由での配信 — 機械可読形式(XMLまたはJSON-LD)で独自の求人リストを提供すると、求人ボードがフィードから引き出してインデックスします
直接掲載は簡単ですが制限があります。一方、フィード配信はやや技術的ですが、正確な制御が可能です。システム内で求人の状態、給与、または要件を更新できます。これらの変更は数時間以内に Indeed に反映され、データを再入力する必要はありません。
ほとんどの真摯な採用チームはフィードを使用しています。
Indeed XML形式
Indeed は独自の XML フィードを受け入れます。以下はその構造です:
<?xml version="1.0" encoding="UTF-8"?>
<source>
<publisher>Your Company Name</publisher>
<publisherurl>https://yourcompany.com</publisherurl>
<lastBuildDate>2026-05-21T10:00:00Z</lastBuildDate>
<job>
<title>Senior Backend Engineer</title>
<date>2026-05-21T08:00:00Z</date>
<repourl>https://yourcompany.com/jobs/senior-backend-engineer</repourl>
<description><![CDATA[
<p>We are hiring a senior backend engineer...</p>
<ul>
<li>5+ years Python/Go experience</li>
</ul>
]]></description>
<salary>120000</salary>
<hiringOrganization>Your Company</hiringOrganization>
<jobLocation>
<countryName>US</countryName>
<stateName>California</stateName>
<cityName>San Francisco</cityName>
</jobLocation>
<employmentType>FULL_TIME</employmentType>
<jobCategory>ENGINEER</jobCategory>
</job>
</source>
主要な要素:
<title>: 職種名(必須)<description>: 完全な求人説明。HTMLまたは特殊文字が含まれている場合は<![CDATA[...]]>で囲んでください。CDATA 内部 に HTML を含めないでください。テキストをきれいな状態に保つか、HTML マークアップを追加してください。<salary>: USD での基本給。一部の地域は給与範囲を受け入れていますが、Indeed は主に単一の値をインデックスしています。<jobLocation>: 都市、州、国。リモートの場合は、省略するか、都市を「Remote」に設定してください。<date>: 求人がいつ掲載されたか(ISO 8601形式)。Indeed はこれを使用して新しい掲載を優先します。<repourl>: その特定の求人のキャリアページへのリンク。誰かが「Apply」をクリックすると、ここにランディングします。<employmentType>: FULL_TIME、PART_TIME、CONTRACT、TEMPORARY
Google for Jobs: JSON-LD
Google は JSON-LD で JobPosting 構造化データと呼ばれる異なる形式を使用しています。これは <script type="application/ld+json"> タグとしてHTML に埋め込まれます。
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "JobPosting",
"title": "Senior Backend Engineer",
"description": "We are hiring a senior backend engineer...",
"identifier": {
"@type": "PropertyValue",
"name": "Your Company",
"value": "job_123"
},
"datePosted": "2026-05-21",
"hiringOrganization": {
"@type": "Organization",
"name": "Your Company",
"sameAs": "https://yourcompany.com",
"logo": "https://yourcompany.com/logo.png"
},
"jobLocation": {
"@type": "Place",
"address": {
"@type": "PostalAddress",
"streetAddress": "123 Main St",
"addressLocality": "San Francisco",
"addressRegion": "CA",
"postalCode": "94105",
"addressCountry": "US"
}
},
"baseSalary": {
"@type": "PriceSpecification",
"currency": "USD",
"minValue": 120000,
"maxValue": 160000,
"unitText": "YEAR"
},
"employmentType": "FULL_TIME",
"validThrough": "2026-06-21"
}
</script>
Google がインデックスするための重要なフィールド:
datePosted: 存在し、かつ最近である必要があります。Google は古い掲載のランクを下げます。hiringOrganization: 企業名と(オプション)ロゴ。雇用主ブランドスニペットに使用されます。baseSalary: 給与範囲(最小/最大)。オプションですが、CTR を改善します。validThrough: 求人終了日。Google はこの日付後の掲載を削除します。jobLocation: 完全な郵便住所またはリモート。
CDATA の落とし穴と特殊文字
XML では、<、>、& などの特殊文字がフィードを破壊します。説明を <![CDATA[...]]> で囲んでください:
<description><![CDATA[
We are looking for a developer with 5+ years experience.
Experience with: Java, Spring Boot, Docker.
]]></description>
CDATA 内では、プレーン HTML を含めることができます:
<description><![CDATA[
<p>We are looking for a developer with 5+ years experience.</p>
<ul>
<li>Java 8+</li>
<li>Spring Boot</li>
<li>Docker</li>
</ul>
]]></description>
CDATA がないと、<p> タグと <li> タグが XML パーサーを破壊します。Indeed のフィード検証ツールはフィード全体を拒否します。
給与のエンコード
Indeed XML: 単一の給与値のみ。範囲がある場合は、中間値または低い方を使用してください。
<salary>140000</salary>
Google for Jobs: 範囲をサポート:
"baseSalary": {
"@type": "PriceSpecification",
"currency": "USD",
"minValue": 120000,
"maxValue": 160000,
"unitText": "YEAR"
}
時給制の場合は、以下を使用してください:
"baseSalary": {
"@type": "PriceSpecification",
"currency": "USD",
"minValue": 45,
"maxValue": 65,
"unitText": "HOUR"
}
更新頻度とリフレッシュ
フィード URL を設定したら、Indeed は定期的にクロールします(通常は毎日、求人が頻繁に変わる場合はより頻繁)。求人が終了したら、フィードから削除するか、終了日を設定してください。Indeed は自動的にインデックスを削除します。
Google for Jobs は、JobPosting JSON-LD を埋め込むHTML ページをクロールします。候補者が求人ページにアクセスするたびに、Google のクローラーがインデックスします。JSON-LD マークアップを削除すると、数日以内に Google for Jobs から求人が消えます。
検証とデバッグ
Indeed XML の場合:
- 接続する前に、Indeed の フィード検証ツール を使用してフィードをテストしてください
- 一般的なエラー: 不正な形式の CDATA、必須フィールドの不足、無効な日付形式
Google for Jobs の場合:
- Google の構造化データテストツール または新しい リッチリザルトテスト を使用してください
- datePosted の不足、無効な日付形式、または CDATA のような文字列エンコードの問題をチェックしてください
ClarityHire がフィードを生成する方法
ClarityHire は /api/jobs/feed.xml で Indeed XML フィードと、求人ページの /careers/jobs/[job-id] に埋め込む Google for Jobs JSON-LD テンプレートの両方を自動生成します。
求人を更新する(職種、給与、説明)と、フィードは自動的にリフレッシュされます。終了した求人は 2 時間以内にフィードから削除されます。システムは求人の visibility フラグを尊重します。下書き求人はフィードに表示されません。
TL;DR
Indeed は CDATA でラップされた説明、給与、および場所を含む XML を期待しています。Google for Jobs は HTML の JSON-LD マークアップと、datePosted、validThrough、および給与範囲を期待しています。どちらも ISO 日付形式(YYYY-MM-DD または ISO 8601 タイムスタンプ)を使用します。CDATA は XML で HTML 説明をラップするときの味方です。デプロイ前に検証してください。終了した求人をフィードから自動削除します。Google のリッチリザルトテストと Indeed の検証ツールでテストしてください。
設定後、求人は Indeed と Google に再入力なしで配信されます。セットアップには 1 日かかりますが、継続的な効果は膨大です。