Loading

Automation · 2026

Winning Product Research Panel

An internal research panel that finds winning-product candidates in Meta Ad Library, tracks them daily and works out whether they would pay off in Turkey.

Year

2026

Type

Automation

Role

Solo Developer

Tech Stack

  • Next.js
  • TypeScript
  • Supabase
  • PostgreSQL
  • Chrome Extension
  • Gemini API
  • Telegram Bot API
  • Vitest
  • Tailwind CSS
  • Netlify
PrivatePrivate repository. Source code is not public.

Project Summary

Ürün Radar is an internal tool for a small Turkish e-commerce team that resells products already proven in foreign Facebook ads through a cash-on-delivery store. It collects candidate products from Meta Ad Library, counts their brands' active ads every day and scores each product from 0 to 100. Market research, unit economics, a checklist and notes live together on one product page. The interface is in Turkish, and only invited team members can see any data.

The project is an npm-workspaces monorepo: a Next.js panel, a Manifest V3 Chrome extension and a shared core package that holds the business rules and 107 Vitest test cases. The extension reads Ad Library, Trendyol, Google Trends and Similarweb pages in a team member's own browser session, while the panel's API routes call Gemini for product identification and photo matching and a second, typed-decision model for fast screening questions. Scoring rules come from a knowledge base of 78 sourced rules in JSON, and every score check points back to a rule id.

Problem & Solution

Problem
  • Finding products that sell well abroad means hours of manual scrolling in Meta Ad Library
  • One ad says little; real demand shows in how many active ads a brand keeps running over time
  • A product that sells in the US may already be crowded in Turkey, or be hard to ship and sell there
  • Cash on delivery, refused parcels, VAT and ad surcharges hide the real break-even cost per order
  • Meta image links expire, and research ends up scattered across browser tabs and chats
Solution
  • The extension searches 5 English-speaking markets with 8 sales phrases (40 searches), reading the 30 least recently read searches per run
  • Brand active-ad counts are stored daily and each product is classified as emerging, rising, mature or declining
  • Candidates are checked against Trendyol reviews, Turkish advertisers, 5-year Google Trends and six risk flags such as fragile, heavy or needs permit
  • A unit-economics module computes break-even CPA and ROAS, then derives test budgets and kill or scale thresholds
  • Saved ads keep up to two resized WebP copies (max 720 px) in private storage, and each product has tabs for ads, costs, market research, checklist and notes

Key Features

01

Automatic Discovery

While Chrome is open, the extension checks hourly and scans Ad Library if no one on the team has scanned in the last 20 hours. Ads are grouped by the store product they link to, not by Facebook page.

02

AI Screening

Candidates with under 25% probability of selling a single physical product are dropped. Brands with 30+ active ads get a closer review, and the best 3 that pass every bar are added as products automatically.

03

Rule-Based Score

A 0-100 score from four pillars: demand abroad (40%), gap in Turkey (25%), margin (20%) and feasibility (15%). Missing signals count as neutral, and any drop rule caps the score at 30.

04

One-Click Research

Gemini names the product from the saved ad text and images, writes Trendyol queries, trend keywords and five Turkish ad hooks, then compares Trendyol listing photos to find the same item.

05

Break-Even Calculator

Works out what each placed order leaves for ads after VAT, confirmation, refusals, commission and shipping, then shows break-even CPA, ROAS, daily test budget and kill or scale limits.

06

Telegram Morning Summary

After the day's first scan, a bot posts how many candidates were found, which products were added, strong candidates awaiting a decision and products whose ad count moved more than 20% in a week.

Technical Details

Chrome Extension

A Manifest V3 extension with a page-world script that reads the Ad Library's own embedded JSON and GraphQL responses, a save button on every ad card, and a background worker that runs discovery with 3-8 second pauses between searches.

AI Pipeline

Gemini is called with structured JSON schemas on a 24-second budget that falls back between flash and flash-lite models, so each call ends before the extension's 30-second limit. A second model answers screening questions with typed probabilities and is skipped if no key is set.

Database

Supabase Postgres with 19 tables across 12 migrations, row-level security that only lets team members read or write, and database functions such as save_extension_ad, record_advertiser_ad_count and save_discoveries for writes from the extension.

Testing

107 Vitest test cases in 12 files cover economics, scoring, lifecycle, discovery grouping and Ad Library parsing from fixtures. They also test the knowledge base itself: every rule needs an https source, and agreed rules need at least two.

Have a project? Let's talk.

Have a project in mind or a question about my work? Email or LinkedIn is the best way to reach me.