JobPostingとは
JobPostingは、求人の内容を機械が読める形で書く構造化データです。求人1件のページに付けると、その求人をGoogleの求人検索機能に表示するための情報になります。日本では、この機能はGoogleしごと検索という名前で始まり、今も使える地域に含まれています。
JobPostingを付けるのは、求人1件のページだけです。資料には「JobPosting マークアップは、求人情報が 1 件掲載されるページでのみ使用するものです」とあります。付けても、表示は保証されません。「構造化データを使用するコンテンツが必ず検索結果に表示されるとは限りません」とも書かれています。
Googleしごと検索とは何か、求人を載せる2つの方法は、Googleしごと検索の記事で扱っています。
関連記事Googleしごと検索に求人を載せる2つの方法と、応募の行き先
自社サイトの求人ページから載せる場合は、構造化データが要ります。構造化データを入れるかどうかは、求人以外のページでは迷うところで、その判断はAEO対策の記事で整理しています。
関連記事AEO対策の施策は、Googleの公式資料で「要件・不要・書いていない」に仕分ける
構造化データそのものが何で、いま入れると検索結果で何が変わるのかは、次の記事で解説しています。
関連記事構造化データとは?いま検索結果で何が変わり、何を入れればよいか
必須の5つと推奨のプロパティ
プロパティは、構造化データの中の項目名です。Search Consoleでサイトを登録する単位も「プロパティ」と呼びますが、別のものです。Googleの資料が必須とするプロパティは、次の5つです。
| プロパティ | 中身 | 注意すること |
|---|---|---|
| datePosted | 雇用主が求人情報を投稿した最初の日付 | ISO 8601形式で書く |
| description | 職務・資格・勤務時間などの説明 | HTML形式で書く。titleと同じにできない |
| hiringOrganization | 採用する組織 | 会社名を書き、所在地は含めない。名前を伏せるときはconfidential |
| jobLocation | 従業員の職場となる特定の場所 | addressCountryを含める |
| title | 職務の名称 | 求人コード・住所・日付・給与・会社名を入れない |
titleは、求人のタイトルではなく職務の名称です。資料は「職務の名称(求人情報のタイトルではない)」と書いています。descriptionの中で認識されるHTMLのタグは、pタグ・ulタグ・liタグです。段落を分けるときは、brタグ・pタグ・改行を使います。
titleに求人のタイトルを入れずに済むよう、求人を書く段階から職務の名称で書いておく書き方は、次の記事で解説しています。
関連記事求人票の書き方とは?書く項目、職種名と仕事内容の書き方、書いた条件の扱い
推奨のプロパティは、次の7つです。
| プロパティ | 中身 |
|---|---|
| applicantLocationRequirements | 完全にリモートの求人で、従業員が所在してよい地域 |
| baseSalary | 雇用主から提示された実際の基本給(概算額ではない) |
| directApply | 求人のURLから、その求人に直接応募できるか |
| employmentType | 雇用形態 |
| identifier | 採用する組織が付けた、求人の一意の識別子 |
| jobLocationType | 完全にリモートの求人であること |
| validThrough | 求人の有効期限 |
ほかに、ベータ版のプロパティが3つあります。学歴(educationRequirements)、経験(experienceRequirements)、経験で学歴に代えられるか(experienceInPlaceOfEducation)の3つです。
条件によって必須になるものや、書き方に決まりがあるものがあります。
- validThroughは、有効期限がある求人では必須。有効期限がない求人や、いつ終わるか分からない求人には、募集中は書かない
- 常にリモートで働く求人では、jobLocationTypeを指定する。資料は、applicantLocationRequirementsを指定する場合、jobLocationは必須ではないとしている
- TELECOMMUTEは、完全にリモートの求人だけに使う。一時的な在宅勤務が許される求人や、交渉しだいでリモートになる求人には使わない
- baseSalaryは、雇用主以外が書かない
directApplyとベータ版のプロパティは、Googleでの使い方がまだ開発中です。書いても、すぐには表示に使われない場合があります。
必須か推奨かは、資料のどちらの表に並んでいるかで決まります。
schema.orgのJobPostingには、ほかにもプロパティがあります。Googleは、「Google 検索の動作の定義には、schema.org のドキュメントではなく、Google 検索セントラルのドキュメントを使用してください」と書いています。
書き方の例
Googleの資料には、JobPostingの例が載っています。次は、そのうちの1つです。
このJSONは、求人ページのHTMLに<script type="application/ld+json">で囲んで置きます。資料の例では<head>の中にあります。自分で書くか、プラグインに出力させるかは第6章で扱います。
{
"@context": "https://schema.org/",
"@type": "JobPosting",
"title": "Software Engineer",
"description": "<p>Google aspires to be an organization that reflects the globally diverse audience that our products and technology serve. We believe that in addition to hiring the best talent, a diversity of perspectives, ideas and cultures leads to the creation of better products and services.</p>",
"identifier": {
"@type": "PropertyValue",
"name": "Google",
"value": "1234567"
},
"datePosted": "2024-01-18",
"validThrough": "2024-03-18T00:00",
"employmentType": "CONTRACTOR",
"hiringOrganization": {
"@type": "Organization",
"name": "Google",
"sameAs": "https://www.google.com",
"logo": "https://www.example.com/images/logo.png"
},
"jobLocation": {
"@type": "Place",
"address": {
"@type": "PostalAddress",
"streetAddress": "1600 Amphitheatre Pkwy",
"addressLocality": "Mountain View",
"addressRegion": "CA",
"postalCode": "94043",
"addressCountry": "US"
}
},
"baseSalary": {
"@type": "MonetaryAmount",
"currency": "USD",
"value": {
"@type": "QuantitativeValue",
"value": 40.00,
"unitText": "HOUR"
}
}
}
この例は米国の求人です。日本の求人で書くときは、次の箇所を自社の求人の値に置き換えます。
- 国(addressCountry)と通貨(currency):例は米国と米ドル
- 住所(streetAddress・addressLocality・addressRegion・postalCode):例は米国の住所。日本の求人ならaddressCountryは
JP、addressRegionは都道府県 - 給与の単位(unitText):例はHOUR(時給)。資料が挙げる値はHOUR・DAY・WEEK・MONTH・YEAR
- 雇用形態(employmentType):例はCONTRACTOR。資料が挙げる値の中から、自社の求人に合うものを選ぶ
- 投稿日(datePosted)と有効期限(validThrough):例は2024年の日付。有効期限がない求人なら、validThroughは書かない
- 職務の名称(title)と説明(description):例はGoogleの職務と文章
- 会社名・sameAs・ロゴ・識別子・給与の値:例のための値
例の値は、そのまま残さず、自社の求人の値に置き換えます。
求人の掲載を終えるときの3つの方法
募集を締め切る日を、Googleの資料は有効期限(validThrough)と呼びます。この記事も有効期限と書きます。
応募を締め切った求人について、資料は「すでに応募を受け付けていない求人は、次のいずれかの方法で終了する必要があります」と書いています。方法は3つです。
| 方法 | 使う場面の例 |
|---|---|
| validThroughの日付を過ぎた状態にする | 有効期限を決めて募集している求人 |
| ページを削除して、404か410を返す | 求人ページそのものを残さないとき |
| ページからJobPosting構造化データを削除する | ページは残すが、掲載を終えるとき |
有効期限より前に採用が決まることもあります。その場合は、求人情報を削除するよう書かれています。validThroughだけに頼っていると、採用が決まったあとも求人が残ります。
有効期限を決めていない求人は、募集中はvalidThroughを書きません。掲載を終えるときは、ページか構造化データを削除します。募集そのものをやめるときも同じです。資料は、ウェブサイトから期限切れの求人情報を削除するのが理想としたうえで、削除しない場合はvalidThroughに過去の日付を入れるよう書いています。
掲載を終えないまま残った状態を、資料は「期限切れの求人がまだ公開されている」問題として挙げています。Googleは、「終了した求人に対してタイムリーな措置を講じないと、手動による対策が必要になる場合があります」と書いています。Search Consoleにポリシー違反として表示される場合があり、文言は第7章にまとめました。原因として挙げられているのは、次の4つです。
- validThroughがない、または過去の日付になっていない
- ページがまだ公開されている
- 応募の流れが、期限切れの求人ページにリンクしている
- 求人が期限切れになっても、構造化データがページに残っている
手動による対策を受けると、何が起きるのか。資料は「構造化データへの手動による対策がページに対して行われると、ページ上の構造化データが考慮されなくなります(ただし、Google 検索結果にはページは引き続き表示されます)」と書いています。ページが検索から消えるのではありません。そのページの構造化データが読まれなくなり、求人検索に出すための情報が、無いのと同じ扱いになります。直し方は第7章で扱います。
JobPostingを書き始める前に、この求人の掲載をどの方法で終えるのかを決めておきます。有効期限で終えるのか、採用が決まった時点でページや構造化データを消すのか。3つの方法はどれも、公開したあとに誰かが手を動かす作業です。決めておかないと、掲載を終える作業が誰の仕事にもならないまま、求人が残ります。
とくに放置されやすいのは、応募がほとんど来ない求人です。反応が無いと誰も見に行かないので、掲載を終える作業のきっかけも来ません。そして、いつも求人が出ている状態は、応募する人の側から見るとよい印象になりません。人がすぐ辞めるのではないか、人気がないのではないか、と見られます。いつでも募集しているなら急がなくてよい、と応募を後まわしにされることもあります。
掲載を終えたあとは、Googleにも知らせます(第5章)。
募集を締め切ったら速やかに求人の掲載を終えることは、Googleの資料だけでなく、職業安定法でも、求人を出した会社に求められています。Googleのほかに、求人サイトやハローワークにも求人を出している場合の終え方は、求人の無料掲載の記事で解説しています。
関連記事求人の無料掲載とは?出せる場所と「無料」の中身、掲載したあとに会社が守ること
Googleへの知らせ方
求人ページを公開しても、Googleがすぐに見つけるとは限りません。見つかるまでに数日かかることがあります。
求人のURLについて、Googleは「サイトマップではなく Indexing API を使用することをおすすめします」としています。Indexing APIのほうが、早くクロールをリクエストできるためです。サイト全体をカバーするために、サイトマップの送信もあわせて勧めています。
サイトマップだけでも知らせられますが、資料が求人のURLで勧めているのはIndexing APIのほうです。
Indexing APIは、どのページにも使えるわけではありません。使えるのは、JobPostingを付けたページと、VideoObjectにBroadcastEventを埋め込んだページだけです。
求人の掲載を終えたときも、Googleに知らせます。資料は、求人を削除する手順の中で、「Indexing API を使用して、求人情報の URL を Google の検索インデックスから削除するようリクエストします」と書いています。サイトマップを使う場合、Googleは、lastmodの時刻が前回のクロールより新しいページを再クロールします。
置く場所と、表示との一致
JobPostingを置くのは、求人1件のページです。検索結果のような一覧ページには置きません。一覧ページに置くと、Search Consoleで指摘されます(第7章)。
構造化データは、求職者がブラウザで読める求人情報と同じページに置き、中身をページの表示とそろえます。資料は、マークアップのすべての情報を求人ページに表示する必要があるとしています。ずれている例として挙げているのは、「給与がマークアップに含まれているのに、求人ページには含まれていない場合」です。
自社サイトの中で、同じ求人が複数のURLにある場合は、それぞれのページで正規URLを指定します。
CMSで求人ページを作るなら、プラグインを使うほうが簡単な場合もある、と資料は書いています。プラグイン・テーマへの組み込み・手書きのどれにするかは、次の条件を守れるかで選びます。
- 求人1件のページだけに出せる
- ページの表示と同じ内容を出せる
- 求人の掲載を終えるときに、第4章の3つの方法のどれかを取れる
確かめ方と、ポリシー違反が出たとき
Googleの資料が挙げる手順のうち、書いたあとに関わるのは次の3つです。
- リッチリザルトテストで、コードにエラーがないかを確かめる(検索セントラルの「リッチリザルト テスト」から開く)
- 構造化データを入れたページを数ページ公開し、URL検査ツール(Search Consoleの左のメニュー)でGoogleからの見え方を確かめる。robots.txt・noindexタグ・ログインの要求でページがブロックされていないかも見る
- 公開後は、Search Consoleの求人情報のレポートを見る。ポリシー違反のメッセージが出ていないかも、ここで分かる
ここまでは、正しく書けているかの確かめ方です。求人検索から実際に人が来ているかは、アクセス解析で見ます。資料は、utm_campaign=google_jobs_apply・utm_source=google_jobs_apply・utm_medium=organicの3つのパラメータで、求人の詳細ページから来たあとのアクセスを追跡できるとしています。アクセス解析でこの値を絞り込むと、求人検索を経由した訪問だけを取り出せます。
浜松の中小企業の求人が、Googleしごと検索に出ているのを見かけました。応募ボタンのリンクを見ると、このパラメータが付いていました。自社のページでも、求人検索から来た訪問は同じ形で見分けられます。
Search Consoleに「構造化データのポリシー違反」が出たとき
第4章の「手動による対策」は、Googleの「求人情報のコンテンツ ポリシー」に違反したときの措置です。違反している状態は、Search Consoleに表示されます。出る文言は原因ごとに決まっていて、資料が挙げているのは次の4つです。Googleしごと検索の記事で挙げた「表示されない理由」が、Search Consoleではどの文言で出るか、という対応でもあります。
| Search Consoleに出る文言 | 指している状態 | コンテンツポリシーの項目 |
|---|---|---|
| リスティング ページに個々の求人の構造化データを含めることはできません | 一覧ページにJobPostingを置いている | 無関係なコンテンツ |
| ページ上のコンテンツがページの構造化データと異なっています | ページの表示と構造化データがずれている | 不当表示 |
| 有効期限が切れた求人の JobPosting 構造化データ | 締め切った求人の掲載が終えられていない | 期限切れの求人情報 |
| 求人ページで申し込みを送信できません | ページに応募する手段がない | 応募方法が示されていない求人 |
直す場所は、行によって分かれます。表の1行目と2行目は第6章(置く場所と、表示との一致)です。3行目は、第4章の3つの方法で終わらせます。4行目は、ページに応募する手段がないという指摘なので、応募フォームか、応募先の連絡方法をページに置きます。
右の列は、資料の「求人情報のコンテンツ ポリシー」に並ぶ項目名です。どの項目に当たるかは、こちらで対応させました。ポリシーは全部で12あり、右の列に出したのはそのうち4つです。この4つは、表の文言が出る場面だけで効くわけではありません。 求人原稿の書き方に掛かるものを挙げると、次のようになります。
- 役職や職務明細にキーワードを詰め込む(不当表示)
- 求人の説明を読むのにログインを要求する(応募方法が示されていない求人)
- 求人の説明が不完全(不完全なコンテンツ)
- すべて大文字で書く(編集コンテンツ)
- 応募者のデータを集めながら採用していない(募集の再開)。これは「掲載できない」ではなく、削除する場合があると書かれています
上の2つは、表の右列にも出ています。
直したら、そこで終わりではありません。資料はポリシー違反の4つとも、修正の手順の最後に「問題を解決したら、再審査を受けるためにサイトを送信します」と置いています。送信までやって、その求人の作業が終わります。
ARROWSの採用サイト制作
ARROWSの採用サイト制作では、採用サイトとあわせて、求人一覧・求人票・応募フォーム・応募者の管理をそなえた求人システムを制作できます。求人票には、Googleしごと検索に対応するための構造化データを設定します。
求人の追加・更新・募集の終了は、社内の管理画面から行えます。求人票を直すと構造化データも一緒に変わるので、第6章の「表示とそろえる」を、更新のたびに手で合わせずに済みます。
求人の掲載をどの方法で終えるか(第4章)も、制作のときに決めておきます。募集を終えた求人が掲載されたままにならないよう、社内で管理できる運用を整えます。公開したあとは、求人がどのような検索で見られ、何件の応募につながったかを、取得できる範囲で会社ごとのデータベース(カルテ)にまとめ、求人の見直しに役立てます(データの自動収集に同意いただいた場合)。
まとめ
JobPostingの必須のプロパティは、Googleの資料では5つです。書き始めるときに迷うことは多くありません。
迷いやすいのは、求人の掲載を終えるときです。有効期限で終えるならvalidThroughで足ります。期限より前に採用が決まれば、ページか構造化データを消し、Googleに知らせる作業が残ります。
掲載を終えないまま残ると、Search Consoleにポリシー違反として表示される場合があります。直すところまでが1件の求人の仕事で、直したあとの再審査の送信も、その中に入ります。
JobPostingは、書き始める前に、どの方法で求人の掲載を終え、誰がその作業をするかを決めておきます。




