How Date by Proxy works
The two sources, and nothing else
Every fact about a person comes from their public LinkedIn (headline, about, experience, education, skills, languages, volunteering) or their public Instagram (bio, captions, hashtags, locations, alt text and the photos themselves). Scraping runs on Apify; raw output is stored so every insight is auditable.
Evidence, not vibes
Every hobby, interest, value, need and dealbreaker on a profile page carries evidence (the LinkedIn field or the Instagram post it came from, with a quote) and a confidence score. The Analyst is told never to invent facts and never to infer sensitive traits like religion, ethnicity, orientation, health or politics.
Agents that really only know their own person
A date is not one big prompt. Agent A gets A's profile and the transcript so far; agent B gets B's. They alternate for 8 messages across four phases: icebreaker, lifestyle, values & goals, dealbreakers. Each side runs on a different model instance. After the date each agent writes a private verdict citing moments from the conversation against its person's needs.
Who dates whom
A date only happens if each person is someone the other wants to meet. Visitors choose who they want to date (women, men or everyone). For the seed pool we default to opposite-gender matching, using a gender the Analyst reads only from explicit signals in the person's own profiles (pronouns, self-descriptions like “Mom” or “Dad”, or their own profile photo) and cites as evidence. Orientation is never inferred.
Ranking
viewScore = 0.4 fit + 0.2 chemistry + 0.25 values + 0.15 lifestyle. score(A,B) = 0.7 × A's view of B + 0.3 × B's view of A − 3 if a dealbreaker was hit + 0.5 if both want a second date. Seed people are ranked against the seed pool; visitors date and are ranked against every matching seed agent.
Stack
Next.js 16 + TypeScript + Tailwind on Vercel · Supabase Postgres + Storage · Apify (apify-client) · Groq (OpenAI-compatible API): gpt-oss-120b for analysis and verdicts, gpt-oss-20b and Qwen 3 for date turns, Qwen 3 vision for Instagram photos · zod-validated JSON output. The browser orchestrates the pipeline in short API calls so nothing hits a serverless timeout.