【ITニュース解説】How I Used Claude and Gemini to Build a Commercial Company Search Tool

2025年09月03日に「Dev.to」が公開したITニュース「How I Used Claude and Gemini to Build a Commercial Company Search Tool」について初心者にもわかりやすいように丁寧に解説しています。

作成日: 更新日:

ITニュース概要

AI(ClaudeやGemini)を活用し、Google Maps APIで企業名、住所、電話番号、ウェブサイト、メールアドレスを検索・抽出するツールが開発された。このツールは、ビジネス向けに企業情報をCSVやJSONで提供し、ターゲット企業の発見とマーケティング活動を効率化する。開発はAIとの対話で進んだ。

ITニュース解説

このニュース記事は、AIアシスタントを活用して、わずか2週間で企業の検索ツールを開発し、実際に商用サービスとして公開した事例を紹介している。システムエンジニアを目指す初心者にとっても、現代の開発手法やAIの活用方法が具体的に理解できる良い例だ。

物語は、筆者が知人からモロッコの物流会社を見つける手助けを求められたことから始まる。知人はGoogle Maps APIという、Googleマップの機能を利用するためのプログラム部品をAIを使って書きたいと考えていたが、Pythonというプログラミング言語の使い方が分からず困っていた。そこで筆者は、ほんの数分でPythonスクリプトを書き上げ、知人が求める約60件の会社リストをCSV形式(表計算ソフトで開けるデータ形式)で提供し、知人を大いに満足させた。この経験を通じて、筆者は「このような会社検索サービスには明確な市場ニーズがある」と確信し、本格的なツール開発へと踏み出すことになる。

開発期間はわずか2週間。この間に筆者はAIと40回もの対話を行い、356もの指示を出し、110回ものコード変更(コミット)を重ねた。そして完成したのが、オンラインで利用できる企業検索ツールだ。

このツールの主な機能は、Google Maps APIの「Places API」という機能を使って、指定された種類の企業(ヨガスタジオ、金物店、レストランなど)や場所(都市)のリストを取得することだ。さらに、取得した企業のウェブサイトからメールアドレスを自動的に抽出する機能も備えている。最終的に、ユーザーは会社の住所、名前、電話番号、ウェブサイト、そして抽出されたメールアドレスといった詳細な情報を、CSV形式やJSON形式(プログラムで扱いやすいデータ形式)でダウンロードできる。これにより、企業間取引(B2B)を行うユーザーは、自社の製品やサービスを売り込むためのターゲットリストを効率的に作成できるようになる。

筆者は、このツールをどのように構築したのか、そのプロセスを詳しく語っている。まず、初期の「数分で作成したPythonスクリプト」をベースにした。しかし、これだけではウェブサービスにはならないため、ウェブブラウザで操作できる画面(ユーザーインターフェース)をHTMLファイルで作成した。次に、Pythonスクリプトの核となる機能を分離し、「server.py」というファイルでウェブサーバーの役割を担わせた。これは、ユーザーからのリクエストを受け取り、データ処理を行う裏側の仕組みとなる。

データ管理には「SQLite」という軽量なデータベースを選んだ。複雑なシステムでなくても、シンプルなデータベースで十分という判断だ。さらに、同じ検索条件で何度も検索が行われた場合に、毎回同じ処理を行うのではなく、一度取得したデータを保存しておき、すぐに返す「キャッシュ機能」を追加して、システムの応答速度を向上させた。ウェブサイトからのメールアドレス抽出機能は、別の専門ツールが提供するAPI(外部サービスと連携するための窓口)を組み込むことで実現した。

また、作成したツールを多くの人に見つけてもらうために、Googleの検索結果で上位に表示されるようにする「SEO(検索エンジン最適化)」対策も行った。これにはAIアシスタントのGeminiが活用され、ツールの紹介記事や利用ガイドなどが自動生成された。世界中のユーザーに対応できるよう「i18n(国際化対応)」も導入し、さらに細かなパフォーマンス最適化も施された。

開発中、筆者はAIと密接に協力し、さまざまな指示を出している。例えば、「データエクスポート機能を修正してほしい」「並行処理中にリアルタイムのログを表示したい」「メール抽出が並行処理されているか確認してほしい」といった機能に関する指示だけでなく、「モバイルでの表示が見にくいので、調整してほしい」「現在のAPIが少し遅いので、改善してほしい」といった性能やユーザー体験(UI/UX)に関する要求もAIに伝えている。また、開発の途中で「コードをコミットしてほしい」(変更を保存して記録してほしい)といった開発管理の指示までAIに行わせていたのは興味深い点だ。最終的には、テーブル表示の見た目をより美しく、メール情報が分かりやすく表示されるように調整するといった、細かなデザイン修正もAIに依頼している。

実際にツールを利用する際は、まず検索したい企業の業種(例:ヨガスタジオ)と都市(例:フェニックス)を入力して検索ボタンをクリックする。すると、ウェブページにプログレスバーが表示され、システムが現在どのような処理を行っているか(都市の特定、API検索、詳細情報の追加、メールアドレス抽出など)がリアルタイムで示される。そして処理が完了すると、必要な情報が整然と並んだテーブル形式で画面に表示される仕組みだ。

この開発プロジェクトを通じて、筆者はいくつかの重要な教訓を得ている。最も印象的だったのは「早期に最適化しない」という考え方だ。まずは「MVP(Minimum Viable Product)」、つまり「最小限の機能で動作する製品」を完成させることが重要であり、それが動作すれば十分だという。AIが作ったツールは複数のPythonファイルを繋ぎ合わせただけのシンプルな構成になりがちだが、それがまさに正しいアプローチだと筆者は語る。シンプルであることの重要性、そして複雑にしないことの大切さだ。

また、AIにコードを検証させる際に「ローカル環境」(自分のパソコン上の開発環境)を提供することの難しさも指摘している。AIはサーバーの状況(例えば、ウェブサーバーのNginxが起動しているかなど)を直接知ることができないため、デバッグが難しい場合がある。このことから、全ての設定や構成情報をコードとして同じリポジトリ(コードを管理する場所)にまとめておく「Everything as code」という考え方が重要だと筆者は強調する。これにより、システム全体の状況をAIが把握しやすくなり、より的確なデバッグや改善提案が可能になる。これは「コンテキストエンジニアリング」とも呼ばれる、AIに十分な情報(コンテキスト)を与えて効果的に活用する技術だ。

このニュース記事は、AIアシスタントが単なるコード生成ツールにとどまらず、企画から開発、最適化、さらにはマーケティング支援まで、開発プロジェクトのあらゆる段階で強力なパートナーとなり得ることを示している。筆者は、このツールが人々に役立つことを期待しており、もし需要があれば、ユーザー登録、ログイン、タスク管理、検索履歴といった機能を追加し、将来的には有料サービスとして提供することも視野に入れている。

システムエンジニアを目指す初心者にとって、AIがこれほど広範囲で開発を支援できることは驚きかもしれない。しかし、この事例は、AIを効果的に活用することで、一人でも短期間で本格的なウェブサービスを構築できる現代の開発環境の可能性を具体的に示している。AIはあくまでツールであり、それをどのように使いこなし、どのようなアイデアを実現するかは、人間の発想力とエンジニアリングスキルにかかっていることを教えてくれる事例だ。