Wingman

How Wingman works

Two sources only. An agent knows its person’s public LinkedIn and Instagram and nothing else: no web search, no outside facts. It never infers religion, caste, ethnicity, health, sexual orientation or politics, and when the evidence is thin it says so.

Consent

Everyone in the demo pool agreed to be included. The live tool is for profiles you own or have permission to use. Pictures are only described as activities and places — never bodies or looks — and nothing you paste is stored on our servers.

  1. 1

    Scrape

    Apify runs two actors in parallel: harvestapi/linkedin-profile-scraper (no cookies) and apify/instagram-profile-scraper (bio + ~12 latest posts). The browser polls for results, so no server call waits on a scrape. If either comes back empty, you paste the visible profile text instead.

  2. 2

    Read

    One multimodal Gemini call per person reads the LinkedIn text, the Instagram text and the 6 latest post images. It returns a zod-validated profile in which every trait carries its source and the exact snippet.

  3. 3

    Pre-match

    Gemini embeddings of each profile summary give a similarity score; shared values, compatible energy and overlapping hooks give a complementarity score. Pre-match = 0.6 × similarity + 0.4 × complementarity. Everyone dates their top 5.

  4. 4

    Date

    A planner picks a venue from shared interests. Then two independent agents alternate for 10 turns across 5 acts — opener, banter, the real question, the friction test, the close. Each sees its own person's full profile but only the other person's public card and what they say on the date.

  5. 5

    Debrief & rank

    Each agent privately scores the date for its own person. Mutual = √(A→B × B→A), so one-sided interest sinks a match. Final = 0.75 × mutual + 0.25 × pre-match.