FutureSearch Logofuturesearch
  • Pricing
  • Research
  • Docs
  • Evals
  • Markets
  • Blog
  • Company
  • Try it for free
FutureSearch Logo

General inquiry? You can reach us at hello@futuresearch.ai.

Company

TeamCareersPressPrivacy PolicyTerms of Service

Developers

SDK DocsAPI ReferenceCase StudiesGitHubSupport

Integrations

Claude CodeCursorChatGPT CodexClaude.ai

Track Record

Trading ResultsAccuracy EvalsTournament Standings

Follow Us

X (Twitter)@dschwarz26LinkedIn
FutureSearchdocs
Frontier forecasting
Installation
  • All install methods
  • Claude.ai
  • Claude Code
  • Web App
  • Python SDK
  • Skill
Reference
  • API Key
  • forecast
  • decision
  • multi_agent
  • agent_map
  • World Modeling
  • Published Forecasts
  • MCP Server
  • Progress Monitoring
Guides
  • Turn Claude into an Accurate Forecaster
  • Forecast Outcomes for a List of Entities
  • Forecast Conditional Scenarios
  • Forecast Categorical and Threshold Questions
  • Find Profitable Prediction Market Trades
  • Research a Question with a Team of Agents
  • Add a Column via Web Research
  • Error Handling in FutureSearch: Failed Rows and Partial Results
Case Studies
  • Forecast a Decision: Grant Funding at Three Levels
  • Forecast a Decision: Which CEO Replacement Maximizes Share Price
  • Forecast a Binary Question End to End
  • Forecast a Date, Then Grade It
  • Forecast Categorical Outcomes for Two Stealth Labs
  • Forecast Conditional Scenarios for OpenAI's IPO
  • Forecast Anthropic and OpenAI IPOs: Dates and Valuations
  • Forecast a Sum-of-the-Parts SpaceX IPO Valuation
  • Forecast Founder Seed Valuations for AI Researchers
  • Find Startups Selling to Frontier AI Labs
  • Run 10,000 LLM Web Research Agents
FutureSearchby futuresearch
by futuresearch

Add a Column via Web Research

When preparing or post-processing a forecast, it is often useful to run research agents that add columns to a dataset. Gathering the background each question needs, or checking a result against the current state of the world, is the same operation: one agent per row, each searching the web and filling in a field.

Finding the pricing for a single SaaS product is easy. Doing it for 246 products means visiting 246 separate pricing pages, each with a different layout and pricing model. That volume of web research needs to happen in parallel.

Here, we find the annual price of the lowest paid tier for 246 SaaS products, by visiting each product's pricing page.

MetricValue
Rows246
Cost$5.28
Time5.5 minutes
Success rate100%

Add FutureSearch to Claude Code if you haven't already:

claude mcp add futuresearch --scope project --transport http https://mcp.futuresearch.ai/mcp

Download the dataset: saas_products.csv (246 SaaS and developer tools like Slack, Notion, Asana). With the CSV in your working directory, tell Claude:

For each product in saas_products.csv, find the annual price of its lowest paid tier.
Visit the product's pricing page to find this. If only monthly pricing is shown,
multiply by 12. Return the price and the tier name. If no paid tier exists, use 0.

Claude calls FutureSearch's agent MCP tool to dispatch web research agents for every row:

Tool: futuresearch_agent
├─ task: "Find the pricing for this SaaS product's lowest paid tier..."
├─ input_csv: "/Users/you/saas_products.csv"
└─ response_schema: {"lowest_paid_tier_annual_price": "float", "tier_name": "string"}

→ Submitted: 246 rows for processing.
  Task ID: 5c19...

Tool: futuresearch_progress
├─ task_id: "5c19..."
→ Running: 0/246 complete, 246 running (15s elapsed)

Tool: futuresearch_progress
→ Running: 123/246 complete, 123 running (150s elapsed)

...

Tool: futuresearch_progress
→ Completed: 246/246 (0 failed) in 327s.

Tool: futuresearch_results
├─ task_id: "5c19..."
├─ output_path: "/Users/you/saas_pricing.csv"
→ Saved 246 rows to /Users/you/saas_pricing.csv

Add the FutureSearch connector if you haven't already. Then upload saas_products.csv and ask Claude:

For each product, find the annual price of its lowest paid tier. Visit the product's pricing page to find this. If only monthly pricing is shown, multiply by 12. Return the price and the tier name. If no paid tier exists, use 0.

Go to futuresearch.ai/app, upload saas_products.csv, and enter:

For each product, find the annual price of its lowest paid tier. Visit the product's pricing page to find this. If only monthly pricing is shown, multiply by 12. Return the price and the tier name. If no paid tier exists, use 0.

First, download saas_products.csv. Then run the code below.

pip install futuresearch
export FUTURESEARCH_API_KEY=your_key_here  # Get one at futuresearch.ai/app/api-key
import asyncio
import pandas as pd
from pydantic import BaseModel, Field
from futuresearch import create_session, print_progress
from futuresearch.ops import agent_map_async


class PricingInfo(BaseModel):
    lowest_paid_tier_annual_price: float = Field(
        description="Annual price in USD for the lowest paid tier. "
                    "Use monthly price * 12 if only monthly shown. "
                    "0 if no paid tier exists."
    )
    tier_name: str = Field(
        description="Name of the lowest paid tier (e.g. 'Pro', 'Starter', 'Basic')"
    )

async def main():
    df = pd.read_csv("saas_products.csv")  # Single column: product

    async with create_session(name="SaaS pricing lookup") as session:
        print("Submitting task...")
        job = await agent_map_async(
            session=session,
            task="""
                Find the pricing for this SaaS product's lowest paid tier.
                Visit the product's pricing page to find this information.

                Look for the cheapest paid plan (not free tier). Report:
                - The annual price in USD (if monthly, multiply by 12)
                - The name of that tier

                If the product has no paid tier or pricing isn't public, use 0.
            """,
            input=df,
            response_model=PricingInfo,
        )
        result = await job.await_result(on_progress=print_progress)
    print(result.data)

asyncio.run(main())

Results

ProductAnnual PriceTier
1Password$35.88Individual
Airtable$240.00Team
Amplitude$588.00Plus
Notion$96.00Plus
Slack$87.00Pro

45 products (18.3%) correctly reported $0 for products with usage-based pricing (AWS ECR, Anthropic API) or no public pricing. Each result includes a research trail showing how the agent found the answer, with citations linking back to sources.


Built with FutureSearch. See the agent_map documentation for more options including response models and effort levels.