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生活 〜環境構築とこんにちは世界〜

ZoomやChatworkでファイル共有している方へ

リモートワークが一般的になってきた今「誰が」「どこで」「何を」ファイル共有しているのかしっかりと把握する必要があります。easyDBを利用すればセキュリティ上で安全なファイル共有をクラウド上で行えるだけでなく、ファイルのバージョン管理等も簡単にできます。
ZoomやChatworkでファイル共有するならセキュリティ上で安全なeasyDB
>>>リモートワーク時代の安全なファイル共有「easyDB」はこちら

この記事に関連する記事