9 min read
Track hiring, prices and reviews by company from Indeed, Home Depot, Trustpilot and Booking.com.
| Source | Ticker | Signal | Value |
|---|---|---|---|
| Indeed | CMG | Open jobs | 10,988 |
| Indeed | SBUX | Open jobs | 21,438 |
| Home Depot | SWK | DeWalt drill price | $179 |
| Home Depot | SWK | DeWalt drill reviews | 11,412 |
| Trustpilot | CHWY | Reviews | 13,344 |
| Trustpilot | CHWY | TrustScore | 3.3 |
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.
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
One call returns a company's open job count from Indeed as JSON. If the page has no count, you get "extracted": false back instead of a guess.
curl https://request.usestring.ai/v1/fetch \
-H "Authorization: Bearer $STRING_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"url": "https://www.indeed.com/cmp/Chipotle-Mexican-Grill/jobs",
"countryCode": "US",
"jsonSchema": {
"type": "object",
"properties": {
"company": { "type": "string" },
"open_jobs": { "type": "integer" }
},
"required": ["company", "open_jobs"]
}
}'{
"company": "Chipotle Mexican Grill",
"open_jobs": 10988
}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:
Product prices, promotions and availability from Home Depot, Walmart and Best Buy, including one store's price and stock for a ZIP code.
Open job counts per company and per location from Indeed, Glassdoor, ZipRecruiter and company careers pages.
Review counts, star ratings and dated reviews from Trustpilot and retailer product pages.
Hotel rates and availability on Booking.com and Expedia, and ticket listings on StubHub and SeatGeek.
"extracted": false instead of a zero.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.
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.
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.
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.
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.
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.
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.
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.
| Source | Ticker | Signal | Value |
|---|---|---|---|
| Indeed | CMG | Open jobs | 10,988 |
| Indeed | SBUX | Open jobs | 21,438 |
| Home Depot | SWK | DeWalt drill price | $179 |
| Home Depot | SWK | DeWalt drill reviews | 11,412 |
| Trustpilot | CHWY | Reviews | 13,344 |
| Trustpilot | CHWY | TrustScore | 3.3 |
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.
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.
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.
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?
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.
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.
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.
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.
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.