rtrvr.ai logo
Retriever AI
Blog
Book Demo
Pricing
API Docs
All Case Studies

Case Study

Retriever AI×Bright Data

From logged-in lists to enriched action

How Retriever combines the context inside a user's browser with Bright Data's public-web data layer — 500 event attendees researched, scored, and contacted from one prompt for about $1.25.

Arjun·August 2, 2026·7 min read
Company
Retriever AI
Use case
Agentic enrichment and research inside user-authorized browser workflows
Bright Data products
Marketplace Datasets and Dataset API
Web Scraper API
Web Search API

At a glance

500
Attendees researched
From a list behind the user's login
10
Prospects contacted
Top ICP matches, messaged in the same run
1
Natural-language prompt
No export, no column mapping
~$1.25
Dataset lookup cost
500 records at pass-through pricing

500 attendees enriched, scored, and contacted

The workflow described in this case study, start to finish.

500 attendees enriched, scored, and contacted
2:45

Retriever AI is an AI web-agent platform that can understand, navigate, extract from, and take action inside a user's live browser.

Unlike browser agents that repeatedly ask a model what to click next, Retriever represents webpages as structured text and DOM data. Its code-as-plan architecture has the agent write a JavaScript program for the user's specific request and execute that program in a sandbox.

The generated code can parse page content, extract hundreds of rows, normalize identifiers, call APIs, batch requests, join records, remove duplicates, write to Google Sheets, and complete actions in the browser. Repetitive data operations are handled by deterministic code rather than by additional model calls.

The challenge: the most valuable lists are inside the user's browser

Many high-value business lists do not exist at a public URL or behind a convenient API. They live on pages the user is already authorized to see:

  • Event guest and attendee lists
  • Logged-in professional searches
  • Member and partner directories
  • Customer or vendor portals
  • Subscription databases
  • Private marketplace and property listings
  • Internal dashboards and CRM views

Server-side enrichment platforms cannot see which records the user is currently looking at. So users export a CSV, clean it, upload it into another product, map its columns, configure an enrichment waterfall, and import the results back into the system they started in.

A browser agent can see the page, but without a structured data layer it has a different limitation: it has to open and research every record individually. A list of 500 people turns into hundreds of tabs, page loads, model turns, retries, and verification steps.

Retriever needed a way to combine the context available inside the user's browser with fast, structured public-web data.

The solution: the browser provides context, Bright Data provides enrichment

Retriever uses the browser as the context, intent, and action layer, and Bright Data as the public-web data layer.

When a user opens an authorized page and asks Retriever to enrich it, the agent generates a JavaScript plan that:

  1. Parses the records visible in the browser.
  2. Extracts and normalizes names, profile URLs, company domains, listing URLs, or other identifiers.
  3. Selects the appropriate Bright Data dataset and fields.
  4. Performs bulk lookups against pre-collected datasets where available.
  5. Uses live collection for exact URLs that need fresh data.
  6. Runs targeted web searches to discover missing information and candidate sources.
  7. Joins and deduplicates the results.
  8. Scores or classifies the enriched records according to the request.
  9. Opens only the most relevant pages when browser-level verification is needed.
  10. Writes the results to a sheet or completes the requested actions in the live browser.

Retriever exposes Bright Data-backed enrichment across people, business, social, commerce, real-estate, employment, and local-business datasets — LinkedIn people, LinkedIn contact-enriched profiles, and LinkedIn companies for instant lookup, plus live collection for Crunchbase, Instagram, Amazon, Zillow, Indeed, and Google Maps. The full list, filter syntax, and pricing are in the enrichment docs.

Bright Data's Dataset API supports low-latency searches over pre-collected marketplace data, while the Web Scraper API returns fresh structured records for supported URLs and sites.

Code-as-plan turns enrichment into a generated program

Retriever does not ask the model to research each row. It asks the model to write the enrichment pipeline once.

The resulting program handles key extraction and normalization, batching, parallel requests, retries, dataset-field selection, record joins, deduplication, cost calculation, result projection, sheet writes, scoring, and filtering.

That means a different enrichment workflow for every request. An event attendee list might need people and company data followed by ICP scoring. A property directory might need Zillow data, neighborhood research, and price comparisons. A product list might need Amazon data, availability checks, and competitor discovery.

Instead of forcing each user into a fixed waterfall template, Retriever generates the waterfall for the particular page, dataset, and requested outcome. Users can inspect the generated code, edit it, save it, and replay it against a future list.

js
// Build lookup keys from the rows on the page — the LinkedIn slug, not the URL. const ids = rows .map(r => r.linkedinUrl?.split('/in/')[1]?.split(/[/?#]/)[0].toLowerCase()) .filter(Boolean); // Estimate cost and get explicit approval before any paid call. const estCredits = Math.ceil(ids.length * 0.25); const { answers } = await rtrvr.askUser({ questions: [{ key: 'enrichApproval', query: `Enrich ${ids.length} LinkedIn profiles for ~${estCredits} credits?`, choices: ['Yes', 'No'], }], }); if (answers.enrichApproval !== 'Yes') return { summary: 'Enrichment declined.' }; // One instant lookup — batching against the Dataset API happens server-side. const { records } = await rtrvr.enrich({ dataset: rtrvr.datasets.linkedinPeople, filter: { name: 'id', operator: 'in', value: ids }, fields: ['name', 'position', 'current_company', 'city'], });

Everything around the paid lookup is deterministic code, not model turns. A for-loop should not cost tokens, and here it doesn't.

Web search as a force multiplier for browser agents

Bright Data-powered web search expands how much research a browser agent can do before it needs to navigate anywhere.

A conventional browser agent discovers information by opening a search engine, typing a query, reading the result page, clicking a result, loading the page, and repeating. Discovery itself becomes a long browser workflow.

Retriever reverses this. Its generated code fans out targeted searches across industries, people, companies, locations, products, or research topics. It receives structured titles, URLs, snippets, and local results, then deduplicates and ranks them before opening any pages.

The agent only opens the highest-value sources — for detailed extraction, fact verification, authenticated information, form completion, outreach, and other browser-native actions.

Search performs discovery. The browser performs verification and action.

Example: turning an event guest list into qualified pipeline

In Retriever's launch demonstration, the user opened a 500-person event guest list available through their authenticated browser session and gave the agent one instruction:

Enrich these guests with professional profiles and work emails, score them against my ICP, and reach out to the top 10.

Retriever generated and executed a program that:

  • Extracted all 500 attendees from the open page
  • Normalized the available profile and identity information
  • Matched the records against people, company, and contact datasets
  • Used web search and live pages for what was still missing
  • Scored the attendees against the user's ideal customer profile
  • Streamed the enriched records into a Google Sheet as they landed
  • Selected the 10 strongest matches
  • Sent personalized connection requests and emails

The whole process started from the page the user was already viewing. No export and re-import loop, no manual column mapping, and no requirement to configure a reusable enrichment template before the task could begin.

At Retriever's current pricing, the Bright Data-backed instant lookup costs 0.25 Retriever credits per matched record — $2.50 per 1,000. A fully matched 500-person lookup is therefore about $1.25. Unmatched lookups are not charged, and every paid dataset operation is estimated and shown to the user for approval before it runs.

User control and architectural separation

An important part of the architecture is the separation between authenticated browser context and public-web enrichment.

Retriever does not need Bright Data to sign in to the user's account or reach the authenticated source page. The page the user has opened is processed by Retriever as a user-authorized context and selection layer.

The generated plan then sends the relevant public identifiers or source URLs into Bright Data's data products. Results come back to Retriever, are joined with the original browser records, and are presented or acted on inside the user's workflow.

Paid enrichment calls are approval-gated, and the generated program can be inspected before or after it runs. Entity extraction happens before the cost estimate, and the paid lookup runs only after the user approves it.

Looking forward

Retriever plans to expand this model across sales research, recruiting, event follow-up, real estate, e-commerce, local-business discovery, job research, and any workflow where a user has a valuable list open in their browser.

The larger opportunity is to make public-web data a native building block for web agents. Instead of asking users to leave their workflow and operate a separate data platform, Retriever lets an agent select the right Bright Data product, write the integration code, get approval, and use the resulting data as part of a complete task.

Bright Data provides the public-web data plane. Retriever provides the live context, orchestration, and action layer.

Bright Data gives Retriever a structured public-web data layer, while our browser agent contributes the user's live context and the ability to act. The browser tells us which entities matter to the user; Bright Data lets us enrich and research those entities at scale. Our code-as-plan architecture composes the two into a custom, auditable workflow at the exact moment the user needs it.
Arjun Chintapalli · Co-founder, Retriever AI

The results

Bulk data instead of serial browsing

Hundreds of entities are matched against structured datasets without loading hundreds of individual profile pages.

Discovery before navigation

Web search identifies likely sources in code, so browser tabs are reserved for the highest-value results.

No export workflow

The source list, enrichment, scoring, verification, and actions all stay inside one browser task.

A new pipeline for every request

Users describe an outcome instead of configuring a fixed waterfall or automation template.

Auditable execution

The agent's work is readable code, not an opaque sequence of model decisions — inspect it, edit it, replay it.

Immediate actionability

Because Retriever stays in the browser, enriched results can update systems, submit forms, and send outreach right away.

Why Bright Data

Public-web data infrastructure: marketplace datasets, live scrapers, and a structured search layer built for AI agents.

  • Pre-collected datasets for fast, economical bulk matching
  • Live scrapers for fresh, URL-specific information
  • Web search for broad and localized discovery
  • Structured schemas that generated code can inspect and use
  • Asynchronous collection for jobs that cannot complete immediately
  • Pay-per-result economics suited to agent-generated workflows

Keep reading

  • Enrichment Datasets docs
  • Blog: Agentic dataset enrichment in your browser
  • Use case: Lead Enrichment
Share this case study:
All Case Studies

Run this workflow yourself

Enrich the lists behind your own logins

Install the free Chrome extension, open an attendee list or a sheet, and ask. Or run the same task in a Retriever cloud browser.

Try Extension FreeTry Cloud Platform

On this page

  • The challenge: the most valuable lists are inside the user's browser
  • The solution: the browser provides context, Bright Data provides enrichment
  • Code-as-plan turns enrichment into a generated program
  • Web search as a force multiplier for browser agents
  • Example: turning an event guest list into qualified pipeline
  • User control and architectural separation
  • Looking forward
  • The results
  • Why Bright Data
rtrvr.ai logo
Retriever AI

Retrieve, Research, Robotize the Web

By subscribing, you agree to receive marketing emails from Retriever AI. You can unsubscribe at any time.

Product

  • Browser Extension
  • Cloud
  • RoverNEW
  • API & MCP
  • CLI & SDK
  • Templates
  • WhatsApp

Use Cases

  • Vibe Scraping
  • Lead Enrichment
  • Agentic Form Filling
  • Web Monitoring
  • Social Media
  • Job Applications
  • Data Migration
  • AI Web Context
  • Agentic Checkout

Compare

  • vs Apify
  • vs Bardeen
  • vs Browserbase
  • vs Browser Use
  • vs Clay
  • vs Claude
  • vs Comet
  • vs Firecrawl

Resources

  • Documentation
  • Blog
  • Case Studies
  • Newsletters
  • Changelog
  • Integrations
  • Pricing
  • AppSumo Deal
  • Book Demo
  • Affiliate Program

Company

  • Team
  • Contact
  • GCP Partner
  • Privacy Policy
  • Terms of Service
  • Security Brief
support@rtrvr.ai

© 2026 Retriever AI. All rights reserved.

Made withfor the automation community