# Local Search & Structured Data Audit reproduction notes

Run ID: 6b5c4079-1c2f-4676-927c-96399f069c1a
Completed: 2026-07-24T13:41:44.550Z
Artifacts expire: 2026-07-31T13:41:44.550Z

Scope caveat: Results apply only to 20 complete admitted public HTML pages under the snapshotted caps; this is not a whole-site, Google, Maps, directory, ranking, index-status, or rich-result claim.

The audit used GET requests only, manual same-origin redirects, production public-IP/DNS validation before each request/redirect, no credentials/cookies/customer-supplied arbitrary headers, and no target JavaScript execution. The commands below retrieve source for manual inspection; curl alone does not reproduce the worker's DNS/egress policy and must not be used for private targets.

## Retained complete HTML pages

- Source: https://crow.sg/
  - Status/content: 200 text/html; charset=utf-8
  - Command: `curl --silent --show-error --max-time 10 --max-redirs 0 --proto '=http,https' --header 'Accept: text/html,application/xhtml+xml,text/plain;q=0.5,*/*;q=0.1' --user-agent 'CrowTechLocalSearchAudit/1.0 (+https://tools.crow.sg)' 'https://crow.sg/'`
- Source: https://crow.sg/our\_clients/
  - Status/content: 200 text/html; charset=utf-8
  - Command: `curl --silent --show-error --max-time 10 --max-redirs 0 --proto '=http,https' --header 'Accept: text/html,application/xhtml+xml,text/plain;q=0.5,*/*;q=0.1' --user-agent 'CrowTechLocalSearchAudit/1.0 (+https://tools.crow.sg)' 'https://crow.sg/our_clients/'`
- Source: https://crow.sg/about\_us/
  - Status/content: 200 text/html; charset=utf-8
  - Command: `curl --silent --show-error --max-time 10 --max-redirs 0 --proto '=http,https' --header 'Accept: text/html,application/xhtml+xml,text/plain;q=0.5,*/*;q=0.1' --user-agent 'CrowTechLocalSearchAudit/1.0 (+https://tools.crow.sg)' 'https://crow.sg/about_us/'`
- Source: https://crow.sg/blog/
  - Status/content: 200 text/html; charset=utf-8
  - Command: `curl --silent --show-error --max-time 10 --max-redirs 0 --proto '=http,https' --header 'Accept: text/html,application/xhtml+xml,text/plain;q=0.5,*/*;q=0.1' --user-agent 'CrowTechLocalSearchAudit/1.0 (+https://tools.crow.sg)' 'https://crow.sg/blog/'`
- Source: https://crow.sg/research/
  - Status/content: 200 text/html; charset=utf-8
  - Command: `curl --silent --show-error --max-time 10 --max-redirs 0 --proto '=http,https' --header 'Accept: text/html,application/xhtml+xml,text/plain;q=0.5,*/*;q=0.1' --user-agent 'CrowTechLocalSearchAudit/1.0 (+https://tools.crow.sg)' 'https://crow.sg/research/'`
- Source: https://crow.sg/software\_digital\_solutions/
  - Status/content: 200 text/html; charset=utf-8
  - Command: `curl --silent --show-error --max-time 10 --max-redirs 0 --proto '=http,https' --header 'Accept: text/html,application/xhtml+xml,text/plain;q=0.5,*/*;q=0.1' --user-agent 'CrowTechLocalSearchAudit/1.0 (+https://tools.crow.sg)' 'https://crow.sg/software_digital_solutions/'`
- Source: https://crow.sg/cloud\_infrastructure/
  - Status/content: 200 text/html; charset=utf-8
  - Command: `curl --silent --show-error --max-time 10 --max-redirs 0 --proto '=http,https' --header 'Accept: text/html,application/xhtml+xml,text/plain;q=0.5,*/*;q=0.1' --user-agent 'CrowTechLocalSearchAudit/1.0 (+https://tools.crow.sg)' 'https://crow.sg/cloud_infrastructure/'`
- Source: https://crow.sg/tech\_consulting/
  - Status/content: 200 text/html; charset=utf-8
  - Command: `curl --silent --show-error --max-time 10 --max-redirs 0 --proto '=http,https' --header 'Accept: text/html,application/xhtml+xml,text/plain;q=0.5,*/*;q=0.1' --user-agent 'CrowTechLocalSearchAudit/1.0 (+https://tools.crow.sg)' 'https://crow.sg/tech_consulting/'`
- Source: https://crow.sg/managed-hermes/
  - Status/content: 200 text/html; charset=utf-8
  - Command: `curl --silent --show-error --max-time 10 --max-redirs 0 --proto '=http,https' --header 'Accept: text/html,application/xhtml+xml,text/plain;q=0.5,*/*;q=0.1' --user-agent 'CrowTechLocalSearchAudit/1.0 (+https://tools.crow.sg)' 'https://crow.sg/managed-hermes/'`
- Source: https://crow.sg/crow-agent-suite/
  - Status/content: 200 text/html; charset=utf-8
  - Command: `curl --silent --show-error --max-time 10 --max-redirs 0 --proto '=http,https' --header 'Accept: text/html,application/xhtml+xml,text/plain;q=0.5,*/*;q=0.1' --user-agent 'CrowTechLocalSearchAudit/1.0 (+https://tools.crow.sg)' 'https://crow.sg/crow-agent-suite/'`
- Source: https://crow.sg/ai-tools/
  - Status/content: 200 text/html; charset=utf-8
  - Command: `curl --silent --show-error --max-time 10 --max-redirs 0 --proto '=http,https' --header 'Accept: text/html,application/xhtml+xml,text/plain;q=0.5,*/*;q=0.1' --user-agent 'CrowTechLocalSearchAudit/1.0 (+https://tools.crow.sg)' 'https://crow.sg/ai-tools/'`
- Source: https://crow.sg/terms/
  - Status/content: 200 text/html; charset=utf-8
  - Command: `curl --silent --show-error --max-time 10 --max-redirs 0 --proto '=http,https' --header 'Accept: text/html,application/xhtml+xml,text/plain;q=0.5,*/*;q=0.1' --user-agent 'CrowTechLocalSearchAudit/1.0 (+https://tools.crow.sg)' 'https://crow.sg/terms/'`
- Source: https://crow.sg/privacy/
  - Status/content: 200 text/html; charset=utf-8
  - Command: `curl --silent --show-error --max-time 10 --max-redirs 0 --proto '=http,https' --header 'Accept: text/html,application/xhtml+xml,text/plain;q=0.5,*/*;q=0.1' --user-agent 'CrowTechLocalSearchAudit/1.0 (+https://tools.crow.sg)' 'https://crow.sg/privacy/'`
- Source: https://crow.sg/blog/crow-agent-suite-singapore-real-estate-crm/
  - Status/content: 200 text/html; charset=utf-8
  - Command: `curl --silent --show-error --max-time 10 --max-redirs 0 --proto '=http,https' --header 'Accept: text/html,application/xhtml+xml,text/plain;q=0.5,*/*;q=0.1' --user-agent 'CrowTechLocalSearchAudit/1.0 (+https://tools.crow.sg)' 'https://crow.sg/blog/crow-agent-suite-singapore-real-estate-crm/'`
- Source: https://crow.sg/blog/apache-spark-architecture/
  - Status/content: 200 text/html; charset=utf-8
  - Command: `curl --silent --show-error --max-time 10 --max-redirs 0 --proto '=http,https' --header 'Accept: text/html,application/xhtml+xml,text/plain;q=0.5,*/*;q=0.1' --user-agent 'CrowTechLocalSearchAudit/1.0 (+https://tools.crow.sg)' 'https://crow.sg/blog/apache-spark-architecture/'`
- Source: https://crow.sg/blog/what-is-snowflake/
  - Status/content: 200 text/html; charset=utf-8
  - Command: `curl --silent --show-error --max-time 10 --max-redirs 0 --proto '=http,https' --header 'Accept: text/html,application/xhtml+xml,text/plain;q=0.5,*/*;q=0.1' --user-agent 'CrowTechLocalSearchAudit/1.0 (+https://tools.crow.sg)' 'https://crow.sg/blog/what-is-snowflake/'`
- Source: https://crow.sg/blog/case-study-neolux-energy/
  - Status/content: 200 text/html; charset=utf-8
  - Command: `curl --silent --show-error --max-time 10 --max-redirs 0 --proto '=http,https' --header 'Accept: text/html,application/xhtml+xml,text/plain;q=0.5,*/*;q=0.1' --user-agent 'CrowTechLocalSearchAudit/1.0 (+https://tools.crow.sg)' 'https://crow.sg/blog/case-study-neolux-energy/'`
- Source: https://crow.sg/blog/case-study-agora-dance/
  - Status/content: 200 text/html; charset=utf-8
  - Command: `curl --silent --show-error --max-time 10 --max-redirs 0 --proto '=http,https' --header 'Accept: text/html,application/xhtml+xml,text/plain;q=0.5,*/*;q=0.1' --user-agent 'CrowTechLocalSearchAudit/1.0 (+https://tools.crow.sg)' 'https://crow.sg/blog/case-study-agora-dance/'`
- Source: https://crow.sg/blog/case-study-aws-large-storage/
  - Status/content: 200 text/html; charset=utf-8
  - Command: `curl --silent --show-error --max-time 10 --max-redirs 0 --proto '=http,https' --header 'Accept: text/html,application/xhtml+xml,text/plain;q=0.5,*/*;q=0.1' --user-agent 'CrowTechLocalSearchAudit/1.0 (+https://tools.crow.sg)' 'https://crow.sg/blog/case-study-aws-large-storage/'`
- Source: https://crow.sg/blog/what-is-dbt-data-build-tool/
  - Status/content: 200 text/html; charset=utf-8
  - Command: `curl --silent --show-error --max-time 10 --max-redirs 0 --proto '=http,https' --header 'Accept: text/html,application/xhtml+xml,text/plain;q=0.5,*/*;q=0.1' --user-agent 'CrowTechLocalSearchAudit/1.0 (+https://tools.crow.sg)' 'https://crow.sg/blog/what-is-dbt-data-build-tool/'`

## Finding lookup

- F-5e7b292eee997b8c2d2d577b: retrieve https://crow.sg/, use document/structured-data as the deterministic evidence locator or expected-field target, verify evidence E-e05d06fb564138505b536005 and its fragment hash in evidence.json, then compare under rule STRUCTURED.LOCAL\_BUSINESS\_MISSING 1.1.0.

Use evidence.json as the authoritative finding/evidence map, scope-manifest.json for collection outcomes/caps, entity-graph.json for exact mappings, and field-inventory.csv for developer handoff.
