Googleしごと検索(Google for Jobs)に求人情報を掲載する流れと構造化データマークアップについて徹底解説!

Googleしごと検索について色々調べてみました。
今回は、求人ページなどに掲載している求人情報を Googleしごと検索(Google for Jobs)に掲載する方法、特に構造化データについて詳しく解説します。

目次

Googleしごと検索(Google for Jobs)とは

Googleしごと検索(Google for Jobs)は、Google の検索結果として求人情報を表示する機能で、日本では2019年1月にリリースされたばかりです。
Google で「東京 求人」などと検索すると…

Googleしごと検索(Google for Jobs)に求人情報を掲載する流れと構造化データマークアップについて徹底解説!

求人情報がまとめて表示されるようになりました。

Googleしごと検索に求人情報を掲載するには

求人情報を Googleしごと検索(Google for Jobs)に掲載する流れは以下の通りです。

  1. 求人ページに求人情報を掲載する
  2. 求人ページに構造化データを追加する
  3. サイトマップを Google へ送信する
  4. Googleしごと検索(Google for Jobs)に掲載される

単に求人情報をウェブページに掲載しただけでは Googleしごと検索(Google for Jobs)には掲載されません。
Google の検索結果として表示するためには「構造化データ」の追加が必要不可欠 です。

1. 求人ページに求人情報を掲載する

まずは求人ページを作成します。
画像のように職種や雇用形態など求人情報を掲載します。

Googleしごと検索(Google for Jobs)に求人情報を掲載する流れと構造化データマークアップについて徹底解説!
画像はスタートミーアップが運営するサイトのスクリーンショットです。

2. 求人ページに構造化データを追加する

人であれば “求人情報が掲載されたウェブページ” だと理解できますが、検索エンジンは「何に関する情報なのか」まで判別できません。
でも、Googleしごと検索(Google for Jobs)に掲載してもらうためには「求人情報であること」と「そこに書かれた情報の意味」を正しく伝えなくてはいけません。

そこで、必要になってくるのが 構造化データを追加する という作業です。

先ほど見て頂いた求人ページに追加した実際の構造化データをご覧下さい。
各項目の説明とマークアップの仕方については後述します。

<script type="application/ld+json"> {
    "@context": "http://schema.org/",
    "@type": "JobPosting",
    "title": "生産管理・品質管理・品質保証・工場長(電気・電子)", //職種
    "description": "<p>----------
 仕事内容
----------
高性能な電子部品は高い製品品質が求められます。
品質は様々なプロセス、手法、仕組みで守っていかねばなりません。
【品質の守り手】として高品質の一翼を担ってくれる方を求めます。
<br />
(1)顧客対応・外注対応(監査、品質関連、4M変更対応)
(2)工程品質、出荷品質管理
(3)製品仕様、工程設計確認
(4)ISO品質システム管理 
<br />
製品として最も重要な品質を監視・保証する仕事です。
事業拡大の中、自分のスキル、経験を活かした仕事ができます。
<br />
----------
 応募資格
----------
【必須】
・製造(業界不問)で品質管理や品質保証の経験をお持ちの方
・コミュニケーション能力のある方
・通勤可能な方(車通勤可:高速通勤可(規定有)、駐車場完備)
※小牧本社:JR春日井駅、名鉄小牧駅より送迎バスあり
・入社後、早いタイミングでの山梨勤務が可能な方
<br />
【歓迎】
・機械・電気電子の製造業界で品質管理・保証の経験をお持ちの方歓迎
・生産技術や生産管理、または製造に携わっていた方
<br />
【募集年齢】
長期勤続によりキャリア形成を図るため(長期勤続によりキャリア形成を図るため)
<br />
【フィットする人物像】
・コミニュケーション力がある方(顧客、外注、工場などの品質管理・保証に携わる部門のため)
・品証、品管、技術経験者
・Excel、PowerPointなどパソコンの業務経験、スキルがある方
<br />
----------
 勤務時間
----------
8:30~17:20
※休憩時間50分
※残業:有(月平均30時間)
<br />
----------
 給与
----------
月給 193,200円~278,000円
【年収例】
・28歳 440万円
・33歳 480万円
※年齢、経験により当社規定により決定します。
※賞与年2回(2018年度実績 5.33ヵ月分)
<br />
----------
 待遇・福利厚生
----------
〇諸手当
・通勤手当(通勤距離相応の定額)、高速通勤用の手当別途有(規定有)
・時間外手当、休日勤務手当、深夜勤務手当、交替勤務手当、家族手当 等
<br />
〇福利厚生
・健康保険、厚生年金、雇用保険、労災保険
・退職金制度、財形貯蓄制度、企業年金:確定給付年金
・表彰・社員提案制度 / 表彰金あり
・社員食堂 / カフェテリア方式 1食280円程度
<br />
----------
 休日休暇
----------
・原則週休2日
・年末年始、ゴールデンウィーク、夏季連休
・年次有給休暇、積立休暇制度、ステップアップ休暇制度、慶弔などの特別有給休暇
・年間休日:120日
<br />
----------
 選考プロセス
----------
書類選考 → 一次面接・適性検査 → 二次面接 → 内定
※応募書類:履歴書(自筆・写真貼付)、職務経歴書
<br />
----------
 キャリアパス・評価制度
----------
〇職場の特性に合わせたOJT等による専門教育の他、各階層に応じた下記の階層別教育の制度があります。
・新入社員:新人教育
・3級:フォロー・基礎教育
・4級:中堅教育、副主任養成教育
・副主任:監督者基礎教育、初級監督者認定教育(グループリーダ候補者)
・主任:監督者教育、フォロー教育(5・6級)
・主事:監理者教育</p>", //募集概要
    "datePosted": "2019-05-22", //掲載日
    "validThrough": "2019-11-30", //掲載期限日
    "employmentType": "FULL_TIME", //雇用形態
    "workHours": "8:30~17:20", //勤務時間
    "url": "https://startmeup.jp/career/ncd0003/", //掲載ページ
    "identifier": {
        "@type": "PropertyValue",
        "name": "スタキャリ"
    },
    "hiringOrganization": { //企業情報
        "@type": "Organization",
        "name": "メーカー/大手企業", //社名
        "logo": "https://***********.jp/career/image/logo-GoogleForJobs.png" //ロゴ
    },
    "jobLocation": [{ //勤務地
        "@type": "Place",
        "address": {
            "@type": "PostalAddress",
            "addressRegion": "山梨県",
            "addressCountry": "JP"
        }
    }, {
        "@type": "Place",
        "address": {
            "@type": "PostalAddress",
            "addressRegion": "愛知県",
            "addressCountry": "JP"
        }
    }],
    "baseSalary": { //給与
        "@type": "MonetaryAmount",
        "currency": "JPY",
        "value": {
            "@type": "QuantitativeValue",
            "minValue": "193200",
            "maxValue": "278000",
            "unitText": "MONTH"
        }
    }
}
</script>

長いですね…!
これを求人情報の数だけ用意して、掲載されているウェブページに埋め込むことで Googleしごと検索(Google for Jobs)に掲載されるようになります。

Googleしごと検索(Google for Jobs)に求人情報を掲載する流れと構造化データマークアップについて徹底解説!

掲載日、給与、雇用形態もちゃんと表示されていますね。

構造化データ 各項目の解説

構造化データの項目の意味とマークアップの仕方についてです。
ここでは使用頻度の高そうな項目だけをまとめています。

必須@context
schema.org に準じた構造化データである事をを示すためのプロパティです。

"@context": "http://schema.org/", //必須
必須@type
求人情報であることを示すプロパティです。

"@type": "JobPosting", //必須
必須title
職種を指定します。例えば、エンジニア、デザイナー、営業など。
ここで指定できるのは「職種」であり、求人情報のタイトルではありません。
「!」や「*」などの特殊文字を多用すると「スパム行為のある構造化マークアップ」と見なされることがあるようです。数値や「/」「-」などの文字は使用できます。

"title": "職種", //必須
必須description
求人情報についての説明を指定します。例えば、職務、応募資格、勤務地、勤務時間、給与など。
説明は HTML 形式にする必要があります。
段落の指定には <br> <p> \n 。その他、<p> <ul> <li> 見出し(<h1>~<h5>) <strong> <em> といったタグも有効です。

"description": "求人情報についての説明", //必須
必須datePosted
雇用主が求人情報を掲載した日付を指定します。
“2017-01-24” または “2017-01-24T19:33:17+00:00” と記述します。

"datePosted": "掲載日", //必須
必須validThrough
求人情報に有効期限がある場合は必須のプロパティです。
“2017-01-24” または “2017-01-24T19:33:17+00:00” と記述します。
※Google には、「求人情報に有効期限がない場合や、求人情報がいつ期限切れになるかがわからない場合は、このプロパティを指定しないでください」と記載されています。

"validThrough": "掲載期限日", //必須
推奨employmentType
雇用形態を指定します。このプロパティは複数含めることができます。2つ以上指定する場合はカンマで区切ります。

  • “FULL_TIME” :正社員
  • “PART_TIME” :パート・アルバイト
  • “CONTRACTOR” :契約社員
  • “TEMPORARY” :派遣社員
  • “INTERN” :インターンシップ
  • “VOLUNTEER” :ボランティア
  • “PER_DIEM” :日雇い
  • “OTHER” :その他
"employmentType": "FULL_TIME", //推奨

※複数の雇用形態を指定する場合

"employmentType": ["FULL_TIME", "CONTRACTOR"], //推奨
任意workHours
勤務時間を指定します。

"workHours": "勤務時間", //任意
任意url
求人情報が掲載されているページの URL を指定します。

"url": "求人の掲載ページのURL", //任意
推奨identifier
求人に関する採用側組織の一意の識別子。”value” にはページごとに全て異なる数字を割り当てます。アルファベットや記号を含めたものも試してみましたが掲載されませんでした。
“identifier” を設定する際は「”@type” “name” “value” 全てを記述しなければならない」と説明しているサイトもありましたが、検証の結果 “value” は省略しても問題なく掲載されました。

"identifier": {
    "@type": "PropertyValue",
    "name": "企業名",
    "value": "求人の管理番号" //任意
}
必須hiringOrganization
求人募集をしている企業の情報を指定します。所在地は含めません(〇〇店などは不可)。
“logo” に設定できるロゴは 112×112px 以上で、.jpg .gif .png のいずれかの形式で指定します。

"hiringOrganization": {
    "@type": "Organization", //必須
    "name": "求人元の企業名", //必須
    "sameAs": "求人元企業のサイトURL", //任意
    "logo": "求人元企業のロゴURL" //任意
}
必須jobLocation
オフィスや作業現場など、勤務地を指定します。Google によると、「指定するプロパティが多いほど、ユーザーにとっての求人情報の質が高くなる」のだそう。
社名非公開の企業の求人情報を掲載する場合などは、郵便番号と都道府県以降は省略できます。
“addressCountry” は日本ならJP。

"jobLocation": {
    "@type": "Place", //必須
    "address": {
        "@type": "PostalAddress", //必須
        "streetAddress": "町名以降", //推奨
        "addressLocality": "市区町村", //推奨
        "addressRegion": "都道府県", //必須
        "postalCode": "郵便番号", //推奨
        "addressCountry": "国別コード" //必須
    }
}

※複数の勤務地を指定する場合

"jobLocation": [{
    "@type": "Place", //必須
    "address": {
        "@type": "PostalAddress", //必須
        "streetAddress": "町名以降", //推奨
        "addressLocality": "市区町村", //推奨
        "addressRegion": "都道府県", //必須
        "postalCode": "郵便番号", //推奨
        "addressCountry": "国別コード" //必須
    }
}, {
    "@type": "Place", //必須
    "address": {
        "@type": "PostalAddress", //必須
        "streetAddress": "町名以降", //推奨
        "addressLocality": "市区町村", //推奨
        "addressRegion": "都道府県", //必須
        "postalCode": "郵便番号", //推奨
        "addressCountry": "国別コード" //必須
    }
}],

こんなマークアップの仕方でも掲載されました。

"jobLocation": { //勤務地
    "@type": "Place",
    "address": {
        "@type": "PostalAddress",
        "name": "神奈川県川崎市川崎区", //番地まで記述可
        "addressCountry": {
            "@type": "Country",
            "name": "JPN"
        },
        "streetAddress": "神奈川県" //都道府県
    }
},
推奨jobLocationType
リモートワークであることを示すプロパティです。リモートワークの場合は必須。

"jobLocationType": "TELECOMMUTE", //リモートワークの場合は必須

※”jobLocation” とセットで

"jobLocation": {
    "@type": "Place", //必須
    "address": {
        "@type": "PostalAddress", //必須
        "streetAddress": "町名以降", //推奨
        "addressLocality": "市区町村", //推奨
        "addressRegion": "都道府県", //必須
        "postalCode": "郵便番号", //推奨
        "addressCountry": "国別コード" //必須
    }
},
"jobLocationType": "TELECOMMUTE",
推奨applicantLocationRequirements
“jobLocationType” とセットで国や地域を指定できます。
下記の場合、日本国内在住の方に限定されます。
“applicantLocationRequirements” を指定する場合は “jobLocation” は不要です。

"applicantLocationRequirements": {
    "@type": "Country",
    "name": "日本"
},
"jobLocationType": "TELECOMMUTE",
推奨baseSalary
給与を指定します。”value” “minValue” “maxValue” の記述は数値のみ、カンマは不要です。
“currency” は日本円ならJPY、”unitText” には給与形態を記述します。

  • “HOUR” :時給
  • “DAY” :日給
  • “WEEK” :週給
  • “MONTH” :月給
  • “YEAR” :年給
"baseSalary": {
    "@type": "MonetaryAmount", //必須
    "currency": "通貨単位",
    "value": {
        "@type": "QuantitativeValue", //必須
        "value": "基本給", //推奨
        "minValue": "給与の範囲の最小値", //任意
        "maxValue": "給与の範囲の最大値", //任意
        "unitText": "給与形態" //推奨
    }
},

必須項目はたったの6つだけ

項目の種類はまだ他にもありますが、必須なのはたったの 6項目だけ(下記参照)なんですね。
必須の 6項目さえきちんとマークアップできていれば Googleしごと検索(Google for Jobs)に表示されるはずなので、慣れるまではまずは必須項目のマークアップから挑戦してみて下さい。

  • “title” :職種
  • “description” :求人情報についての説明
  • “datePosted” :掲載日
  • “validThrough” :掲載期限日(※有効期限がある場合は必須)
  • “hiringOrganization” :求人募集をしている企業
  • “jobLocation” :勤務地

構造化データのテンプレ2種

御社の求人ページの形式に合わせて編集してご自由にお使い下さい。
★は必須項目、☆は必要に応じて。

<script type="application/ld+json"> {
    "@context": "http://schema.org/",
    "@type": "JobPosting",
    "title": "★", //職種
    "description": "★", //求人情報についての説明
    "datePosted": "★", //掲載日
    "validThrough": "★", //掲載期限日
    "employmentType": "☆", //雇用形態
    "workHours": "☆", //勤務時間
    "url": "☆", //求人の掲載ページのURL
    "hiringOrganization": { //企業情報
        "@type": "Organization",
        "name": "★", //求人元の企業名
        "sameAs": "☆", //求人元の企業のサイトURL
        "logo": "☆" //求人元の企業のロゴURL
    },
    "jobLocation": { //勤務地
        "@type": "Place",
        "address": {
            "@type": "PostalAddress",
            "streetAddress": "☆", //町名以降
            "addressLocality": "☆", //市区町村
            "addressRegion": "★", //都道府県
            "postalCode": "☆", //郵便番号
            "addressCountry": "JP" //国別コード
        }
    },
    "baseSalary": { //給与
        "@type": "MonetaryAmount",
        "currency": "JPY", //通貨単位
        "value": {
            "@type": "QuantitativeValue",
            "value": "☆", //基本給
            "minValue": "☆", //給与の範囲の最小値
            "maxValue": "☆", //給与の範囲の最大値
            "unitText": "☆" //給与形態
        }
    }
}
</script>

次に必須項目だけバージョン。

<script type="application/ld+json"> {
    "@context": "http://schema.org/",
    "@type": "JobPosting",
    "title": "★", //職種
    "description": "★", //求人情報についての説明
    "datePosted": "★", //掲載日
    "validThrough": "★", //掲載期限日
    "hiringOrganization": { //企業情報
        "@type": "Organization",
        "name": "★", //求人元の企業名
        "sameAs": "☆", //求人元の企業のサイトURL
        "logo": "☆" //求人元の企業のロゴURL
    },
    "jobLocation": { //勤務地
        "@type": "Place",
        "address": {
            "@type": "PostalAddress",
            "streetAddress": "☆", //町名以降
            "addressLocality": "☆", //市区町村
            "addressRegion": "★", //都道府県
            "postalCode": "☆", //郵便番号
            "addressCountry": "JP" //国別コード
        }
    }
}
</script>

構造化データ テストツールでプレビューを確認する

※構造化データ テストツールは廃止されることになったため、以下、文章を一部修正しました。今後、構造化データの検証には、「リッチリザルト テスト」の使用をおすすめします。

マークアップを終えた構造化データは、構造化データ テストツール リッチリザルト テストでエラーチェックできます。

Googleしごと検索(Google for Jobs)に求人情報を掲載する流れと構造化データマークアップについて徹底解説!

掲載ページのURLを入力するか、

Googleしごと検索(Google for Jobs)に求人情報を掲載する流れと構造化データマークアップについて徹底解説!

マークアップした構造化データをコピペして、「テスト」を実行します。
「プレビュー」画面を確認しましょう。(エラーがある場合は「プレビュー」が表示されません!)

Googleしごと検索(Google for Jobs)に求人情報を掲載する流れと構造化データマークアップについて徹底解説!

エラーが出なければ求人ページ内に構造化データを追加して下さいね。
※追加する場所はどこでも問題ないとのことですが、<head></head>内、または</body>直前に追加しているサイトが多かったです。

3. サイトマップを Google へ送信する

WordPress でサイトを構築している方なら、便利なプラグインがあります。
以前、記事にまとめているので興味のある方は下記リンクよりどうぞ。

まとめ

いかがでしたでしょうか。
流れがわかってしまえばさほど大変な作業ではありません。
求人ページを用意しているなら、ぜひチャレンジしてみて下さいね!

難しい場合はスタートミーアップ デジタル事業がお手伝いしますので、お気軽にご相談下さい。

+++++++++++++++++++++++++++++++
Google 検索
https://developers.google.com/search/docs/data-types/job-posting?hl=ja
リッチリザルト テスト
https://search.google.com/structured-data/testing-tool?hl=ja
+++++++++++++++++++++++++++++++

こちらも参考にしてみて下さい。