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

【ITニュース解説】I had 30 remote jobs and 2,000 more I wasn't showing. Here's what fixing it took

2026年09月30日に「Dev.to」が公開したITニュース「I had 30 remote jobs and 2,000 more I wasn't showing. Here's what fixing it took」について初心者にもわかりやすく解説しています。

作成日: 更新日:

ITニュース概要

求人サイトで「求人件数が少ない」「スキルの誤表示」「検索エンジンに表示されない」などの問題が発生。複数の情報源を統合し、重複・非リモート求人の除外、スキルタグの修正、サーバーサイドレンダリング導入などで技術的課題を解決。その結果、正確で多くの求人情報を届けられるようになった。

ITニュース解説

Nokku.aiという求人情報サイトを運営する開発者が、サイト上で表示されるリモート求人情報に重大な問題があったことを発見し、それをどのように解決したかという話だ。このサイトは、様々な求人情報源からデータを集めてトレンドや求人を紹介するものだが、ある日、リモート求人ページに30件の求人しか表示されていないことに気づいた。これが数週間も見過ごされていたという。実際にはもっと多くの求人データがデータベースには蓄積されていたにもかかわらず、ページにはごく一部しか表示されていなかったのだ。この問題の原因は、複数の求人情報源(RemoteOK、JSearch、Arbeitnowなど)からデータを収集しているにもかかわらず、表示ページはそれらのうちの一つからしか情報を読み込んでいなかったことにある。データベースには使われずに眠っている2000件以上の求人が存在していたのだ。

この問題を解決し、約150社からの約200件の最新リモート求人が表示されるページへと改善する過程は、システム開発における実践的な学びが詰まっている。

まず最初に手をつけたのは、データの統合と整理だ。複数の求人情報源からデータを読み込むこと自体は、それぞれから情報を取得するクエリを実行すれば実現できる。しかし、問題はその後に返ってくるデータだ。異なる情報源から同じ求人が複数回届くことがある。例えば、ある会社がLinkedInに求人を掲載し、それを複数のジョブボードがそれぞれ収集した場合、Nokku.aiのデータベースには同じ求人が重複して登録されてしまう。これを解決するため、会社名と職種名で重複をチェックし、もし重複が見つかった場合は、給与情報が記載されている方を優先して残すようにした。これは、ユーザーにとってより有益な情報を提供するための工夫だ。次に、「リモート」という言葉の定義を厳格化した。求人情報サイトの中には「リモート求人専門」と謳っていても、「シニア開発者 – DC + ハイブリッド」のように、ハイブリッド勤務やオンサイト勤務を含む求人が紛れ込んでいることがある。このような求人タイトルに「ハイブリッド」や「オンサイト(in-office)」といったキーワードが含まれている場合は、厳密なリモート求人ではないと判断し、表示対象から除外した。また、求人詳細へのリンクも確認し、http(s)で始まらない無効なリンクは、ユーザーがアクセスできないため、ページに表示される前に取り除くようにした。

データが統合され、クリーンアップされた後も、予期せぬ問題が発生した。サイト上で「Go」というスキルが201件中102件もの求人にタグ付けされていることが判明したのだ。これは市場の実際の傾向を示すものではなく、明らかにシステムのバグだった。古いデータでは、スキル抽出のロジックが文字列の部分一致で行われていたため、「good」という単語から「Go」を抽出したり、「email」から「AI」を抽出したり、「JavaScript」から「Java」を抽出したりといった誤 tagging が発生していた。このスキル抽出のロジックは既に修正済みで、単語の区切りを考慮した正確なパターンマッチングに切り替えられていたが、修正以前にスクレイピングされた古いデータにはこの問題が残っていたのだ。データベース全体を一度に書き換えるのではなく、求人情報をページに読み込む際に、その求人がスクレイピングされた日時を確認し、修正が適用された後に取得されたデータについては、最新の正確なスキル抽出ロジックを適用するように変更した。この修正により、「Go」のタグ付けされた求人数は102件から11件へと大幅に減少した。この経験から、開発者は「驚くほど大きな数字は、それが正しいと証明されるまではバグとして扱うべきだ」という教訓を得た。

次に重要だったのは、Google検索エンジンからの視認性、つまりSEO対策だ。以前の求人ページは、ユーザーがアクセスした後にJavaScriptを使って求人情報を読み込む、いわゆるクライアントサイドレンダリング(CSR)方式で実装されていた。この方式だと、Googleのクローラーがページにアクセスした際、初期表示は空のページやローディング中の表示しか見えず、実際の求人コンテンツを認識してインデックス登録することができなかった。これを改善するため、求人ページはサーバーサイドレンダリング(SSR)に変更された。これにより、ユーザーがページにアクセスする際、サーバー側でHTMLに最初の25件の求人情報が埋め込まれた状態でページが生成されるようになった。このHTMLは30分ごとに更新されるため、Googleクローラーは常に最新の求人コンテンツを直接読み込むことができ、適切にインデックス登録されるようになった。また、特定のスキルでフィルタリングした際、例えば「/jobs?skill=Python」のようにURLに条件が反映されるようになったが、正規のURLは「/jobs」を指すように設定し、重複コンテンツとしてGoogleに認識されないように配慮されている。

さらに、ユーザーが「リモート求人」だけでなく、「リモートPython求人」や「リモートソフトウェアエンジニア求人」といった、より具体的な職種やスキルで検索することに対応するため、各職種やスキルごとに個別のページを自動生成する機能を追加した。これにより、ユーザーの検索意図に合ったページを提供し、検索エンジンからの流入を増やすことを目指した。ただし、自動生成されたページは内容が薄いと検索エンジンの評価を下げるリスクがあるため、いくつかのルールが設けられた。まず、5件未満の求人しか掲載されていないページは、検索エンジンのインデックス対象から除外(noindexタグを付与し、サイトマップからも除外)される。これにより、品質の低いページが検索結果に表示されるのを防ぐ。ただし、これらのページはユーザーからはアクセス可能であり、求人数が増えれば自動的にインデックスに戻される仕組みだ。また、各ページの紹介文はテンプレート文を使い回すのではなく、そのページに表示される実際のデータ(例:「過去30日間に17社から18件のリモート求人がPythonスキルを求めています。」)に基づいて動的に生成されるようにした。これにより、各ページがユニークで情報価値の高いものとなるよう工夫されている。

表示する数字の信頼性も重要な改善点だった。例えば、以前は3件の求人データから「中央値の給与: $1」といった形で給与の中央値を表示していた。しかし、たった3件のデータでは統計的に信頼できる値とは言えない。そのため、十分な数の求人(例えば、給与が記載された求人が5件以上)が集まるまでは、中央値を表示せず、「給与記載あり: 3件」のように、利用可能なデータ数を明確に表示するように変更した。これは、ユーザーに誤解を与えないための誠実な情報提供と言える。同様に、「New」というバッジも、以前は2日間の新しい求人すべてに付けていたため、多くの求人が「New」と表示され、その意味が薄れてしまっていた。この問題を解決するため、バッジは最新の1日分の求人だけに限定して表示するようにした。

その他、ユーザーがリストを見やすく、使いやすくするための細かな改善も行われた。求人リストの各行では、まず会社名が目立つ色で表示され、その後に職種、勤務地、そして最大4つのスキルタグが続くように表示順が変更された。また、応募先が「via LinkedIn」のように具体的に示され、そのサイトのファビコン(サイトアイコン)も表示されるようになった。このファビコンは、プライバシー保護の観点から、外部のファビコンサービスを利用せず、自社のサーバーにあるパブリックフォルダから提供するように変更された。これにより、ユーザーのIPアドレスが第三者に送信されることを防いでいる。さらに、外部の求人情報サイトへのリンクには、検索エンジンがそのリンクを追跡しないようにnofollow属性が付与され、各ジョブボードのクレジットもページ上に明記されている。

この一連の改善を通じて、開発者はシステムを構築する上での貴重な教訓を得た。まず、システムが表示している数字と、実際にデータベースに格納されている数字を常に比較し、予期せぬ大きな数字はバグであると疑うべきだということ。次に、自動生成されるSEOページには、品質を保証するための明確な基準が必要であり、必要に応じてインデックスから除外する仕組みも重要であること。そして、統計情報を表示する際は、その数字が信頼に足るものであるかを常に確認し、自信を持って説明できないような統計は表示すべきではないということだ。これらの改善は、ただ求人数を増やすだけでなく、サイトの信頼性、ユーザビリティ、そして検索エンジンからの評価を大きく向上させる結果となった。

関連コンテンツ

関連IT用語

関連ITニュース