LoginSignup
8
12

More than 5 years have passed since last update.

Indeed.comの求人情報をPHPで検索する

Posted at

イレブンナインのふじけんです。

求人捗ってますか。
無料で求人広告を出せるIndeed.comというサービスがあります。
このサービスに公式のAPIが用意されており、XMLを取得可能ということで、PHPでさっと求人広告を検索してみました。
本当は、求人に対する閲覧数、応募数を取得したかったのですが、まだ公式APIは対応していないようです。また、わたしはインフラエンジニアなので、普段PHPコードを書いていないのですが、勉強のためトライしました。なるべく初心者の方にもわかるコードの書き方となっています。ご容赦ください。

準備

Indeed パブリッシャープログラムにアクセスして、「アカウントを作成」ボタンをクリックします。

20170310_indeed_com_publisher.png

※すでに登録済みの方は「パブリッシャーアカウントにログイン」のリンクをクリック。

求人検索API

4つのタブが画面に表示されているので、その中から「求人検索API」をクリックします。

20170310_indeed_com.png

アトリビューション

Indeed の検索結果を表示する際には、以下のアトリビュートを使う必要があります。

説明書きにあるとおり、Indeed.comが用意したコードを含める必要があります。

20170310_indeed_com_attribution.png

以下のコードを適当なところに貼っておきましょう。

アトリビューション用コード
<span id="indeed_at"><a title="求人検索" href="https://jp.indeed.com"><img alt=Indeed src="https://www.indeed.com/p/jobsearch.gif" style="border: 0; vertical-align: middle;"> からの求人</a></span>

貼るとIndeed.comへのリンクとなるようです。

20170310_indeed_com_logo.png

パブリッシャーアカウントにひとつのパブリッシャーID

このAPIは、検索文字列と勤務地を入力すると検索を結果をXMLデータとして返しくれます。利用するにはログインしたパブリッシャーアカウントにそれぞれ付与されるパブリッシャーIDを渡してあげる必要があります。

ほかにも細かく設定可能なパラメータがXMLリクエストのサンプルフォーマットとしてあらかじめ用意されています。

20170310_indeed_com_format.png

サンプルリクエストのURLとして、以下記載があります。

XML リクエストのサンプルフォーマット:
http://api.indeed.com/ads/apisearch?publisher=xxxxxxxxxxxxxxxx&q=java&l=austin%2C+tx&sort=&radius=&st=&jt=&start=&limit=&fromage=&filter=&latlong=1&co=us&chnl=&userip=1.2.3.4&useragent=Mozilla/%2F4.0%28Firefox%29&v=2

この?publisher=xxxxxxxxxxxxxxxxの箇所をPHP上で格納しています。

publisher.phpの中で、INDEEDCOM_PUBLISHERの中にパブリッシャーIDを設定しています。※セキュリティ上伏字にしています。

publisher.php
$ cat publisher.php
<?php

//publisher.php

define( 'INDEEDCOM_PUBLISHER', 'xxxxxxxxxxxxxxxx' );

URL生成時に参照しています。

index.php
require_once("publisher.php");
:
  $req = "http://api.indeed.com/ads/apisearch?publisher=".INDEEDCOM_PUBLISHER.;

生成したURLを元にsimplexml_load_file()関数でXMLファイルからXMLデータを取得しています。

index.php
//XMLデータ取得用ベースURL
  $req = "http://api.indeed.com/ads/apisearch?publisher=".INDEEDCOM_PUBLISHER."&q=".$query."&l=".$location."&sort=&radius=&st=employer&jt=&start=&limit=&fromage=&filter=&latlong=1&co=jp&chnl=&userip=1.2.3.4&useragent=Mozilla/%2F4.0%28Firefox%29&v=2";

  //XMLファイルをパースし、オブジェクトを取得
  $xml = simplexml_load_file($req)
   or die("XMLパースエラー");

返ってきた結果をechoでHTMLに戻しています。

index.php
  echo '<p>query:'.$xml->query.'</p>';
  echo '<p>location:'.$xml->location.'</p>';
  echo '<p>results:'.$xml->results->result->count().'</p>';
  $ret = '<div class="lwws">';
  foreach($xml->results->result as $result) {
    $ret .= "<div><a href='".$result[0]->url."'>".$result[0]->jobtitle."</a></div>";
  }
  $ret .= "</div>";
  return $ret;

ほかにも取得したい項目があれば、サンプルを参照ください。

20170310_indeed_com_samplexml.png

検索フォームなどのデザインはお好みで調整してください。

20170310_indeed_com_sample.png

ソースコードはこちら

github

宣伝

イレブンナイン株式会社では、エンジニア採用に力を入れています。本稿以外のノウハウも弊社は有しており、日々向上を是として取り組んでおります。自社サービスの開発もその一つです。

弊社のサイトです。
http://www.elevennines.co.jp

弊社のサイトにも採用に向けた応募フォームがありますが、採用強化週間としてIndeed.comに求人広告を載せています。

Indeed.com - イレブンナイン株式会社の求人広告

ご興味がありましたらぜひコンタクトをいただければ幸いです。

8
12
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
8
12