# Changelog of Google Maps Lead Qualifier | Website Gaps + Outreach (`lirafrt/local-business-funnel-gap-finder`) Actor

- **URL**: https://apify.com/lirafrt/local-business-funnel-gap-finder/changelog.md
- **Full Actor documentation**: https://apify.com/lirafrt/local-business-funnel-gap-finder.md

## Changelog

### 2.3

- Add an explicit `isQualifiedOpportunity` field backed by the configured score, confidence, and audit-status contract.
- Generate outreach only for qualified opportunities by default, with an advanced opt-in for all scored results.
- Localize evidence and score-breakdown evidence in English, Brazilian Portuguese, and Spanish.
- Select domain-mode business names from credible JSON-LD, Open Graph, application-name, logo, heading, title, and hostname signals.
- Retry commercially sparse homepage variants and preserve unresolved absence checks as unknown instead of creating false opportunities.
- Record rejected or unsafe domain inputs in `RUN_SUMMARY` instead of dropping them silently.
- Add a focused `qualified-opportunities` dataset view and link the primary output to it.
- Expose rejected-input and Maps child-cost reconciliation in the run summary.
- Replace public samples and prefills that used `example.com` with a real public business website.
- Add release regressions for qualification, outreach gating, localization, domain naming, rejected inputs, schemas, sparse responses, and summary behavior.
- Bump the Actor product version to `2.3`.

### 2.2

- Adapt the Maps child Actor timeout to the installed Apify client signature, using `timeout_secs` in the pinned runtime and supporting `run_timeout` when exposed by newer clients.
- Couple visible dataset output and PPE charging through `Actor.push_data` when supported.
- Persist a reconciliable `RUN_SUMMARY` record and terminal status message.
- Process batches in concurrency-sized waves and stop safely at the spending limit.
- Preserve unknown rating and review values as `null`.
- Avoid deduplicating businesses by name when the address is unknown.
- Align input, output and dataset schemas with runtime semantics.
- Add regression coverage for SDK contracts, schemas, null handling, deduplication and PPE.
- Detect structurally incomplete homepage HTML, retry with controlled browser header profiles and preserve unresolved absence checks as unknown.
- Cap confidence and suppress scoring, evidence, service recommendations and outreach when the homepage response remains incomplete.
- Recognize PatientsReach booking links and retain booking-provider evidence in output.
- Treat Google Analytics as unknown when Google Tag Manager is present without a direct GA signature.
- Reduce the influence of optional chat and WhatsApp observations on automatic service selection.
- Add live evidence-quality regressions and validate the final guard against real Google Maps and direct-business inputs.

### 2.1

- Added Google Maps, dataset, business object and domain discovery modes.
- Added website auditing, evidence-based scoring, confidence scoring and localized outreach.
- Added SSRF protection, bounded processing, dataset schemas, Docker validation and CI.
