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
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:
| Platform | File |
|---|---|
| Mac Apple Silicon (M1/M2/M3/M4) | FBM Sniper Community-2.4.1-arm64.dmg |
| Mac Intel | FBM 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.
Both the .dmg and the install helper script.
bash ~/Downloads/Mac\ Install\ Helper*.sh
Type your Mac password when prompted.
If macOS shows "FBM Sniper Community was blocked": System Settings, Privacy & Security, scroll down, click Open Anyway. This is only needed once.
Double-click FBM Sniper Community Setup 2.4.1.exe.
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.
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 to ~/Applications/ or any folder you prefer.
chmod +x ~/Applications/FBM\ Sniper\ Community-2.4.1.AppImage
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.
Your default browser opens to whop.com.
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.
http://user:pass@host:port, one per line.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.
- Open aistudio.google.com/apikey
- Click Create API key, copy it
- Settings, AI Review, paste into Gemini API Key
- 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:
| Field | What it does |
|---|---|
| Search Query | What the bots search for. Keep it tight: iPhone 15 Pro, not apple phone 15. |
| Min / Max Price | Hard ceilings. Anything outside this range is silently skipped. |
| Per-Platform Price Overrides | Wallapop, Vinted, OfferUp run hotter or colder than Facebook for the same product. |
| Must Include | Comma-separated keywords. At least one must appear in the listing text. |
| Must Avoid | Listings containing any of these are hard-rejected before grading. |
| AI Instructions | The per-target prompt that tells Gemini what makes a deal good or bad. |
| eBay Sold-Comps URL | A 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:
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
| Grade | Meaning | Action |
|---|---|---|
| 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.
| Marketplace | Notes |
|---|---|
| Facebook Marketplace | Needs proxy. Needs Facebook Marketplace URL in Settings. Rate-limits aggressively without one. |
| Wallapop | Mostly rate-limit tolerant. Raise the poll interval first if you see 429 errors. |
| Vinted | Country selection required. Cookie capture is automatic. Datadome is the most common block source; rotating proxies in the chosen country reliably bypass it. |
| Mercari | US and Japan supported. Buy Now goes straight to checkout URL (unique to Mercari). |
| Leboncoin | France only. Headed Chromium needed for some listing categories. |
| Kleinanzeigen | Germany / Austria. Watch out for region-specific currency display. |
| Gumtree | UK, Australia, South Africa share one bot but separate URLs. Defaults to UK; override per-target. |
| Yaga | Estonia, Latvia, Lithuania. Smallest catalog; fastest to validate target changes against. |
| OfferUp | US 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
| Status | Meaning |
|---|---|
| Active | Verified working, ready to drive flows |
| Unvalidated | Fresh out of linking, not yet checked |
| Validating... | Background validator is currently checking |
| Expired | Facebook/Vinted returned 401/403. Re-link. |
| Needs reauth | Something 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:
- Per-account hourly limit (default 20): each account can fire 20 sends per rolling 60 minutes.
- Global per-hour cap (default 10): auto-fires across all accounts combined.
- 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
| Tab | What's there |
|---|---|
| Connection & Region | Proxy, currency, location lat/long, Facebook Marketplace URL |
| AI Review | Gemini API key, concurrent workers, AI on/off toggle |
| eBay | Marketplace, currency, profit thresholds, fees, cache refresh button |
| Notifications | Discord webhooks (All / Buy Now / Maybe), browser auto-open, max photos per alert |
| Seller Filters | Min reviews, min star rating, blacklisted sellers |
| Platforms | Per-platform on/off, polling intervals, Vinted country, optional Vinted cookie |
| Auto-Message | Template, hourly cap, default account |
| Watchlist Presets | Save/load/delete named watchlist snapshots |
| Listing Availability Cleanup | Toggle, interval, max per cycle, concurrency, force-sweep, restore hidden |
| Advanced | Search/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-sandboxApp 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:
~/Library/Application Support/FBM Sniper Community/puppeteer-cache/
%APPDATA%\FBM Sniper Community\puppeteer-cache\
~/.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
#questionsin 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
#bugswith your OS, version (Settings, Advanced), what you did, what happened, and the relevant lines from the Logs tab. - Feature requests:
#requestschannel. Brief and specific gets you furthest.
Appendix A: Full feature checklist
Appendix B: File locations
User data lives in your OS app-data folder:
~/Library/Application Support/FBM Sniper Community/
%APPDATA%\FBM Sniper Community\
~/.config/FBM Sniper Community/
Key files
Quit the app before editing any of these files manually.