Webエンジニア向けプログラミング解説動画をYouTubeで配信中!
▶ チャンネル登録はこちら

【ITニュース解説】Compare salaries and hiring across countries with Glassdoor job data and Python

2026年10月28日に「Dev.to」が公開したITニュース「Compare salaries and hiring across countries with Glassdoor job data and Python」について初心者にもわかりやすく解説しています。

作成日: 更新日:

ITニュース概要

PythonとGlassdoor求人データで、世界各国の職種(例:データアナリスト)の給与や採用状況を比較分析するチュートリアル。専用スクレイパーでデータを収集し、pandasで年収範囲や募集企業を可視化する。給与データのクリーニングも解説し、市場のリアルな動向把握に役立つ。

ITニュース解説

この解説では、Glassdoorの求人データとPythonというプログラミング言語を活用し、世界各地の求人における給与水準や採用状況を比較する方法について説明する。システムエンジニアを目指す皆さんにとって、これはデータ収集、分析、そして実用的な情報抽出のスキルを学ぶ良い機会となるだろう。一般的に、特定の職種、例えばデータアナリストの給与がロンドンとニューヨークでどれくらい違うのかといった疑問に答えるのは簡単ではない。その理由は、給与データがさまざまな報告書に散らばっており、それぞれが異なる時期のデータや定義、調査対象に基づいているためである。しかし、Glassdoorのような求人サイトに掲載されている「ライブ」の求人情報は、企業が現在どのような条件で人材を募集しているかを示す、非常に有用な情報源となる。多くの求人には給与範囲が明記されており、これを収集・分析することで、より現実的な市場動向を把握できる。

今回紹介する方法では、Pythonスクリプトを記述し、主に三つのことを実現する。一つ目は、Glassdoorで指定した複数の都市(この記事の例ではニューヨーク、ロンドン、ベルリン、ベンガルール)で同じ職種(データアナリスト)の求人検索を並行して実行すること。二つ目は、検索でヒットした個々の求人情報をCSVファイルという表形式のデータとして保存すること。そして三つ目は、Pythonの「pandas」というデータ分析ライブラリを使って、年間給与の範囲、給与情報が掲載されている求人の数、そして現在積極的に採用を行っている企業を比較分析することである。

Glassdoorのような大手求人サイトは、大量のデータ収集を行うプログラム(スクレイピングボット)からのアクセスをブロックする対策を講じていることが多い。そのため、直接Webサイトの情報を読み取るスクレイピングは難しい場合がある。そこでこの方法では、「Apify Actor」という専門のツールを利用する。これは特定のWebサイトからデータを効率的かつ安定的に抽出するために設計されたプログラムであり、Glassdoorの求人情報を収集するための「Atlas Data」が公開しているApify Actorを使用する。このActorは、Glassdoorのブロックを回避するために、一般的なデータセンターのIPアドレスではなく、住宅用プロキシという技術を使ってアクセスを行うため、安定したデータ収集が可能になる。Apify Actorは利用した結果に応じて料金が発生する従量課金制のサービスだが、スクリプト内で収集量に上限を設定することで、予期せぬ高額請求を防ぐこともできる。このActorをPythonスクリプトから呼び出すことで、必要な求人データを取得する。

データ収集の際には、Glassdoorの検索機能とほぼ同じ詳細な条件を指定できる。例えば、検索キーワード(職種名)、勤務地(都市、州、国)、掲載期間(過去30日以内など)、雇用形態、最低評価、最低給与額などだ。ここでは、最近1ヶ月以内に掲載された求人に絞り込み、各都市で30件の求人情報を取得するように設定する。各検索は独立した処理として扱えるため、「ThreadPoolExecutor」というPythonの機能を使って、複数の都市での検索を同時に(並行して)実行する。これにより、一つずつ検索するよりも大幅に時間を短縮できる。収集されたデータは、タイトル、会社名、会社の評価、給与の最小値・中央値・最大値、給与の期間(年、月、時給)、通貨、給与情報の出典(雇用主が提示したものかGlassdoorの推定か)、掲載日など、多岐にわたる項目が含まれる。特に重要なのは「salarySource(給与の出典)」と「salaryAnnualMin/Max(年間給与の最小値/最大値)」である。給与の出典が雇用主によるものかGlassdoorの推定かによって信頼性が異なるため、これらを区別して分析することは非常に重要だ。また、時給や月給で提示された給与も、すべて年収に換算されるため、異なる国や形態の求人でも公平な比較が可能になる。

生データをそのまま分析しようとすると、誤った結論を導き出す可能性があるため、データを整理し、分析に適した形に加工する「データクリーンアップ」のステップが不可欠となる。今回のケースでは、二つの主要な問題に対処する。一つは「インターンシップ」の求人である。これらはデータアナリストとしての通常の給与水準とは異なるため、正規表現というパターンマッチングの手法を用いて、求人タイトルに「internship」や「werkstudent」といった単語が含まれるものをデータから除外する。二つ目は、給与の入力ミスである。例えば、年収「70-90」と記載されている場合、これはおそらく「7万~9万」という意味だが、データ上は単に「70~90」と記録される。このような明らかな誤りを修正するため、年間給与の最小値が1000未満の求人は除外する。これは、USD、GBP、EUR、INRといった複数の通貨に対応できるよう、かなり緩い基準で設定されている。これらのクリーンアップの後、各求人の給与範囲(最小値と最大値)の中間値を計算し、これをその求人の代表的な給与額として扱う。

データクリーンアップと加工が終わると、いよいよ分析のフェーズに入る。ここでは、各都市(市場)ごとにデータを集計する。具体的には、その市場の総求人数、クリーンアップ後に残った給与情報のある求人数、そのうち雇用主が提示した給与情報である求人数、その市場の主要な通貨、給与の中央値(全データを小さい順に並べたときに真ん中に来る値)、25パーセンタイル(下位25%の値)と75パーセンタイル(上位25%の値)、そして会社の平均評価などを計算する。給与の中央値は、極端に高い給与や低い給与に影響されにくい、より代表的な給与水準を示す指標となる。また、給与情報のある求人数や、雇用主が提示した情報である求人数も合わせて表示することで、その中央値がどれくらい信頼できるか(例えば、たった5件のデータから得られた中央値と30件から得られた中央値では重みが異なる)を判断する材料となる。この時点では、給与額は現地通貨のままで表示される。異なる国の給与を比較する際は、為替レートでの換算が必要となる場合もあるが、税金や福利厚生、生活費なども考慮に入れる必要があり、単純な数値換算だけでは公平な比較とは言えない点に注意が必要である。さらに、各都市で最も多くの求人を出している「トップ採用企業」も集計し、どの企業が活発に採用活動を行っているかを把握する。

実際にこのスクリプトをテスト実行した結果を見ると、各都市の状況が興味深く浮き彫りになる。例えば、ニューヨークでは30件の求人中29件で雇用主が給与範囲を明記していた。これはニューヨーク市が求人広告への給与範囲記載を義務付けていることが背景にあると考えられる。一方、ロンドンでは28件に給与情報があったものの、その約半分はGlassdoorの推定であり、ベンガルールに至っては22件の給与情報がすべてGlassdoorの推定だった。ベルリンでは、給与情報のある求人がもともと少なく、インターンシップや入力ミスを除外するとわずか5件しか残らなかったため、その中央値は参考程度に留めるべきであることが示される。これらの結果は、単に給与額を比較するだけでなく、データの「質」や「入手可能性」も考慮に入れることの重要性を示している。今回のテスト実行でかかった費用は、120件の求人情報収集とActorの起動費用を含めて約0.038ドルと非常に安価であった。

この手法は、さまざまな形でさらに拡張することも可能だ。例えば、雇用主が提示した給与情報のみに絞り込んで比較したり、複数の職種名を同時に検索して市場全体の傾向を把握したり、企業プロファイル情報(企業規模、収益、ウェブサイトなど)も合わせて取得して、有望な採用企業リストを作成したりできる。さらに、毎週このスクリプトを実行し、データを蓄積することで、時間の経過とともに市場がどのように変化しているかを追跡する、より高度な市場トラッカーを構築することも可能である。

システムエンジニアを目指す皆さんにとって、このようなデータの収集、クリーンアップ、分析、そしてそこから意味のある情報を引き出すプロセスは、将来のキャリアにおいて非常に役立つスキルとなるだろう。Pythonとデータ分析のライブラリ「pandas」、そしてWebデータの自動収集ツールを組み合わせることで、複雑な現実世界の問題を解決するための強力な武器を手に入れることができる。

関連コンテンツ

関連IT用語

関連ITニュース