Indeedの100位以内での自社求人の占有率をグラフ化するWebアプリ

Indeedという求人情報のアグリゲーションサイトがある。ここはSEOで相当強いサイトでかつ、使い勝手がよくユーザー数を伸ばしています。当初は無断に求人メディアを転載しているような立ち位置(見方による)だったのですが、今は完全にメディアと立場が逆転しつつあります。

応募者の多くがIndeed経由という形になりつつあり、さらにIndeed経由の応募者を獲得しようとメディアはIndeedの広告枠を日夜ビットしている。そんな中で、Indeedの中でどれだけ上位表示されることができるか(GoogleでのSEOのようなもの)が、メディアの中で重要視されつつある。つまりメディアの先、広告主の中でもIndeedのプレゼンスが高まっているということです。

今回は、「キーワード」「勤務地」「メディア」を入力し、POSTするとIndeedの100位以内の表示にどの程度その「メディア」の求人が掲載されているのかを、リアルタイムにグラフ出力するWebアプリケーションを作りました。

できたもの

必要なもの

  • Flask
  • BeautifulSoup
  • requests

実装について

アプリのファイル構成はこんな感じになっています。
flaskwork
|–main.py
|–requirements.txt
|–static
| |–bootstrap.css
| |–d3.v3.min.js
| |–indeedlogo.png
| |–loader.gif
|–templates
| |–base.html
| |–index.html(初期表示)
| |–result.html(結果表示)
|–Procfile

この中でもmain.pyにルーティングとBeautifulSoupでIndeedスクレイピングする役割を持たせてます。コードも少ない。

templateの中にレンダリングさせるhtmlを入れています。base.htmlとindex.htmlは紹介するまでもないです。result.htmlは下記の通りです。

あまりよくないかもしれないですが、result.htmlの最後にグラフ描画用のd3を読み込んで、表示のJSを書き込んでいます。 これでアプリ構成は完了。Herokuへのデプロイは下記のページを参考にさせていただきました。

Re:ゼロからFlaskで始めるHeroku生活 〜環境構築とこんにちは世界〜

この記事に関連する記事