NewLaunching String Web Access APIRead the manifesto →

9 min read

How to collect alternative data for investing from the web

Track hiring, prices and reviews by company from Indeed, Home Depot, Trustpilot and Booking.com.

SourceTickerSignalValue
IndeedCMGOpen jobs10,988
IndeedSBUXOpen jobs21,438
Home DepotSWKDeWalt drill price$179
Home DepotSWKDeWalt drill reviews11,412
TrustpilotCHWYReviews13,344
TrustpilotCHWYTrustScore3.3
The short answer

The String Web Access API is the best way to collect alternative data for investing from the web. It returns any public page, or just the number you track as JSON, such as a company's open jobs, a product's price or its review count, from sites that block scrapers, like Indeed, Home Depot, Trustpilot and Booking.com. It returned 97% of requests across 100 bot-protected sites in our September 2026 benchmark, the most of 16 providers.

Quickstart

Add the hosted MCP server to Claude, Cursor, ChatGPT or any MCP client. Then give your agent a company's Indeed jobs page or a product URL. It calls the web_access_fetch tool and reads the number.

https://mcp.usestring.ai/v1/mcp

Why collect alternative data from the web?

Alternative data is information about a company's business that isn't in its filings or in analyst reports. The web is the part of it a research team can collect itself. Companies report once a quarter, while their prices, job posts and reviews change every day on public pages. Collected on a schedule, those pages answer questions the next report will:

  • Is demand rising or falling this quarter? Review counts, stock-outs and bestseller ranks move with unit sales, weeks before revenue is reported.
  • Are prices and mix changing? List prices, promotions and assortment feed average selling price and margin estimates.
  • Is the company hiring or cutting? Open job counts by company and location show hiring plans long before headcount shows up in a 10-K.

What you can collect

Prices and stock

Product prices, promotions and availability from Home Depot, Walmart and Best Buy, including one store's price and stock for a ZIP code.

Hiring

Open job counts per company and per location from Indeed, Glassdoor, ZipRecruiter and company careers pages.

Reviews and ratings

Review counts, star ratings and dated reviews from Trustpilot and retailer product pages.

Travel and live events

Hotel rates and availability on Booking.com and Expedia, and ticket listings on StubHub and SeatGeek.

Why does alternative data collection break?

  • The sites behind the signals block scrapers. In our September 2026 benchmark, 12 of the 15 other scraping APIs couldn't fetch indeed.com on every attempt, 10 of 15 couldn't fetch homedepot.com or trustpilot.com, and 8 of 15 couldn't fetch booking.com. String returned all 20 attempts across the four. ScraperAPI and Bright Data got 18 of 20, and Browserbase got 0 of 20. See all 16 providers in the best web scraping APIs.
  • Gaps look like signal. A blocked run returns no price or a short job list, and the time series reads it as a price cut or a hiring freeze.
  • History can't be collected later. Most pages show only today's price and today's job count. A week you missed is missing from every backtest.

Why do teams choose String?

  • It fetches the most pages. String returned 97% of requests across 100 bot-protected sites in our September 2026 benchmark, the most of 16 providers.
  • Missing values come back flagged. Mark the number as required in your schema, and a page without it returns "extracted": false instead of a zero.
  • You pay only for pages that come back. Blocks and errors are free, and there are no proxies or captcha solvers to run on your side.
  • Investment teams already use it. String works with 6 of the top 10 hedge funds and 2 of the top 5 asset managers. See String for finance.

How do I collect alternative data from the web?

  1. Start from the KPI, not the site

    Name the company metric you want to estimate, such as same-store sales, units or headcount, and the web activity that should move before it. A source that can't be tied to a reported number is hard to backtest and hard to defend to a PM.

  2. Fix the panel before you collect

    Pick a set of URLs, such as 200 SKUs, 50 stores or one jobs page per company, and keep it fixed through the quarter. Adding or dropping pages mid-quarter changes the totals and reads as a trend. Record the date each URL joined the panel.

    With String: A sitemap crawl lists every URL on a domain, and the /search endpoint finds pages by keyword.

  3. Map every URL to a ticker

    Keep the mapping in its own versioned table. A product page can count for more than one company: a DeWalt drill at Home Depot tells you about Stanley Black & Decker as well as Home Depot.

  4. Fetch on a fixed cadence with fixed settings

    Use the same country, time of day and settings on every run, so a change in the data means a change on the page.

    With String: Blocked requests are retried, and you don't pay for the ones that fail. Set countryCode to see a store or job board in another country.

  5. Read the value from the page's structured data

    Home Depot puts price and rating in schema.org Product data, Trustpilot puts its rating and review count in an AggregateRating, and Indeed's page data carries the company's total job count. These survive redesigns that break CSS selectors.

  6. Treat a missing value as a failure, not a zero

    A page with no price or job count was probably blocked or changed. Flag it and keep the last good value. Track coverage per run next to the signal, so a drop in coverage is never read as a drop in the business.

  7. Store every observation as of when you saw it

    Append each run with its fetch time and never overwrite. A backtest needs what you could have known on each date, not today's corrected value. Start collecting before you need the history, because most pages can't be collected for the past.

Get a free sample dataset

Tell us the companies and the signal you want to track. We'll run String on the pages behind it and email you a sample dataset, free.

Request a free sample dataset
What a dataset looks like
SourceTickerSignalValue
IndeedCMGOpen jobs10,988
IndeedSBUXOpen jobs21,438
Home DepotSWKDeWalt drill price$179
Home DepotSWKDeWalt drill reviews11,412
TrustpilotCHWYReviews13,344
TrustpilotCHWYTrustScore3.3

Frequently asked questions

What's the best way to collect alternative data for investing from the web?

Tie each signal to a company KPI, fix a panel of public pages, fetch them on a schedule and store every observation with the time you saw it. The hard part is getting the pages on every run, because the retail, job and review sites behind most signals block scrapers. The String Web Access API returned 97% of requests across 100 bot-protected sites in our September 2026 benchmark, the most of 16 providers, and fetched indeed.com, homedepot.com, trustpilot.com and booking.com on every attempt.

What alternative data do hedge funds collect from the web?

The web data hedge funds collect falls into four groups: product prices and stock, job postings, reviews and ratings, and travel and ticket prices. Each one stands in for a reported number: prices for average selling price, stock-outs and reviews for unit demand, job counts for headcount and expansion, hotel rates for occupancy. The sources are public pages such as Home Depot, Walmart, Indeed, Glassdoor, Trustpilot, Booking.com and StubHub.

How much does it cost to collect alternative data with String?

Home Depot, Trustpilot and Indeed billed at String's premium tier on our fetches, which is $3.00 per 1,000 successful requests on the Starter plan ($20 a month) and $2.00 per 1,000 on Growth ($100 a month). Tracking 1,000 pages daily is about 30,000 requests a month, or $90 in usage on Starter and $60 on Growth. Structured extraction with jsonSchema adds a per-request fee. The first 5,000 standard requests are free, and failed requests aren't billed. See pricing.

Is it legal to scrape alternative data for investing?

Collecting facts from public pages, like prices, job counts and ratings, is generally lawful in the US. The risks sit in contract terms, personal data and, for funds, material non-public information, so most funds put each new source through a compliance review. Stay on public pages, don't log in or accept clickwrap terms, leave personal data out, keep your request rate low and check with your counsel. We go through the cases in Is web scraping legal?

How do I backtest a signal I only started collecting today?

A backtest on web data needs history, and most pages only show the current price or job count, so start collecting before you need it. Reviews are the exception, because each one carries its date. String's Home Depot integration returns every review on a product with its submission time, oldest first, so you can rebuild a review count for past quarters.

How do I track a company's hiring from job postings?

Fetch the company's Indeed jobs page weekly and store the total job count, as in the quickstart. For hiring by city or role, fetch Indeed search pages filtered by company and location, and keep the same filters every week. Our guide to scraping job boards covers the job-level fields.

Can I get store-level prices and stock?

Yes, String reads prices and stock for a single store at Home Depot and Walmart. The Home Depot integration returns one store's price, promotion, pickup stock and delivery availability for a ZIP code, and the Walmart integration prices search results for a chosen store or ZIP code. See the site integrations catalog.

Should we collect web data ourselves or buy a dataset?

A vendor dataset is fast to start, but every fund that buys it sees the same numbers, and the panel and methods aren't yours. Collecting yourself keeps the panel, the cadence and the history under your control. Teams with their own pipelines use String as the fetch layer underneath them. Teams that want the feed run for them can have String build and maintain it, as described on String for finance.

Does String work on the sites I need?

Send us the URLs and we'll run them and show you what comes back before you commit. Ask for a free sample dataset, or test them yourself with your first 5,000 free requests.

Send us the sites you can't get.

We'll show you what comes back.

© 2026 StringEU and UK GDPR Article 27 representative — appointment verified by EuverifyBuilt in New York City 🗽 🍎