第5章 ユースケース ── 何に使われ、どんな価値を生んでいるか
ユースケースの分類軸
browser-useの実際のユースケースは二つの軸で整理できる。
quadrantChart
title browser-use ユースケース分類
x-axis タスクの構造化度低(探索的)--> タスクの構造化度高(繰り返し)
y-axis 読み取り専用 --> 書き込み・アクション伴う
quadrant-1 高頻度・自動化向き
quadrant-2 高価値・要注意
quadrant-3 調査・研究向き
quadrant-4 補助・補完向き
リサーチ自動化: [0.2, 0.1]
競合価格調査: [0.55, 0.1]
フォーム自動入力: [0.65, 0.8]
求人応募: [0.4, 0.75]
リードジェネレーション: [0.5, 0.5]
データ抽出: [0.6, 0.2]
Webテスト: [0.75, 0.3]
監視・モニタリング: [0.7, 0.15]
ユースケース1:リサーチ・情報収集の自動化
何をするか:複数のWebサイトを横断して情報を収集し、整理・要約する。
具体例:
- 「競合他社5社のプライシングページを見て、各プランの料金体系を比較表にまとめる」
- 「Googleニュースで今週の自社業界ニュースを10件収集し、要点を日本語で箇条書きにする」
- 「LinkedIn・Wantedly・Indeed で指定した職種の求人票を20件収集し、求める経験・スキルを整理する」
価値:人間が手動でやると2〜3時間かかる情報収集が15〜20分で完了する。リサーチアシスタントの役割を代替する。
実装例:
agent = Agent(
task="""
以下の競合5社のWebサイトを順に訪問し、
各社の主力プロダクトの料金プラン(無料・ベーシック・プレミアム)と
各プランの主な機能3つをJSON形式で収集してください:
- https://competitor-a.com/pricing
- https://competitor-b.com/pricing
- (以下略)
取得できない場合は"情報なし"と記録してください。
""",
llm=llm,
browser=browser,
)
result = await agent.run()
ユースケース2:フォーム自動入力・申請自動化
何をするか:複雑なフォームに情報を入力し、送信する。ドロップダウン・チェックボックス・ファイルアップロード・多段階フォームに対応。
具体例:
- 採用応募フォームへの自動入力(求職者向けツール)
- SaaSプロダクトへの無料トライアル登録(B2Bリードジェネレーション)
- 行政手続きの電子申請補助
- 請求書・見積書情報の基幹システムへの入力
価値:反復的なデータ入力作業の自動化。特にAPIを提供していないレガシーシステムとの連携手段として、エンタープライズでの注目が高い。
# フォーム自動入力の例:採用応募
applicant_data = {
"name": "山田 太郎",
"email": "[email protected]",
"experience_years": 5,
"skills": ["Python", "機械学習", "クラウドインフラ"],
}
agent = Agent(
task=f"""
以下のURLの採用応募フォームに情報を入力して送信してください。
URL: https://company.com/careers/apply/12345
入力情報: {applicant_data}
注意事項:
- 必須フィールドは全て埋めること
- 「スキル」フィールドでは複数選択が必要な場合があります
- 確認画面が出た場合は内容を確認してから送信してください
- ポップアップやモーダルダイアログが出た場合は適切に対応してください
""",
llm=llm,
browser=browser,
)
ユースケース3:リードジェネレーション
何をするか:ターゲット企業・担当者の情報をWebから収集し、CRMに投入する。
具体例:
- LinkedInでターゲット職種・業種・規模の人物を検索し、プロフィール情報を収集
- 業界ディレクトリサイトから見込み企業の連絡先・規模・技術スタックを収集
- 求人サイトから成長中の企業リストを生成(採用中の職種でスタートアップを特定)
エンタープライズでの活用パターン:APIのないSAPやCoupaなどのレガシーERPシステムとの連携手段として、大手企業がbrowser-useを採用するケースが増えている。「API連携の開発コストが数億円・数年かかる。browser-useなら数週間・数百万円」という費用対効果が語られる。
ユースケース4:データ抽出・スクレイピング
何をするか:JavaScript重依存サイト・ログインが必要なサイト・動的コンテンツからデータを抽出する。
従来のスクレイピングとの違い:
従来のスクレイピング(requests + BeautifulSoup)
→ JavaScriptで描画されるコンテンツは取れない
→ ログインセッションの管理が複雑
→ ページ構造の変更で壊れる
browser-use
→ JavaScriptを実行した状態のDOM/スクリーンショットを使う
→ ブラウザプロファイルでログイン状態を引き継ぐ
→ ページ構造が変わってもLLMが再解釈
structured output との組み合わせ:
from pydantic import BaseModel
from typing import List
class ProductInfo(BaseModel):
name: str
price: float
rating: float
review_count: int
availability: str
class SearchResults(BaseModel):
products: List[ProductInfo]
total_count: int
search_query: str
agent = Agent(
task="Amazon.co.jpで「ワイヤレスイヤホン」を検索して、上位10件の情報を取得",
llm=llm,
browser=browser,
result_type=SearchResults, # 出力を型安全なPydanticモデルとして受け取る
)
result: SearchResults = await agent.run()
# result.products[0].name, result.products[0].price ... と型安全にアクセスできる
ユースケース5:Webテスト・QA自動化
何をするか:UIの視覚的な変化・機能的な正常性をAIがテストする。
従来のE2Eテストとの違い:
従来のE2Eテスト(Playwright + セレクター)
✅ 高速・安定
❌ UIの変更でテストが壊れる
❌ 視覚的なレグレッションを検出できない
browser-use + AI
✅ 「ボタンが正しく表示されているか」を視覚的に確認できる
✅ UI変更後も「機能的に正しいか」を自然言語で確認できる
❌ 低速・コスト高
❌ 100%の再現性は保証されない
適切なユースケース:
- 本番環境の定期的なスモークテスト(毎時1回程度の頻度)
- UIデザイン変更後の視覚的なレグレッションテスト
- セレクターが安定しない動的フォームのテスト
ユースケース6:監視・アラート
何をするか:Webサイトの特定の状態を定期的に監視し、変化を検知してアラートを送る。
import asyncio
import schedule
async def monitor_competitor_pricing():
agent = Agent(
task="""
https://competitor.com/pricing にアクセスし、
プレミアムプランの月額料金を取得してください。
前回の記録($99/月)と比較して変化があれば明示してください。
""",
llm=llm,
browser=browser,
)
result = await agent.run()
if "変化" in result:
await send_slack_alert(f"競合価格変更検知: {result}")
# 毎日午前9時に実行
schedule.every().day.at("09:00").do(
lambda: asyncio.run(monitor_competitor_pricing())
)
活用例:
- 競合製品の価格変更監視
- 自社サービスのKPIページの異常検知
- 法令・規制サイトの更新検知
エンタープライズ採用のパターン
Fortune 500企業での採用では、以下のパターンが多く報告されている。
APIなき基幹システムの橋渡し:SAP・Oracle・Coupаなどの古いERPシステムはAPIを提供していないか、提供されていても導入コストが高い。browser-useはそのWebインターフェースを直接操作することで、数週間・低コストで連携を実現する。
レガシーウェブアプリのRPA代替:従来のRPA(UiPath・Automation Anywhere)はUI変更に弱く、保守コストが高かった。browser-useはUI変更に自動適応するため、保守コストが大幅に下がる。
BPO的な繰り返し作業の内製化:外部に委託していたデータ入力・リサーチ・フォーム申請作業を、browser-useで内製の自動化システムに置き換えるケースも増えている。