⚡ Autonomous Pipeline Architecture
Click any stage below to inspect its live data payloads, API schemas, and policy logic.
NOTICE Stage
Scrapes live Marktplaats Benelux tech feed and grounds against real eBay DE sold items.
haketa/marktplaats-scraper
automation-lab/ebay-scraper
comps_cache.json (2h TTL)
DECIDE Stage
Calculates margin Z-score against median & MAD. Evaluates 3-rule deterministic Gate Oracle.
margin_z = (med - ask)/mad
policy.py (Gate v0/v1)
Advance-Fee Regex
ACT Stage
Synthesizes polite Dutch outreach text. Caps bid at 80% of ask with human confirmation lock.
H1 Dutch Outreach
Clamped <= 80%
Drafts (zero auto-spend)
REPORT & AUDIT
Appends SHA256 cryptographic receipt, exports visual triage HTML, and triggers Telegram alerts.
receipts.jsonl (Hash Chain)
triage_export.csv
Telegram Dispatch
Execution Logic & Operational Guarantees
Queries Dutch classifieds for high-margin tech items (Nintendo Switch, PS5, iPhone, MacBook) via Apify. In parallel, retrieves ground-truth sold medians from eBay DE in EUR (€) and drops accessory noise using rerank.py.
- Target Marketplace: marktplaats.nl (Netherlands)
- Comps Grounding: eBay Germany (ebay.de, native EUR)
- Accessory Reranker: Drops cases, skins, fans, and replacement parts
- TTL Comps Cache: 7200s (2 hours) saves Apify compute spend
Live Sample Payload
{
"id": "s-en-mario-kart-8-deluxe",
"title": "Nintendo Switch V2 met accessoires en Mario Kart 8",
"price_eur": 160.0,
"category": "spelcomputers",
"posted_at": "2026-09-26T09:40:00Z",
"comps": {
"key": "nintendo switch",
"median_eur": 189.95,
"mad_eur": 20.95,
"source": "automation-lab/ebay-scraper [DE]"
}
}
🎮 Live Deal Flow Simulator
Select an actual listing from the live run to trace exactly how the decision engine evaluates margin, verifies safety, and crafts outreach.
✨ Deal #1: Nintendo Switch V2 (Drafted)
⚠️ Deal #2: iPhone 15 Pro Max (Escalated: No Margin)
🛡️ Deal #3: Scammer Tikkie / IBAN (Refused: Safety)
1. Raw Scraped Item
Nintendo Switch V2 + Mario Kart 8
Ask: €160.00
Marktplaats NL
2. Grounded Comp
Comp: "nintendo switch"
Median: €189.95 · MAD: €20.95
Margin Z: +1.43 σ
3. Gate Oracle (policy.py)
PURSUE (DRAFT)
Reason: Grounded positive margin
Scam Check: Clean (0 risk)
4. Action & Dutch Draft
Offer: €128 (80% capped)
"Hoi! Mooi dat je Nintendo Switch V2 zo compleet aanbiedt! Zou je €128 willen accepteren?..."
Receipt: sha256_e1a47f2
📊 European Comps Grounding Table (eBay DE)
Real ground-truth comps scraped directly from continental European eBay (ebay.de) in native EUR (€) with accessory noise filtration.
| Target Tech Category |
Median Price (EUR) |
MAD (Dispersion) |
Sample Size (n) |
Grounding Source |
Status |
| nintendo switch |
€189.95 |
€20.95 |
14 sold |
automation-lab/ebay-scraper [DE] |
ACTIVE CACHED |
| ps5 |
€499.90 |
€49.90 |
11 sold |
automation-lab/ebay-scraper [DE] |
ACTIVE CACHED |
| ps4 |
€117.79 |
€21.21 |
10 sold |
automation-lab/ebay-scraper [DE] |
ACTIVE CACHED |
| macbook |
€300.00 |
€137.00 |
15 sold |
automation-lab/ebay-scraper [DE] |
ACTIVE CACHED |
| iphone |
€131.47 |
€71.48 |
10 sold |
automation-lab/ebay-scraper [DE] |
ACTIVE CACHED |
| airpods |
€120.00 |
€45.00 |
13 sold |
automation-lab/ebay-scraper [DE] |
ACTIVE CACHED |
| apple watch |
€159.90 |
€64.90 |
15 sold |
automation-lab/ebay-scraper [DE] |
ACTIVE CACHED |
| canon |
€125.00 |
€45.01 |
14 sold |
automation-lab/ebay-scraper [DE] |
ACTIVE CACHED |
🛡️ Safety Framework & Cryptographic Audit Invariants
Strict compliance rules ensure Magpie cannot be jailbroken, cannot initiate hostile outreach, and never touches money tools.
1. Hostile Invariant: Zero Hostile Pursues
The gold evaluation benchmark in gold.jsonl tests scam attempts, advance-fee fraud, and prompt injections. A single failure breaks the entire build.
python3 marketmind/skin/policy.py --eval marketmind/skin/gold.jsonl
# Result: 0 hostile_pursue (PASS)
2. Kill Switch & Cold Outreach Cap
State-persisted kill-switch (AUTO_PAUSE=1 or --pause) forces instant "observe-only" mode. Cold outreach is capped at 5 drafts/night.
python3 marketmind/app/run_walking_skeleton.py --pause
# kill-switch: ON (observe-only)