Max MorrishBack to projects

FlipScout

A local console that finds underpriced items in a marketplace and tracks resale flips.

Prototype: runs locally on demo data.

43 unit tests passing offline, with no API keys

FlipScout dashboard on desktop, queue tab: filter checkboxes and a sort menu above two invented listing cards, a solid wood vintage dresser ($80 ask, score 26, $50 profit) and a pair of brass table lamps ($35 ask, score 9, $11 profit), both marked skip.
The deal queue on invented demo listings, with filters for distance, pickup and research state.
Where
Personal project
Role
Product and build
Built with
Python, SQLite, Streamlit, httpx, unittest

What I made

FlipScout ranks used furniture and decor listings by distance, pickup effort, condition and likely margin, explains each score, drafts messages to the seller and tracks each flip.

The analysis step uses a language model when one is configured and rules when it isn't, so the demo runs with no keys and no network.

  1. Listingsdemo data, a pasted listing URL or an exported file
  2. Screendistance, pickup, condition words and freshness give a first score
  3. Researcha language-model analysis step with a rule-based fallback estimates resale and profit
  4. Plana target buy price and three seller messages, sent by hand
  5. Trackstatus, purchase, repair and sale for each flip
From a listing to a decision. In this copy every listing is invented and nothing leaves the machine.

12test files covering scoring, screening, import, drafts and storage

3seller messages drafted per researched listing: opener, fallback and ceiling

5dashboard tabs: queue, battle center, flip pipeline, ops and settings

What came out of it

The deal queue

Two invented listings. The rules score the dresser 26 and the lamps 9, and mark both skip.

The FlipScout queue at 390 pixels wide: the dresser card stacked in one column, with ask $80, score 26, profit $50 and hold 18 days, above the lamps card.
The same queue at phone width.

One deal, explained

An $80 ask against an estimated resale band of $120 to $260: a target buy of $34 and a $50 net over 18 days.

Battle center for the invented dresser from Demo Seller 1: ask $80, score 26, target buy $34, net profit $50, hold 18 days, friction 40.5, with reasons for the ranking and the main risks.
One listing's analysis: the numbers, why it ranks where it does, and what could go wrong.

Messages to the seller

Three drafts, from a $34 opener to a $68 ceiling. The demo sends nothing.

Three read-only message drafts for the dresser: a low anchor at $34, a fair fallback at $46 and a ceiling at $68, each with a one-line rationale.
The negotiation plan's three drafts, each with its reasoning.

The flip tracker

One demo entry marked purchased, the other still watching.

Flip pipeline table with demo-dresser purchased at 80 and demo-lamp watching, above a form to update status, purchase, repair, sale, days to sell, work hours and notes.
The flip tracker, with an update form for the focused listing.

Where it's going

The full version is a decision aid for resellers: from listings imported by hand, it says what an item probably is, shows the evidence and risks, and answers buy, maybe, skip or not sure.

  1. NowDemo consoleQueue, analysis, seller drafts and a tracker, on invented listings.
  2. Narrower categoriesFurniture, decor and small appliances; services and bulk lots filtered out.
  3. Evidence and confidenceClearer comparisons and reasons, and an explicit not-sure answer.
  4. Checked against outcomesEstimates graded against a small set of real buy and sale results.
  5. Reseller decision aidListings the user can see, imported by hand; buy, maybe or skip.