FBM Sniper Pro
✦ What's new in v2.4.1: OfferUp + Linux build

FBM Sniper Pro

A desktop app that watches 9 marketplaces in real time, scores every listing with Gemini AI, and alerts you the moment a profitable deal appears.

Supported marketplaces

🇺🇸 Facebook Marketplace
🇪🇸🇮🇹🇫🇷 Wallapop
🌍 Vinted (25+ countries)
🇺🇸🇯🇵 Mercari
🇫🇷 Leboncoin
🇩🇪🇦🇹 Kleinanzeigen
🇬🇧🇦🇺🇿🇦 Gumtree
🇪🇪🇱🇻🇱🇹 Yaga
🇺🇸 OfferUp

What's new in v2.4.1

  • OfferUp joins the lineup as the ninth supported marketplace. First-class client, sniper loop, UI tab, and per-target toggles.
  • Linux desktop build ships for the first time as an AppImage x64, alongside the existing macOS and Windows builds.
  • Reliability fixes to existing scrapers: proxy handling, listing-detail enrichment, photo carousel auto-skip.

Installation

Download from your Whop library at whop.com/orders. Pick the right file for your platform:

PlatformFile
Mac Apple Silicon (M1/M2/M3/M4)FBM Sniper Community-2.4.1-arm64.dmg
Mac IntelFBM Sniper Community-2.4.1.dmg
Windows 10/11 (64-bit)FBM Sniper Community Setup 2.4.1.exe
Linux (any x86_64 distro)FBM Sniper Community-2.4.1.AppImage

Not sure which Mac you have? Apple menu, About This Mac. "Chip: Apple M1/M2/M3/M4" = Apple Silicon. Intel Core i5/i7/i9 = Intel build.

Mac users also need: Mac Install Helper (Mac users run me first).sh from the same Whop library page.

Save both files to Downloads

Both the .dmg and the install helper script.

Open Terminal and run the helper
bash ~/Downloads/Mac\ Install\ Helper*.sh

Type your Mac password when prompted.

One-time approval (if needed)

If macOS shows "FBM Sniper Community was blocked": System Settings, Privacy & Security, scroll down, click Open Anyway. This is only needed once.

Run the installer

Double-click FBM Sniper Community Setup 2.4.1.exe.

Bypass the Defender warning

Click More info, then Run anyway. This warning appears because the build isn't signed by Microsoft; a code-signing cert is on the roadmap.

Follow the installer and launch

The default install location is fine. Launch FBM Sniper from the Start Menu.

The AppImage is a single self-contained binary. No install step required.

Save the AppImage

Save to ~/Applications/ or any folder you prefer.

Make it executable
chmod +x ~/Applications/FBM\ Sniper\ Community-2.4.1.AppImage
Launch it

Double-click, or from terminal: ~/Applications/FBM\ Sniper\ Community-2.4.1.AppImage

Ubuntu 24.04+ sandbox error? Run with --no-sandbox appended. Electron's user-namespace sandbox is blocked by recent kernels.

First launch: Chrome download

All platforms download Chrome (~150 MB) into your user-data folder on first launch. The app shows "Setting up sniper engine..." for 30 to 90 seconds. This is a one-time setup; subsequent launches are instant.


First-time sign-in

The first screen after install is the Whop sign-in gate.

Click "Sign in with Whop"

Your default browser opens to whop.com.

Sign in with your purchase account

After the OAuth handshake completes, the gate drops and the app reloads. The signed-in pill in the top right shows your Whop username.

The OAuth callback runs on 127.0.0.1:3340. If sign-in doesn't complete, quit any other copy of FBM Sniper (something may be using that port) and try again.


Configuration

Complete these steps in order. Until you do, the bots will refuse to start and an amber banner will stay pinned to the top of the dashboard.

Proxies in detail

The recommended provider is Oxylabs Residential Proxies (affiliate link). In testing they get rate-limited noticeably less than cheaper alternatives. Any rotating residential proxy will work.

Add them in Settings, Proxy Pool, one per line:

http://username:password@proxy.host.com:port

Gemini API key

The free tier quota is plenty for personal use. Without a key the app falls back to programmatic scoring (price band + keyword filters), which is much coarser than AI grading.

  1. Open aistudio.google.com/apikey
  2. Click Create API key, copy it
  3. Settings, AI Review, paste into Gemini API Key
  4. Set AI Workers to 3 (raise later if you have a higher quota)

Discord notifications

Server Settings, Integrations, Webhooks, New Webhook. Copy the URL and paste into Settings, Notifications. Three routing slots:

  • All Deals: every graded deal regardless of grade
  • Buy Now: grades A and B only (the ones worth racing for)
  • Maybe: grades C and D (manual triage)

Vinted & eBay

Vinted country is required before the bot will start. Settings, Platforms, Vinted Country. You do not need to manually paste a cookie; the bot handles authentication automatically.

eBay sold-comps give the AI real resale prices. Settings, eBay: pick your regional marketplace, set your fee %, ship reserve, and target profit % so the grader can compute "is this profitable?" not just "is this cheap?"


Your Watchlist

The watchlist is the list of products you want the bots to look for. Pro ships with 38 pre-configured targets.

Pre-loaded targets

  • iPhones: 12, 13, 14, 15, 16, 17 (all variants: mini, Plus, Pro, Pro Max, e, Air)
  • Samsung Galaxy: S23/S24/S25 Ultra, S24/S25 base
  • Google Pixel: 9 Pro, 9, 8 Pro
  • PlayStation 5: Pro, Slim Disc, Slim Digital, Disc, Digital

Each target has sensible price floors and ceilings, accessory blocking ("cord only", "case only", "for parts"), and category-specific AI Instructions tuned for the typical scam patterns on that product.

Adding targets

Fast way: AI generator

Watchlist, Generate with AI. Type a one-line description: "unlocked iPhone 15 Pro under $700, no cracked screens, 256GB or more".

Click Generate. The AI fills the full schema: query, must-include keywords, must-avoid keywords, price ceiling, and AI Instructions.

Review the result, paste your eBay sold-listings URL (the AI leaves this blank because it's region-specific), then Save.

Manual way

Watchlist, Add Target. Key fields:

FieldWhat it does
Search QueryWhat the bots search for. Keep it tight: iPhone 15 Pro, not apple phone 15.
Min / Max PriceHard ceilings. Anything outside this range is silently skipped.
Per-Platform Price OverridesWallapop, Vinted, OfferUp run hotter or colder than Facebook for the same product.
Must IncludeComma-separated keywords. At least one must appear in the listing text.
Must AvoidListings containing any of these are hard-rejected before grading.
AI InstructionsThe per-target prompt that tells Gemini what makes a deal good or bad.
eBay Sold-Comps URLA saved eBay sold-listings search for this exact product.

Writing good AI Instructions

Tight prompts mean the A-grade bucket is actually A-grade. The shape that works:

Score [PRODUCT] listings tightly. A "good deal" means: [positive criteria].
Hard reject anything that says [scam patterns / red flags].
Be skeptical of prices >X% below recent eBay sold comps.
If [something is unclear], score one tier lower.

What works well:

  • Specific scam patterns for that category (iCloud lock, FRP lock, IMEI blacklist, demo unit, replica, "for parts")
  • Storage or config sensitivity (phones: storage tier matters; PS5: disc vs digital matters)
  • Resale anchoring ("be skeptical if price is more than 40% below sold comps")
  • Photo cues ("if photos show only the box or only a charger, reject")

Example: the built-in iPhone prompt:

Score iPhone listings tightly. A "good deal" means: visibly clean device (no spider cracks on screen/back glass), unlocked or factory-unlocked (NOT carrier-locked, NOT iCloud-locked), genuine Apple (not a "1:1 clone" / replica), with at least the original cable shown or mentioned, and battery health 80%+ if disclosed. Hard reject anything that says "for parts," "demo unit," "bad IMEI / blacklisted," "MDM locked," or where the photos show only the box, only a charger, or only a case. Be skeptical of prices >40% below recent eBay sold comps, usually means a hidden defect or fraud. If storage is unclear, score one tier lower.


Running your first scan

Confirm Settings is fully saved. No amber banner at the top.

Open the Facebook tab (or whichever marketplace you want to test first). Confirm the poll interval (default 60s is fine). Click Start.

Watch the log panel. You should see:

[facebook] scan cycle 1 starting... [facebook] fetched 47 listings, 12 new [facebook] grading 12 listings via Gemini (3 workers)... [facebook] grade results: 0×A, 2×B, 4×C, 6×D

Open Found Listings to see graded results. Filter by grade A/B to see only the buy-now candidates.

Recommended starting order: Wallapop or Vinted first (most forgiving, proves your setup works end to end), then Facebook once your proxy is confirmed, then OfferUp if you're in the US. Don't start all nine simultaneously on the first day.


Found Listings tab

The unified deal feed. Every graded listing from every marketplace shows up here.

Card layout

Each card shows: source platform badge, primary photo (use ‹ and › to carousel), title, price in your display currency, target name, group, grade, and AI verdict notes.

Grade meanings

GradeMeaningAction
A Strong deal, usually far below max-buy Race to it
B Good deal Worth a message
C Fair deal Worth checking
D Lowball target Low-offer message only
F Skip / junk / scam Ignore
? No reference price available Review manually

Filters

  • Search by title: quick keyword filter
  • Filter by platform: focus on just Facebook, just OfferUp, etc.
  • Filter by grade: A+B (Buy Now), C+D (Maybe), or everything
  • Platform chips: toggle entire platforms on/off from the feed view

Actions per card

  • Open: opens the listing in your browser
  • Message (Facebook only): one-click send your template via a linked account
  • Buy Now (Mercari only): goes straight to the Mercari checkout URL
  • Not Relevant (x): hides this listing permanently. Restore hidden items from Settings.

Auto Cleanup

The app periodically checks whether listings are still live and auto-hides ones that 404'd or sold. Configure cadence and force-sweep per platform in Settings, Listing Availability Cleanup.


Per-marketplace notes

Most platforms just inherit your shared Settings. These are the per-platform gotchas.

MarketplaceNotes
Facebook MarketplaceNeeds proxy. Needs Facebook Marketplace URL in Settings. Rate-limits aggressively without one.
WallapopMostly rate-limit tolerant. Raise the poll interval first if you see 429 errors.
VintedCountry selection required. Cookie capture is automatic. Datadome is the most common block source; rotating proxies in the chosen country reliably bypass it.
MercariUS and Japan supported. Buy Now goes straight to checkout URL (unique to Mercari).
LeboncoinFrance only. Headed Chromium needed for some listing categories.
KleinanzeigenGermany / Austria. Watch out for region-specific currency display.
GumtreeUK, Australia, South Africa share one bot but separate URLs. Defaults to UK; override per-target.
YagaEstonia, Latvia, Lithuania. Smallest catalog; fastest to validate target changes against.
OfferUpUS only. Built on OfferUp's real modularFeed GraphQL schema, so it pages naturally. Detail enrichment pulls seller, photos, and full body for each match.

Linked Accounts

Linked Accounts let the app drive a real signed-in browser to message sellers automatically. Skip this section if you only want notifications.

Linking a Facebook account

Open Linked Accounts tab, Facebook section, click + Add account. Give it a label (e.g. personal or burner-1) and pick a proxy (or "No proxy").

Click Open browser to log in. A Chrome window opens at facebook.com/login/ with a green banner. Sign in normally including 2FA and "save this device" prompts.

Click the green I'm done button. The banner flips to "Is this your account?" with your name and avatar. Click Yes, link this account.

The app captures cookies and session data, closes the browser, then silently verifies the saved session. When it shows Active, you're done.

Status badges

StatusMeaning
ActiveVerified working, ready to drive flows
UnvalidatedFresh out of linking, not yet checked
Validating...Background validator is currently checking
ExpiredFacebook/Vinted returned 401/403. Re-link.
Needs reauthSomething definitive went wrong. Re-link.

Auto-Message

Auto-Message turns watchlist targets into hands-free message-firing rules. When a listing matches an auto-mode target, the bot sends your template through a linked Facebook account automatically.

Prerequisites

  • At least one Facebook account linked and status Active
  • Settings, Auto-Message, General Message Template set (default: Hi! Is this still available?)
  • Settings, Auto-Message, Max Per Hour set (setting it to 0 disables auto-message entirely)

Enabling auto-mode on a target

Watchlist, click a target to open the edit drawer, scroll to Auto-message mode, tick it. Optional: set a Custom Auto-Message Template for this target using placeholders {{title}}, {{price}}, {{seller}}, {{currency}}.

Rate limits

Three separate caps protect you from triggering Facebook anti-spam:

  1. Per-account hourly limit (default 20): each account can fire 20 sends per rolling 60 minutes.
  2. Global per-hour cap (default 10): auto-fires across all accounts combined.
  3. Idempotency log: the same (account, listing) pair will never receive two sends, even across crashes.

Raise the rate limits only if you understand the spam-detection trade-off.


Settings tour

TabWhat's there
Connection & RegionProxy, currency, location lat/long, Facebook Marketplace URL
AI ReviewGemini API key, concurrent workers, AI on/off toggle
eBayMarketplace, currency, profit thresholds, fees, cache refresh button
NotificationsDiscord webhooks (All / Buy Now / Maybe), browser auto-open, max photos per alert
Seller FiltersMin reviews, min star rating, blacklisted sellers
PlatformsPer-platform on/off, polling intervals, Vinted country, optional Vinted cookie
Auto-MessageTemplate, hourly cap, default account
Watchlist PresetsSave/load/delete named watchlist snapshots
Listing Availability CleanupToggle, interval, max per cycle, concurrency, force-sweep, restore hidden
AdvancedSearch/detail concurrency, raw config JSON view

Watchlist Presets

Save your entire watchlist (targets, toggles, eBay URLs, AI prompts, price gates) as a named snapshot. Swap presets from the toolbar dropdown, e.g. "iPhones Only" vs "Phones + Cameras".

A Default preset ships pre-installed as a snapshot of the bundled targets so you can always restore the canonical starting set after editing. Applying a preset is non-destructive: targets not in the preset get disabled (not deleted); missing targets get added back.


Daily workflow

Open the app and glance at the Discord Buy Now channel for overnight A/B hits.

Click Start on the bots you care about (or set auto-start on launch in Settings).

Triage Found Listings as new ones come in. Message or buy the good ones, hit x on the clearly irrelevant ones.

At the end of the day, click Stop on the bots.

Once a week, look at rejected and grade-F listings in Logs. If you see a real deal in there, tighten the mustAvoid keywords or loosen the AI Instructions for that target.


Troubleshooting

!"FBM Sniper Community was blocked" on Mac

Expected the first time. System Settings, Privacy & Security, scroll to the bottom, click Open Anyway. One-time approval.

!"Windows protected your PC"

Expected on Windows. Click More info, then Run anyway.

!Linux: AppImage won't launch with sandbox error

Run with --no-sandbox appended on Ubuntu 24.04+. Electron's user-namespace sandbox is blocked by recent kernels.

~/Applications/FBM\ Sniper\ Community-2.4.1.AppImage --no-sandbox
!App is hung at startup ("Setting up sniper engine..." forever)

This is the first-launch Chrome download (~150 MB). It can take 30 to 90 seconds. If stuck after 3 minutes, check that the app isn't blocked by your firewall (look for "puppeteer" in Activity Monitor or Task Manager; if it's at 0% CPU, the download is blocked). Restart the app.

!Sign-in opens the browser but the gate doesn't drop

The OAuth callback uses 127.0.0.1:3340. If something else is on that port, sign-in won't complete. Quit any other copy of FBM Sniper and try again.

If the gate still doesn't drop after a successful Whop sign-in: quit the app fully (Cmd+Q on Mac, right-click tray icon then Quit on Windows), then relaunch. It'll see the saved tokens and skip the gate.

!Scan returns zero results

Most common causes in order:

  • Location not set: Settings, Connection & Region, fill in lat/long
  • No proxy on Facebook: FB blocks your IP within minutes. Add a proxy.
  • Vinted country wrong: Settings, Platforms, Vinted Country
  • All targets disabled: Watchlist, check the toggles
  • Price band too tight: your max price is below market. Check eBay sold comps.
!AI grading isn't running
  • Settings, AI Review: confirm Gemini API key is set and saved
  • Settings, AI Review: confirm "Use AI grading" toggle is on
  • The per-target AI toggle defaults ON. If you turned it off for a specific target, only that target loses AI.
!"Cannot find Chrome" error in logs

Quit the app, delete the puppeteer-cache folder in your user-data directory:

Mac
~/Library/Application Support/FBM Sniper Community/puppeteer-cache/
Windows
%APPDATA%\FBM Sniper Community\puppeteer-cache\
Linux
~/.config/FBM Sniper Community/puppeteer-cache/

Relaunch. The app re-downloads Chrome on next startup.

!Vinted: "access_token_web cookie missing"
  • Datadome blocked the verification proxy: re-link with a different proxy
  • You closed the login browser before clicking "I'm done": closing kills Chromium before the cookie sqlite flushes. Always click the green banner button.
  • Your country's Vinted site changed cookie names: post in #questions in Discord with the diagnostic error.
!Discord webhooks don't post
  • Verify the webhook URL is correct (paste into a browser, it should return JSON not 404)
  • Make sure the grade matches the webhook (Buy Now webhook only fires A/B, not C/D)
  • Check Settings, Notifications, "Include photos in alerts" isn't set higher than your Discord channel's limit
!Wallapop returning errors

Raise the poll interval first (Settings, Platforms, Wallapop poll interval). If that doesn't help, add a proxy with a Spanish IP.


Updates & Help

Updates

Pro is on manual updates for now. When a new version ships you'll see a Discord ping with download links. Re-download from your Whop library and run the install helper or installer again.

Settings, Advanced shows your current version. Compare against the latest in the #announcements Discord channel. Auto-update is on the roadmap.

Get help

  • Discord: discord.gg/BkpQSnth4C (fastest)
  • Bug reports: post in #bugs with your OS, version (Settings, Advanced), what you did, what happened, and the relevant lines from the Logs tab.
  • Feature requests: #requests channel. Brief and specific gets you furthest.

Appendix A: Full feature checklist

Whop OAuth sign-in
9 marketplaces covered
Vinted: 25+ country domains
Gemini AI grading
eBay sold-comps (8 regions)
38-target starter watchlist
Per-product scam-pattern blocking
Per-platform price overrides
Seller trust filtering
Discord webhooks (3 routing slots)
Found Listings unified feed
AI Schema Generator
Rotating proxy pool
Display currency conversion
Encrypted local OAuth storage
Linked Accounts (FB + Vinted)
Auto-Message with idempotency
Watchlist Presets
Listing Availability Cleanup
Linux AppImage (new in v2.4.1)

Appendix B: File locations

User data lives in your OS app-data folder:

Mac
~/Library/Application Support/FBM Sniper Community/
Windows
%APPDATA%\FBM Sniper Community\
Linux
~/.config/FBM Sniper Community/

Key files

linked-accounts.jsonLinked-account cookie jars + tokens. Never leave your machine.
auto-message-log.jsonIdempotency log for Auto-Message
puppeteer-cache/Downloaded Chrome binary
shared-marketplace/config.jsonYour Settings
shared-marketplace/watchlist.jsonYour active watchlist
<platform>/found.ndjsonPer-platform deal history

Quit the app before editing any of these files manually.