Workflow guide

Screening 80,000 E-Commerce Products with Jev in About an Hour

Published: 2026-09-27

A worked example of high-volume product selection for Amazon FBA and TikTok Shop: batch margin, size, IP, and MOQ checks into one Jev request per product, and screen 80,000 listings for about $5 in a little over an hour.

Illustration: 80,000 supplier listings pass four filters (profit, FBA size, patent risk, MOQ) into a short list for sample testing
  1. Step 1

    The sourcing bottleneck is filtering, not finding

    Search a supplier site such as 1688 for a broad term like camping lantern and you get tens of thousands of listings, most of them near-identical clones in a price war. Reading detail pages by hand stops working after a few dozen, and sample orders end up chosen on instinct. The expensive part of sourcing is the filter, and a filter is exactly a set of narrow, typed judgments.

  2. Step 2

    What 80,000 listings cost and how long they take

    Here is the math with TypeSafe's published numbers, for a worked example of 80,000 listings. Put all five questions about one product into a single request, as the docs recommend: Jev reads the listing once and answers every question. A listing of title, price, specs, and a short description plus the questions comes to roughly 1,500 input tokens, so 80,000 requests are about 120 million tokens. At $0.042 per million input tokens (output tokens are free) that is about $5. Time is set by the rate limit, not the model: at the default 1,200 requests per minute, 80,000 requests take a little over an hour. Limits are being adjusted and higher tiers exist, so check the current numbers on the TypeSafe models page before you plan a run.

  3. Step 3

    Four gates for Amazon FBA in one request

    For private-label FBA, ask four questions about each listing plus a channel pick: a Score for net margin, a Score for FBA size tier, a Noul for trademark or design-patent risk, and a Noul for whether the MOQ allows a small test order. Scores come back on the levels you write, lowest first, so four levels give a score from 0 to 3 that can land between levels. Put your cut-offs in code, for example margin at least 2 and ip_risk below 0.2.

    {
      "model": "jev-latest",
      "state": {
        "product": "Solar collapsible camping lantern",
        "supplier": "1688 Gold Supplier, 6 years, 4.8 rating",
        "unit_cost_usd": 3.2,
        "target_amazon_price_usd": 21.99,
        "weight_g": 180,
        "size_cm": "12 x 8 x 8",
        "moq_pcs": 50,
        "listing_text": "Waterproof IPX6, built-in 4000mAh power bank, CE/RoHS certified, generic brand, no logos."
      },
      "questions": {
        "channel": {
          "type": "choice",
          "instructions": "Which cross-border sales channel suits this product best?",
          "criteria": {
            "amazon_fba": "Amazon FBA private label: steady search demand, repeat utility",
            "short_video": "Shopify or TikTok Shop: impulse buy driven by a visual hook",
            "b2b_wholesale": "Bulk B2B resale",
            "unsuitable": "Not worth selling cross-border"
          }
        },
        "margin": {
          "type": "score",
          "instructions": "After FBA fees and shipping, how much net margin does the gap between unit_cost_usd and target_amazon_price_usd leave?",
          "criteria": [
            "Loses money after FBA fees",
            "Thin margin, under 15%",
            "Healthy margin, 15% to 35%",
            "Strong margin, over 35%"
          ]
        },
        "fba_size": {
          "type": "score",
          "instructions": "How friendly are weight_g and size_cm to Amazon FBA size tiers?",
          "criteria": [
            "Oversize or heavy: expensive to ship and store",
            "Large standard: workable but costly",
            "Small standard: cheap to ship and store"
          ]
        },
        "ip_risk": {
          "type": "noul",
          "instructions": "Does listing_text suggest a trademark, design patent, or brand look-alike risk?"
        },
        "moq_ok": {
          "type": "noul",
          "instructions": "Is moq_pcs low enough for a small seller to order a first test batch?"
        }
      }
    }
  4. Step 4

    Short-video channels need different questions

    For Shopify dropshipping and TikTok Shop the gates change: whether the product shows its value in the first seconds of a video, whether the problem it solves is obvious, whether the price sits in an impulse range, and whether the angle is already saturated in ad libraries. Write each as its own Score or Noul and keep the thresholds in one file so you can tune them.

  5. Step 5

    Review the short list, not the catalog

    Sort by your combined score and hand only the top few hundred listings to a person for supplier checks and sample orders. Use confidence as a second filter: a Choice or Score with low confidence is a listing worth a human look rather than an automatic pass or reject. The numbers in this guide are a worked example, not a measured case study; measure your own hit rate on the first batch of samples before trusting the thresholds.

  6. Step 6

    Running the pipeline

    Export listings to a CSV (title, price, specs, weight, MOQ, description), send one Jev request per row with the official SDK, retry 429 and 529 responses with backoff, and write the scores back as columns in your spreadsheet. Try the request in the Jev Playground first to check the questions on a handful of real listings.

Related projects

  • @typesafe-ai/sdk — Official TypeScript/JavaScript client for POST https://api.typesafe.ai/v1/systemone.
  • system-one-adapter-python — Official TypeSafe adapter that speaks the same system_one interface, backed by OpenAI or Anthropic instead of Jev.

← All guides · Jev Playground