# Changelog of DesignRush B2B Agency Scraper (`haketa/designrush-scraper`) Actor

- **URL**: https://apify.com/haketa/designrush-scraper/changelog.md
- **Full Actor documentation**: https://apify.com/haketa/designrush-scraper.md

## Changelog

### 1.1.0 — 2026-11-01

- **Cloudflare bypass fix (major reliability upgrade).** DesignRush began serving `HTTP 403` Cloudflare "Just a moment" challenges to the previous Chrome/`got-scraping` transport — even over Residential proxy — so most profile fetches failed and fell back to thin listing-only records (a fresh pre-fix run carried full profile detail on only ~12% of records). Two changes fix it:
  - **Firefox TLS/JA3 fingerprint via `impit`** instead of Chrome/`got-scraping`. The Firefox fingerprint clears the Cloudflare challenge where Chrome is blocked.
  - **Apify Residential proxy by default, with per-retry IP rotation.** Cloudflare also blocks Apify's datacenter IP ranges outright, so the actor now routes through Residential and builds a fresh proxy session (fresh IP) on every attempt — up to 6 attempts per page on `403` / `429` / `5xx` — until a clean IP answers. If the proxy input is left empty or set to datacenter, it auto-upgrades to Residential so runs don't silently return block-degraded data.
- **Result of the fix:** full agency profiles are extracted again — **email, phone, hourly rate, minimum budget, employees, founded year, full street address, services, industries and verified reviews** all populate on the vast majority of records, verified live against the site.
- **Build fix:** removed `--omit=optional` from the Dockerfile `npm install` so `impit`'s platform-native binary (shipped as an optional dependency) installs in the container.
- **No input or output changes.** All input field names and output field names are unchanged — existing runs, schedules and integrations keep working exactly as before. Only the default `proxyConfiguration` now points at Residential (required for the site).
- **Fresh verification run** of the broad default category set (web design, digital marketing, branding, SEO, eCommerce, mobile app, UI/UX) confirmed clean de-duplicated records with 100% core-field coverage (name, slug, profileUrl, rating, reviewCount) and rich lead-gen fields.
- **README refreshed** to the gold standard: output example and field reference regrounded in a real fresh-run record, Cloudflare/Residential/pagination notes corrected, FAQ and related-scrapers sections updated.
- Added a `CHANGELOG.md`.

### 1.0.0

- Initial release: discover B2B agencies on DesignRush by category and location, or scrape specific profiles / start URLs.
- Extracts agency name, logo, website, DesignRush profile URL, aggregate rating and review count, founded year, employee band, average hourly rate, minimum project budget, structured headquarters address, additional offices, email, phone, social links, top services, full service list, industries served, portfolio gallery, notable clients, awards and full verified review bodies.
- Automatic `?page=N` pagination per category/location with de-duplication by agency slug; configurable `maxRecords`, `maxPagesPerCategory`, `minRating`, `minReviews`, `awardWinnersOnly`, concurrency and request delay.
- Pre-built **Agencies** and **Reviews** dataset views; export to JSON, CSV, Excel or via the Apify API.
