1. HOME
  2. ブログ
  3. IT技術
  4. GitHub CopilotとChatGPTでGoogle for Jobsの求人情報を作ってみた

GitHub CopilotとChatGPTでGoogle for Jobsの求人情報を作ってみた

流れ

  • データ作成

    求人情報を適当に探し、コピーをする

    ChatGPTに貼り付けて、欲しいデータを抜き取ってもらってJSONに変換する

  • プログラム実装

    JSONを読み込み、変数に格納

    Google for Jobs形式に変換

    出力する

データ作成(ChatGPT)

  • 使用する求人情報

    【企業名】
    株式会社〇〇

    【雇用形態】
    正社員

    【職種】
    サーバーエンジニア

    【仕事内容】
    あいうえおあいうえおあいうえおあいうえおあいうえお

    〜使用言語〜
    PHP、Python、Golang、Ruby

    ~開発業務~
    *あいうえおあいうえおあいうえおあいうえおあいうえお
    *あいうえおあいうえおあいうえおあいうえおあいうえお
    *あいうえおあいうえおあいうえおあいうえおあいうえお

    【給与】
    4,000,000円~6,000,000円

    【勤務時間・曜日】
    9:00 ~ 18:00(休憩1時間)
    *残業月平均20~30時間

    【休暇・休日】
    完全週休2日制
    有給休暇
    年間休日最低120日~

    【勤務地】
    大阪府大阪市北区〇〇町△△丁目✕✕番□□号
    *転勤なし

    アクセス
    地下鉄御堂筋線「〇〇」駅 徒歩5分

    【待遇・福利厚生】
    ・社会保険完備
    ・昇給(年1回)
    ・賞与(年2回)
    ・交通費支給(上限20,000円まで)
    ※試用・研修期間なし

  • 下記ChatGPTに投げる

    【企業名】
    株式会社〇〇

    【雇用形態】
    正社員

    【職種】
    サーバーエンジニア

    【仕事内容】
    あいうえおあいうえおあいうえおあいうえおあいうえお

    〜使用言語〜
    PHP、Python、Golang、Ruby

    ~開発業務~
    *あいうえおあいうえおあいうえおあいうえおあいうえお
    *あいうえおあいうえおあいうえおあいうえおあいうえお
    *あいうえおあいうえおあいうえおあいうえおあいうえお

    【給与】
    4,000,000円~6,000,000円

    【勤務時間・曜日】
    9:00 ~ 18:00(休憩1時間)
    *残業月平均20~30時間

    【休暇・休日】
    完全週休2日制
    有給休暇
    年間休日最低120日~

    【勤務地】
    大阪府大阪市北区〇〇町△△丁目✕✕番□□号
    *転勤なし

    アクセス
    地下鉄御堂筋線「〇〇」駅 徒歩5分

    【待遇・福利厚生】
    ・社会保険完備
    ・昇給(年1回)
    ・賞与(年2回)
    ・交通費支給(上限20,000円まで)
    ※試用・研修期間なし
    ---------------------------------------------------------
    上記求人情報をjsonに変換してください。
    なお、フォーマットは以下となります。

    • title: 職種名
    • description: 仕事の内容(仕事内容の他に勤務時間・曜日、休暇・休日、福利厚生を含んで、html形式で出力してください)
    • employment_type: 雇用形態(※1参照)
    • name: 企業名
    • location: 勤務地
    • salary: 給与(※2参照)
    • salary_type: 給与種別(※3参照)
      ※1: 下記に従い変換してください
      正社員: FULL_TIME
      契約社員: CONTRACTOR
      派遣社員: TEMPORARY
      その他: OTHER
      ※2: 範囲の場合は、salary_minとsalary_maxで分けてください
      ※3: 下記に従い変換してください
      時給: HOUR
      日払い: DAY
      週払い: WEEK
      月給: MONTH
      年収: YEAR
  • すると下記のレスポンスが返ってくる(整形前)

    {
    “title”: “サーバーエンジニア”,
    “description”: “<p><strong>【仕事内容】</strong><br>あいうえおあいうえおあいうえおあいうえおあいうえお</p>\n\n<p><strong>【勤務時間・曜日】</strong><br>9:00 ~ 18:00(休憩1時間)<br>*残業月平均20~30時間</p>\n\n<p><strong>【休暇・休日】</strong><br>完全週休2日制<br>有給休暇<br>年間休日最低120日~</p>\n\n<p><strong>【待遇・福利厚生】</strong><br>・社会保険完備<br>・昇給(年1回)<br>・賞与(年2回)<br>・交通費支給(上限20,000円まで)</p>”,
    “employment_type”: “FULL_TIME”,
    “name”: “株式会社〇〇”,
    “location”: “大阪府大阪市北区〇〇町△△丁目✕✕番□□号”,
    “salary_min”: 4000000,
    “salary_max”: 6000000,
    “salary_type”: “YEAR”
    }

  • 整形後

プログラム実装(Github Copilot)

  • データ作成編のjsonをGoogle for Jobs形式に変換するプログラムを実装
  • 実行結果(整形前)
  • 整形後(表示項目を並び替えてる)

ところで・・・

  • ChatGPTで直接Google for Jobs形式に変換することができちゃうんだよね・・・
    • なお、結局のところヒューマンチェックは必要になるので、過信しないのが吉
  • 下記をChatGPTに投げる

    【企業名】
    株式会社〇〇

    【雇用形態】
    正社員

    【職種】
    サーバーエンジニア

    【仕事内容】
    あいうえおあいうえおあいうえおあいうえおあいうえお

    〜使用言語〜
    PHP、Python、Golang、Ruby

    ~開発業務~
    *あいうえおあいうえおあいうえおあいうえおあいうえお
    *あいうえおあいうえおあいうえおあいうえおあいうえお
    *あいうえおあいうえおあいうえおあいうえおあいうえお

    【給与】
    4,000,000円~6,000,000円

    【勤務時間・曜日】
    9:00 ~ 18:00(休憩1時間)
    *残業月平均20~30時間

    【休暇・休日】
    完全週休2日制
    有給休暇
    年間休日最低120日~

    【勤務地】
    大阪府大阪市北区〇〇町△△丁目✕✕番□□号
    *転勤なし

    アクセス
    地下鉄御堂筋線「〇〇」駅 徒歩5分

    【待遇・福利厚生】
    ・社会保険完備
    ・昇給(年1回)
    ・賞与(年2回)
    ・交通費支給(上限20,000円まで)
    ※試用・研修期間なし
    ---------------------------------------------------------
    上記求人情報をGoogle for Jobs形式に変換してください

  • すると下記のレスポンスが返ってくる(整形前)

    {
    “@context”: “https://schema.org/”,
    “@type”: “JobPosting”,
    “title”: “サーバーエンジニア”,
    “description”: “あいうえおあいうえおあいうえおあいうえおあいうえお”,
    “employmentType”: “FULL_TIME”,
    “hiringOrganization”: {
    “@type”: “Organization”,
    “name”: “株式会社〇〇”
    },
    “jobLocation”: {
    “@type”: “Place”,
    “address”: {
    “@type”: “PostalAddress”,
    “addressLocality”: “大阪市北区”,
    “streetAddress”: “〇〇町△△丁目✕✕番□□号”
    }
    },
    “baseSalary”: {
    “@type”: “MonetaryAmount”,
    “currency”: “JPY”,
    “value”: {
    “@type”: “QuantitativeValue”,
    “minValue”: 4000000,
    “maxValue”: 6000000,
    “unitText”: “JPY/YEAR”
    }
    },
    “workHours”: “9:00 ~ 18:00(休憩1時間)”,
    “workHoursDescription”: “*残業月平均20~30時間”,
    “jobLocationType”: “SingleLocation”,
    “jobLocationAccessibility”: “Accessible”,
    “qualifications”: “〜使用言語〜\nPHP、Python、Golang、Ruby\n\n~開発業務~\n*あいうえおあいうえおあいうえおあいうえおあいうえお\n*あいうえおあいうえおあいうえおあいうえおあいうえお\n*あいうえおあいうえおあいうえおあいうえおあいうえお”,
    “benefits”: [
    “社会保険完備”,
    “昇給(年1回)”,
    “賞与(年2回)”,
    “交通費支給(上限20,000円まで)”
    ],
    “jobLocationInstructions”: “地下鉄御堂筋線「〇〇」駅 徒歩5分”,
    “jobImmediateStart”: true
    }

  • 整形後

    • 中身が違ったりフォーマットが間違ってたり余計な項目が入ってたり足りない項目があったりするが、手動で修正すればOK
  • 手動で修正後

    • 修正内容
      • description: 中身が違うため修正
      • identifier: 項目がないため追加
      • datePosted: 項目がないため追加
      • baseSalary.value.unitText: フォーマットが違うため修正
      • validThrough: 項目がないため追加
      • workHours: 余計な項目のため削除
      • workHoursDescription: 余計な項目のため削除
      • jobLocationType: 余計な項目のため削除
      • jobLocationAccessibility: 余計な項目のため削除
      • qualifications: 余計な項目のため削除
      • benefits: 余計な項目のため削除
      • jobLocationInstructions: 余計な項目のため削除
      • jobImmediateStart: 余計な項目のため削除

書いた人はこんな人

ハク(エンジニア)
ハク(エンジニア)
お酒が友達のバックエンドエンジニアです。
インフラとお友達になりたい…。
最近暑いので水分補給と酔分補給を怠らないようにしましょう。

関連記事

採用情報

\ あの有名サービスに参画!? /

バックエンドエンジニア

\ クリエイティブの最前線 /

フロントエンドエンジニア

\ 世界を変える…! /

Androidエンジニア

\ みんなが使うアプリを創る /

iOSエンジニア