# Dating Profile Review > A dating profile and opener coach. It reads a profile and reports what it > actually communicates to a stranger, which lines are generic, and how much of > it is unfalsifiable claim versus checkable specific. A second lane reads text > pasted from somebody else's profile and writes conversation openers, each one > sourced to a line of that profile. URL: https://dating-profile-review.skillsafe.ai/ API: https://dating-profile-review.skillsafe.ai/api.html Model tier: gpt-terra (currently gpt-5.6-terra). Runs cost credits; the client-side analysis is free and runs entirely in the browser. ## What it is for The common failure of profile advice is that it fits every profile ever written: be yourself, add a hobby, ask a question. This app is built to avoid that. Before anything is sent, the page measures the text in the browser - what proportion of lines contain something a stranger could check, how many lines are self-description with no evidence attached, how many worn phrases are present, and how many distinct things a reader could ask about. Those numbers go to the model with the text, and the model's answer is checked back against them afterwards. ## The two lanes - `profile` - the user's own profile or a description of themselves. Returns what it reads as to a stranger, the gap against what they meant, a line-by-line verdict, the hooks already present, and a rewrite built only from facts in the input. - `opener` - text pasted from another person's profile. Returns what their profile puts forward, and several openers, each declaring in `hook` the words of their profile it answers. Every hook is verified against the pasted text before it is displayed. ## What it checks after the model answers - Fact preservation on the rewrite. The invariant is the governed predicate, not the surface form: an entity must survive AND the kind of thing said about it must survive. Facts the rewrite dropped, changed, or invented are reported to the user. - Hook sourcing on every opener. An opener whose hook is not in the pasted profile is marked as such - it is a canned line with a citation attached. - Sameness across openers, measured structurally: the opening compared two content words deep, the move each one makes, and the spread of their lengths. Openers that differ in wording but not in move are reported as one opener. ## What it will not do Enforced in the browser, before any credit is spent: - Adults only. Nothing involving anyone under 18, on either side. - No sexual or explicit content. Stating a preference for casual dating plainly is in scope; producing sexual text is not. - Nothing manipulative - no negging, pressure, manufactured scarcity, or love-bombing scripts. - Nothing that routes around a stated no. If somebody has declined, stopped replying, or blocked, the app will not help compose anything further to send them by any channel. - No deception coaching. It will not invent a job, an age, a history or a persona, and will not help conceal something material. - No real third parties as research targets. A pasted profile is text to answer, never a starting point for identifying or locating someone. Input describing abuse, coercive control, stalking, or a frightening partner is routed to real resources without a coaching response and without a charge. The same applies to anything describing self-harm or suicidal thinking. ## Privacy Nothing is stored unless a box is ticked, and the box resets on every page load. There is no localStorage copy of anything written. The raw profile text and the other person's pasted profile are never stored at all - the collection has no column for either and the record builder takes neither as a parameter. The opener lane writes no history record of any kind. ## Credits Credits are what SkillSafe apps run on. This app charges nothing beyond the model's own cost plus the publisher's 10% markup. The client-side scan, the worked examples, and every check above are free.