Acquisition Deal Radar
An unattended weekly sweep of business marketplaces that surfaces only pre-qualified candidates

Overview
Anyone shopping for an online business to buy has to check a dozen marketplaces by hand, re-read the same listings every week, and mentally discard everything overpriced, already sold, or too small to matter. It is exactly the kind of work that stops happening after a month. This system runs the sweep instead. It pulls live listings from three marketplaces, normalizes wildly different payloads into one shape, scores each against a configured thesis, and surfaces only what survives.
Approach & Architecture
Each run pulls from three listing APIs, advancing a rotating per-source page cursor held in workflow state so it sweeps deeper rather than re-reading the first page. Payloads collapse into a single schema, with margin and earnings multiple derived from whichever revenue fields the source happens to provide. Two dedup stages follow, one collapsing duplicates within the run and one checking a persistent fingerprint store across runs. A deterministic financial gate then drops anything that could not clear the alert bar even with a full model bonus, which is what bounds inference cost before it is spent.
Workflow Topology
A condensed view of the real node graph.
Outcome & Impact
The weekly manual sweep is gone. Across its production run the pipeline fingerprinted hundreds of distinct listings without ever repeating an alert, sweeping progressively deeper into each marketplace through its rotating cursors. Layered gating means only listings passing the financial criteria, then the score floor, then the combined threshold ever reach a human.
Challenges & Solutions
- Bounding inference cost on a local model by proving mathematically which listings cannot reach the alert threshold, so the gate encodes the maximum possible bonus and drops everything below it
- Correlating asynchronous model responses back to their source listings without index drift, by carrying a correlation key through every filtering and dedup stage
- Rate limiting three third-party APIs inside a sandboxed code environment where the usual timer primitives are unavailable
- Refusing to guess on failure, so an unparseable or unavailable model response scores zero and is dropped by the threshold filter rather than passing through unnoticed
Key Features
- Aggregates three marketplace APIs into one normalized listing schema, deriving margin and multiple from whichever fields exist
- Rotating per-source page cursors persisted in workflow state, sweeping deeper each run and wrapping at the end
- Two-stage deduplication: in-run collapse on title and price, plus a persistent cross-run fingerprint store
- Deterministic pre-score gate drops listings mathematically incapable of clearing the bar, bounding model inference
- Hybrid scoring computed in code, with the model's influence capped at a bounded adjustment
- Weighted keyword routing sends each candidate to its matching category destination and opens a discussion thread
- Runtime overrides for sources, depth, and minimum score, plus a funnel summary of exactly what was rejected and where
Tech Stack
Automation
- Platform
- n8n
- Workflows
- 1
- Nodes
- 34
- Triggers
- Schedule, Sub-workflow