FutureSearch Logofuturesearch
  • Blog
  • Solutions
  • Research
  • Docs
  • Evals
  • Company
  • Get Researchers
FutureSearch Logo

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

Company

Team & CareersPressPrivacy PolicyTerms of Service

Developers

SDK DocsAPI ReferenceCase StudiesGitHub

Follow Us

X (Twitter)@dschwarz26LinkedIn
FutureSearchdocs
Your research team
Installation
  • All install methods
  • Claude.ai
  • Claude Cowork
  • Claude Code
  • Web App
  • Python SDK
  • Skill
  • MCP Server
Reference
  • API Key
  • classify
  • dedupe
  • forecast
  • merge
  • rank
  • agent_map
  • screen
  • Progress Monitoring
  • Chaining Operations
Guides
  • LLM-Powered Data Labeling
  • Add a Column via Web Research
  • Classify and Label Rows
  • Deduplicate Training Data
  • Filter a Dataset Intelligently
  • Join Tables Without Shared Keys
  • Rank Data by External Metrics
  • Resolve Duplicate Entities
  • Scale Deduplication to 20K Rows
Case Studies
  • Deduplicate Contact Lists
  • Deduplicate CRM Records
  • Enrich Contacts with Company Data
  • Fuzzy Match Across Tables
  • Link Records Across Medical Datasets
  • LLM Cost vs. Accuracy
  • Merge Costs and Speed
  • Merge Thousands of Records
  • Multi-Stage Lead Qualification
  • Research and Rank Web Data
  • Run 10,000 LLM Web Research Agents
  • Score Cold Leads via Web Research
  • Score Leads from Fragmented Data
  • Screen 10,000 Rows
  • Screen Job Listings
  • Screen Stocks by Economic Sensitivity
  • Screen Stocks by Investment Thesis
FutureSearchby futuresearch
by futuresearch

Progress Monitoring

everyrow operations typically take 1–10+ minutes depending on dataset size and operation type. Both the Python SDK and the MCP tools provide progress monitoring and a session URL where you can watch tables update in real-time.

What to Expect

Web UI

Every operation is part of a session, which you can view at https://futuresearch.ai/sessions/<session_id>. You can open it in your browser to see:

  • Real-time progress for each row
  • Web searches each agent ran and the pages it read
  • Explanation for each result, including links to sources
  • Data visualizations

Python SDK

To see progress updates while a task is running, use the print_progress callback:

from everyrow import print_progress

result = await task.await_result(on_progress=print_progress)

Output:

 0/10   0% | 10 running
 2/10  20% |  8 running
 4/10  40% |  6 running
 6/10  60% |  4 running
 8/10  80% |  2 running
10/10 100%

You can also provide a custom on_progress callback for programmatic progress handling (see below).

MCP Tools

When you run an everyrow operation via MCP:

  1. The tool returns immediately with a session URL
  2. Progress updates appear every few seconds during execution
  3. Results are saved as a CSV file when the operation completes
  4. If you've installed the plugin, a desktop notification (macOS and Linux) tells you when it's done

The workflow:

everyrow_agent        →  start the operation, get a task_id and session URL
everyrow_progress     →  check status (blocks for a few seconds, then returns progress)
everyrow_progress     →  check again (the agent loops automatically)
everyrow_results      →  download results when complete

The agents handle the polling loop automatically. You'll see progress in the conversation like:

Running: 20/50 complete, 30 running (45s elapsed)

And when it finishes:

Completed: 50/50 (0 failed) in 100s
...
Saved 50 rows to /path/to/output.csv

Python SDK Progress

For printing progress updates as a task runs, use the provided print_progress callback:

from everyrow import print_progress

result = await task.await_result(on_progress=print_progress)

Or provide a custom callback:

from everyrow.generated.models import TaskProgressInfo

def my_progress_handler(progress: TaskProgressInfo):
    print(f"{progress.completed}/{progress.total} done, {progress.failed} failed")

result = await task.await_result(on_progress=my_progress_handler)

The callback receives a TaskProgressInfo object and only fires when the progress snapshot changes.