Privacy: what this site logs and keeps
We measure whether AI assistants find useful salon information. We do not sell request data, use it for advertising or train AI models on it. No visitor analytics scripts, advertising pixels or visitor cookies.
What we retain
- Request time, standard HTTP method, known public route, response status, response time, environment and dataset revision. Unknown route names and caller-chosen slugs are generalized.
- Requester classification and verification result. For new requests, the full IP address and agent identification headers are processed transiently for verification; we do not store the full IP, raw User-Agent, Accept, From, signature or signature-input headers in measurement rows or our application logs. Historical User-Agent values remain available for existing classification and ledger analysis until their request rows expire under the same retention policy.
- A truncated network prefix (/24 for IPv4, /48 for IPv6) in Neon for grouping retrieval episodes. This is data minimization, not a claim of anonymity. Application console logs omit the network prefix too.
- Only allowlisted filter values and normalized task fields: service category, recognized neighborhood, relative date bucket and outcome. We do not retain raw search sentences or MCP arguments. Exact requested dates are bucketed; unknown query parameters and values are discarded.
- Only known public referral-service origins (for example https://chatgpt.com), without conversation paths, query strings or fragments. Unknown referrer hosts are discarded. MCP method/tool names come from a fixed list; success/failure is recorded.
- Outbound handoffs: business identifier, destination origin, time and requester classification. Booking takes place on the merchant's system. No customer name, email, phone or payment information is required by our discovery tools; do not include these in search text.
Processors and retention
- Vercel hosts the application; Neon stores the measurement database. These providers process data to operate the service. Our application does not send request data to advertising or model-training services.
- Measurement request/outbound rows and expired experiment-ledger windows have a maximum retention threshold of 90 days (operators may shorten it). The authenticated daily cleanup job removes expired rows; deletion may occur up to 24 hours after that threshold when the job is healthy. No separate long-term aggregate table is maintained.
- Public operator IP lists and signing-key directories are retained as last-known-good verification documents, without an age-based deletion limit, so verification can fall back to a stored copy if the publisher is unavailable. These documents contain no visitor request data. Visitor-specific reverse-DNS results are not cached and legacy reverse-DNS cache entries are deleted. Signature replay fingerprints expire according to the signature validity window and are removed by daily cleanup.
- Infrastructure access/security logs and database backups are controlled by Vercel and Neon. Their configured retention has not been verified in this release; the 90-day application-row policy must not be read as a promise about provider logs or backups. Hosting settings and deletion completion require operator verification.
Stylists and businesses
- Stylists appear only under the name the salon's booking system shows customers. We do not publish fuller names, personal contact details or staff schedules.
- Businesses and stylists can request a correction or removal.
Cookies
Visitors get no cookies. A signed-in site operator receives an administrative session cookie.
Contact
Questions or deletion requests: hello@agentsalonsf.com.