A second look. On your terms.

Check any suspicious message, screenshot, or link in seconds, privately, from your iPhone's Share menu or iMessage. Nothing is scanned in the background.

Ravel home screen in dark mode: Choose what to check, with Screenshot, Message, Link, and Use Ravel in Messages
Only what you choose Links parsed, never opened Zero raw messages saved Plain-English verdicts Works from the Share menu Or just text Ravel

Six names. Three scams. Same playbook.

Scam posts in group chats are copy-paste jobs. The sender changes and the wording shifts, but the script, and often the phone number, stays the same. Judged one message at a time, every one of them looks harmless.

01 The parking pass

Two senders. The same message word for word, and the same number.

hiii everyone! is anyone interested in my parking pass i sold my car and i couldn't get a refund for the pass, please text me if you want it (309) •••-••34

hiii everyone! is anyone interested in my parking pass i sold my car and i couldn't get a refund for the pass, please text me if you want it (309) •••-••34

02 The ticket giveaway

New names and new wording, with one phone number behind both.

Hi guys! Giving away concert tickets for free, lmk if anyone is interested in it. (646) •••-••09

Selling my 3 concert tickets, lmk if anyone is interested in it. I'm down to sell them separately. (646) •••-••09

03 The free tickets

The same pitch from rotating numbers, so no blocklist ever catches up.

I'm giving away my concert tickets for FREE, text me if you're interested +1 (410) •••-••00

Anyone interested in free concert tickets? Text me: +1 (973) •••-••67

Detection stops at one message.

1 One message at a time

Each post is judged alone. Copy-paste scams with new names and wording look harmless every time.

2 Blind to new campaigns

Blocklists only catch links someone already reported. A fresh scam has no history to match.

3 Checking is a hassle

Verifying means searching the number, the link, and the story, or handing an app access to your private messages.

4 Nobody sees the pattern

The same payment link or number can appear across GroupMe, Instagram, and iMessage, and no single person sees all of it.

Share a screenshot. Get clarity.

Ravel is a scam checker built into your iPhone's Share menu. No copy-pasting, no research, and no handing an app access to all of your messages. You choose exactly what to send, and nothing else is read.

Ravel home screen in dark mode with options to check a screenshot, message, or link Ravel screenshot preview in dark mode, showing the selected image before analysis Ravel result in dark mode: suspicious, verify before acting, with a practical next step Ravel home screen in light mode with options to check a screenshot, message, or link Ravel screenshot preview in light mode, showing the selected image before analysis Ravel result in light mode: suspicious, verify before acting, with a practical next step
Screenshot

Choose one image from Photos, or share it from any app with the iPhone Share menu.

Message

Paste or type the text you were sent. Nothing is read automatically.

Link

Parse a URL without opening it. The destination is never visited.

iMessage

Prefer not to download anything? Text the Ravel agent and get the same verdict back.

Four steps to an answer.

Ravel turns a confusing message into structured evidence, then a strict server-side policy decides what it means. The model never gets the final word.

  1. 1 Share

    Screenshot a message, ad, or conversation, or share a link, straight from any app.

  2. 2 Extract

    Gemini reads the content and pulls out scam signals: urgency, payment requests, requests for passwords or codes, account threats, and links.

  3. 3 Compare

    Coming next: signals are matched against sanitized, opt-in reports from other people to connect a message to known or emerging campaigns.

  4. 4 Verdict

    You get the evidence, the uncertainty, and recommended precautions in plain English, then confirm or reject each flagged signal yourself.

Gemini extracts the claims. Ravel's policy decides the verdict.

A synthetic message, as Gemini sees it

Free concert tickets! Pay a $20 transfer fee before delivery.1 tickets.example/offer2 Act now!3

Ravel's verdict Suspicious: verify before acting
  1. 1Transfer fee requested before delivery
  2. 2Destination: tickets.example, not visited
  3. 3Urgency pressure: "Act now"

Verified fraud: false. Evidence: AI-extracted, unverified. Next step: verify through the official ticket platform before paying.

The model flags it. You make the call.

Gemini marks every signal it finds directly on your screenshot and numbers it, so you can check each one against the original. Confirm it, reject it, or mark it unsure, and Ravel reassesses the message using your review.

Ravel evidence review: Gemini outlines and numbers each signal on the shared screenshot Ravel review controls: each signal marked Present, Not present, or Unsure, with the assessment updated from the review

Try it on this message.

"Campus account support: Your account will be suspended today. Send your password and verification code to restore access."

Urgency 02
Password or login details 03
Verification code request 04
Account threat 01
Suspicious: verify before acting

A request for a password or a verification code is still in play. Do not share either one. Open the official app yourself or use a contact you found independently.

Showing Gemini's original assessment. Answer any signal to update it.
Marked on the image

Every signal is outlined on your screenshot and numbered, so you can see exactly what Gemini read and where.

Your answer counts

Present, not present, or unsure. Each answer goes straight back into the assessment, and the verdict updates in place.

Nothing overwritten

Gemini's original observations stay on record, unchanged. Your review sits alongside them, never on top of them.

Honest answers, in plain English.

Ravel never claims to prove fraud, and it never calls something safe just because it found nothing. Every result separates what was observed from what was verified, and ends with something useful to do next. Try a few synthetic examples.

What you shared

Free concert tickets. Pay a $20 transfer fee before delivery: https://tickets.example/offer. Act now!

A payment combined with urgency is a classic advance-fee pattern.

What Ravel says Suspicious: verify before acting
A payment before delivery is indicated.Pressure to act quickly is indicated.
What to do next Verify through an independently obtained official contact before sending money or sensitive information.
Suspicious: verify before acting Tactics like advance fees, payment under pressure, or requests for passwords and codes.
Insufficient evidence No well-supported tactic was found. That is not the same thing as safe.
Needs human review The content was unclear or conflicting, so Ravel asks you to look again instead of guessing.

No download? Just text Ravel.

Photon Spectrum puts the Ravel agent in iMessage. Forward a message or a link, and the same backend and the same policy as the app reply with a plain-English verdict.

Ravel
Campus account support: Your account will be suspended today. Send your password and verification code to restore access: security@campus.example
Suspicious: verify before acting Pressure to act quickly is indicated. A request to share a password or account credentials is indicated. A request to share a verification or account reset code is indicated. A claim that an account is at risk or may be suspended is indicated. These observations do not establish fraud. Missing evidence does not establish safety.
Text Ravel Send a message or link in iMessage.
Photon Spectrum The agent receives and filters the DM. Attachments are refused, never downloaded.
Same backend FastAPI and Gemini, with exactly the same policy as the app.
Reply A plain-English verdict lands straight back in the thread. Verified on a real phone, for text and links today.

Your check stays yours.

Ravel only ever sees the one item you deliberately choose. That is not a setting. It is the architecture.

0 raw messages or images saved
Only what you select

Nothing is read automatically. No inbox access, no background scanning, no contact lists.

Links stay unopened

A link on its own is parsed without being visited, resolved, or sent to AI. Paths and query tokens are dropped.

Nothing kept

Selected content lives in app memory and is cleared when you dismiss the check or the app goes into the background.

Metadata stripped

Screenshots are decoded and re-encoded before analysis, removing embedded metadata from the file.

Keys stay on the server

No AI key ships in the app. Every request passes through Ravel's backend and its strict safety policy.

No silent reports

A private check never creates a community report. Future campaign matching will be strictly opt-in.

In connected mode, the text or screenshot you choose is also sent to Google Gemini for analysis under Google's provider terms. A link checked on its own is never sent to Gemini.

Engineered to be checked.

One backend serves both the iPhone app and the iMessage agent. Gemini returns typed observations, strict parsing validates them, and the verdict comes from Ravel's own policy.

Message Text, screenshot, or link you choose to share
Share iPhone Share menu or a text to Ravel
Backend FastAPI with a strict safety policy
Gemini Extracts scam signals as typed observations
Your review Confirm or reject each flagged signal
Verdict In the app or by iMessage
216 backend tests passing
420 iMessage agent tests passing
0 raw messages or images saved

The stack.

iPhone Apple SwiftUI and Share Extension, with the iOS project generated by XcodeGen
Intelligence Google Gemini API through the Google Gen AI Python SDK
Backend FastAPI · Pydantic
iMessage Photon Spectrum, with the agent built on Node.js, TypeScript, and Zod
Development AI-assisted development with OpenAI Codex · Presentation visuals made with Claude Design
See the presentation-ready credits list

From isolated checks to collective defense.

Today every check is private and stands alone. The opt-in report contract is already defined in the API, so when people choose to share, Ravel can connect reports by destination, language, and timing, and surface the campaign behind the messages.

Report Shared destination Similar language Time window Review
Pattern found
Human
review
A B C D
  1. Today Protect people in their communities

    Students and group chats get a fast, private way to check a message before they pay.

  2. Next Real-time alerts

    When a new campaign starts spreading, everyone nearby hears about it early.

  3. Then Verified threat intelligence

    Confirmed malicious links and payment destinations, shared across the network.

  4. Future Infrastructure for trust

    APIs that let banks and payment apps flag risky destinations, plus browser analysis.

The team behind the work.

Built at HackNC 2026 for the Google Gemini and Photon tracks.

Portrait of Dhairya Agarwal Dhairya Agarwal Computer Science (BS)Environmental Science (BS)
Portrait of Osman Taka Osman Taka Physics (BS)Computer Science (BS)
Portrait of Ali Çiçek Ali Çiçek Data Science (BA)Communications (BA)
Ravel logo

Confusion goes in.Clarity comes out.