WishCodes

How we use data

The short version: useful signal, fewer leftovers.

This page is the quick, plain-English map of WishCodes data handling. It is meant to be readable before you take the quiz; the Privacy Policy has the fuller legal notice.

Stored

Only the structured profile and operational records needed to run the loop.

Processed

Quiz and recommendation inputs travel through server-side AI processing.

Not shared

Gift-givers never receive raw answers or the private signal.

01 / Persisted

What remains in WishCodes storage

Profile basics

First name, public WishCode ID, creation time and referral parent ID when a profile came from another WishCode.

Private signal

A structured profile containing a required age range, optional gender selection, normalized interests, hobbies, avoid categories, surplus categories and derived signals about deeper interests, routines, ownership, upgrades, aesthetics and gift preferences. It is not exposed to gift-givers.

Safe card

The recipient-facing Gift Personality title, subtitle and deterministically calculated dimensions.

Capability protection

One-way hashes of separate share and owner tokens. WishCodes does not store those plaintext capabilities.

Session and operations records

Short-lived management/gift session hashes, selected giver context and generated recommendations, allowlisted analytics events, AI operational metadata, rate-limit counters and daily AI-budget counters.

Live-search records

A limited cache of public product or booking results and provider-usage counters. For physical requests, bounded explicit discovery providers may contribute candidate pages, followed by deterministic browser verification. Azure model-native web search is emergency-only and is not part of the normal path. Cached results can include a public title, merchant, URL, image and evidence-backed price; they do not include the recipient profile, name or private query context.

Creator-link protection

A salted one-way creator fingerprint hash is stored with the profile to discourage the creator from opening their own gift link. Raw network and browser values are not stored by WishCodes for this check.

02 / The important details

What each signal means

AGE RANGE

Required as a broad range, not an exact birthday. It is stored inside the private profile to help keep recommendations age-appropriate and is never shown to gift-givers or sent to analytics.

OPTIONAL GENDER

Optional context only. The selected category is stored privately and may be sent transiently to the AI generation path; it does not determine taste, interests, colors or stereotypes.

GIFT CONTEXT

The giver's relationship and subtype, occasion, country/currency, budget, gift type and vibe shape the recommendation request. Selected codes and most context are stored with the recommendation session; custom occasion wording and custom numeric budget bounds are not.

DEVICE / ABUSE PROTECTION

A salted one-way creator fingerprint hash helps discourage a profile creator from opening their own gift link. It is derived from transient network/browser signals and stored with the profile; raw IP and User-Agent values are not stored by WishCodes for this purpose.

AI PROCESSING

Relevant validated quiz context and giver context may be processed transiently by the configured OpenRouter model. Prompts, raw answers and private profiles are not placed in application AI logs or giver responses.

LIVE PRODUCT SEARCH

WishCodes may find public candidate listings through bounded explicit providers, including its self-hosted India/INR service and configured SearchApi, Brave Search, Tavily or SerpApi, then verify physical products with a deterministic browser. Search results can be cached for a limited period to reduce repeated searches. Azure model-native web search is emergency-only and is not part of the normal path. An observed price is shown only when current merchant-page evidence supports it; it can still change after retrieval.

DELETION

Deleting a WishCode removes its profile, private signal, capability hashes, creator fingerprint, sessions, giver-session records and profile-linked events. Unlinked aggregate events and independent rate-limit buckets are handled separately.

03 / Processing

What is used during a request

Not persisted by WishCodes as raw quiz data does not mean it never leaves the browser. The server needs the validated answers to create the signal, and the AI provider receives the relevant input for that generation.

Quiz submission

The validated questionnaire is held in memory long enough to build and validate the structured profile. The raw questionnaire is not persisted as a profile record, and the quiz does not ask for an exact date of birth or free-text clue.

Profile generation

The server sends the validated quiz input, including the selected age range and optional gender answer, to OpenRouter and the selected model to generate a candidate private signal. The request is server-side; it is not sent to gift-giver browsers.

Recommendation generation

The server sends the structured private signal plus the giver's relationship subtype, occasion wording, custom budget bounds and other selected context to OpenRouter. Raw quiz answers are not included in this recommendation prompt.

Live product search

The server converts the private signal into sanitized product or booking queries. For physical requests, bounded explicit discovery providers may receive only the safe commerce phrase plus country, currency and budget hints; deterministic browser verification supplies current product truth. Azure model-native web search is emergency-only and is not part of the normal path. None receives the recipient's name, profile, raw answers, capability, relationship name or custom occasion text.

Network abuse protection

The server reads a forwarding IP header transiently for rate limiting and a same-device creator-link check, and reads User-Agent for that check. It stores only salted one-way hashes, not raw IP or User-Agent values.

Giver visibility

What a giver can see

  • The recipient's first name.
  • The safe Gift Personality card.
  • Six generated recommendations based on the private signal and the giver's own context.
Strictly shielded

What a giver cannot see

  • Raw questionnaire answers, including age range and optional gender selection.
  • The structured private preference profile.
  • The recipient's private management capability.

Your controls

The recipient's private management link can revoke the public share capability or permanently delete the profile and associated records. A lost management link is not recoverable by WishCodes from the plaintext token; contact work@atharv.me for a privacy request.

For vendor details, retention notes, international processing and rights that may apply to you, read the Privacy Policy.

Questions about this page? Write to work@atharv.me.