2026Personal project · Full-Stack & AI

Flipper, a deal scanner for used iPhones

A scanner across three classifieds sites that calculates the profit on every listing, grades the phone's condition from photos with AI and filters out scams. A new deal shows up in the dashboard within 3 minutes of being posted.

< 3 min
from posting to dashboard
~2,500 PLN
profit in the first week
3
classifieds sites
  • Nuxt
  • Tailwind
  • Supabase
  • Python
  • Gemini
  • PWA + Web Push
Flipper, a deal scanner for used iPhones

Where the idea came from

I was scrolling TikTok in bed and started seeing videos of people flipping iPhones: buying used ones below market price, selling them for more and pocketing the difference. I decided to give it a go. But after going through a few thousand listings I was done doing it by hand. Browsing classifieds is boring, and good deals disappear fast.

So I turned it into a program. At first I just wanted to collect all the data. But with the data in hand I'd still have to go through all of it, so I added AI to grade the listings. Then came price analysis, ready-made messages to sellers and rules for when a listing counts as a good deal.

The demo runs without logging in, on fake data, so you can click through it yourself.

The main listings view: asking price, buy range, buyback prices, potential profit and the AI's condition grade.

How it works

The program scans three classifieds sites (labelled Marketplace 1, 2 and 3) and for every listing it works out what to pay, what it will resell for and how much profit is left. I calculate the resale price from listings that actually sold and from phone buyback price lists (Buyback 1 and 2), not from asking prices alone, because those are wishful thinking.

For every listing the AI reads the description and looks at every photo. It checks the screen, back, frame, battery and locks. Any defect it finds immediately lowers the price worth paying.

An expanded listing: the AI's condition grade, the calculated "Buy" range and a ready message to the seller with an opening offer.

The AI spots damage

The model marks what's damaged on its own: scratches on the screen, dented frames, a weak battery, signs of repair. Every defect has its own price deduction, so a listing with a wrecked body doesn't pass as a bargain. That way I don't have to look through dozens of photos myself.

A listing with detected defects: the AI flagged scratches and dented frames, and the program deducted them from the price.

The AI catches scams

One of the sites had a popular scam: people selling a photo of the item instead of the item, or asking for a bank transfer outside the platform. The AI plus extra rules catch those listings right away, and they never reach the dashboard. Neither does a listing the AI hasn't graded yet.

Filters and map

Listings can be filtered by model, storage, price, profit, battery health, listing age and seller account age, plus signals from the listing (price drop, shipping). There's also a location filter: I type a town, pick a radius or click on the map, and see how many kilometres away each listing is.

Filters: model, storage, price, profit, battery, listing and account age, listing signals.

Map: a location filter with a radius and the distance to every listing.

Market analysis

A separate page with live analysis: how many units of a model sell per day, at what price and how fast, how the trend is moving and what the price distribution looks like. I drew the charts myself, without libraries.

Market analysis: daily sales, prices, trend and price distribution.

Phone and notifications

The dashboard has a separate phone view (cards instead of a table, a bottom menu) and works as a PWA: it installs on the home screen like a regular app and sends push notifications when a new deal appears. Tapping a notification opens the classifieds app straight on that listing.

The mobile version: the listings, a listing with detected defects and market analysis.

The best deals vanish in 10 minutes

Just collecting data wasn't enough, because the best listings can disappear within 10 minutes. So I put the scanner on a VPS that runs nonstop: it pulls listings, analyses them and saves them to the database. A new listing is in the dashboard within 3 minutes of being posted, already with a full analysis of the description and photos.

Rate limits for free

The sites block requests that come too often. My first idea was paid proxies, but that got expensive. So I found an old Android phone and installed Termux on it with the same scanner. Now the server and the phone take turns: when the VPS gets blocked, the phone takes over (a different IP address), and when the phone gets blocked, the VPS comes back. That way rate limits barely ever stop the scanner, and it costs nothing.

When the VPS gets blocked, an old Android phone running Termux takes over the scanning. Instead of paid proxies: zero cost.

Tech

  • Dashboard: Nuxt (Vue), Tailwind, custom SVG charts, PWA + Web Push, hosted on Vercel.
  • Database and backend: Supabase (Postgres, RLS, Auth, Edge Functions).
  • Scanner: Python on a VPS and on an Android phone (Termux).
  • AI: Gemini to grade descriptions and photos.
  • Time-limited accounts and an admin panel, because I share the tool with others.

The result

The app stopped being a toy and started making money. In the first week of testing alone it earned me about 2,500 PLN.

Got a process that eats your time? Write to me.

Get in touch