Zagreus

Looking To Buy

Automated buy request matching system with notifications, expiry management, and per-channel configuration.

The Looking To Buy (LTB) system lets members post buy requests that are automatically matched against trade listings. When a seller posts an item that matches an active LTB entry, the buyer is notified — connecting supply with demand without manual searching.

LTB configuration is managed from the web dashboard under the LTB page. Admins can configure channels, limits, validity periods, and notification preferences from the browser.

How It Works

A buyer posts an LTB request

A member posts a message in a designated LTB channel describing what they want to buy. The bot parses the request and creates an LTB entry with keywords extracted from the message.

The entry is indexed and tracked

Zagreus stores the LTB entry with the buyer's ID, keywords, channel, timestamp, and expiry date. The entry is active immediately and begins matching against new trade posts.

A seller posts a matching trade

When a trade is posted in any monitored trade channel, Zagreus compares the trade content against all active LTB entries. If keywords match, a notification is triggered.

The buyer is notified

The buyer receives a notification (DM, channel ping, or digest — depending on their preference) with a link to the matching trade post. They can then contact the seller directly.

The entry expires or is cancelled

LTB entries have a configurable validity period. Before expiry, the buyer receives warnings. They can renew the entry to extend its life or cancel it manually if they have found what they need.


Channel Configuration

Each LTB channel can be independently configured with the following settings:

SettingDescriptionDefault
Max active per userMaximum number of active LTB entries a single user can have in this channel5
Default validityHow long an LTB entry remains active before it expires30 days
Min account ageMinimum Discord account age required to post an LTB entryNone
Min server ageMinimum server membership duration required to post an LTB entryNone

Setting reasonable limits on active entries per user prevents spam and ensures the matching system remains performant. For large servers, consider a lower limit (3-5 entries).


Notifications

Zagreus supports multiple notification types to ensure buyers never miss a match.

Instant Notifications

When a matching trade is posted, the buyer is notified immediately:

  • A message is sent in the LTB channel (or a configured notification channel) mentioning the buyer
  • The notification includes a direct link to the matching trade post
  • The matching keywords are highlighted so the buyer can quickly assess relevance

Digest Notifications

For users who prefer fewer interruptions:

  • Matching trades are batched and sent as a periodic digest
  • Digest frequency is configurable (hourly, daily)
  • The digest includes all matches since the last digest, grouped by LTB entry

DM Opt-In

Buyers can opt in to receive match notifications via DM:

  • DM notifications are sent in addition to (not instead of) channel notifications
  • Users can toggle DM notifications on or off at any time
  • If the bot cannot DM the user (DMs disabled), the notification falls back to channel-only

Priority Alerts

For high-demand items, buyers can mark an LTB entry as priority:

  • Priority entries trigger notifications even if the buyer is offline
  • Priority matches are highlighted in digests
  • Limited to 1 priority entry per user to prevent abuse

Entry Management

User Cancellation

Buyers can cancel their own LTB entries at any time:

  • Reply to the original LTB message with a cancellation command
  • The entry is marked as cancelled and stops matching
  • Cancelled entries are retained in the database for audit purposes but are no longer active

Renewal

Before an entry expires, buyers can renew it to extend the validity period:

  • Renewal resets the expiry date to a new full validity period from the current date
  • The entry retains its original keywords and matching history
  • Buyers receive a confirmation when renewal is successful

Auto-Expiry Warnings

Zagreus proactively warns buyers before their LTB entries expire:

WarningTimingDescription
First warning3 days before expiryA DM or channel notification reminding the buyer that their entry will expire soon. Includes instructions for renewal.
Final warning1 day before expiryA more urgent notification that the entry expires tomorrow. Prominently features the renewal option.

After expiry:

  • The entry is marked as expired and stops matching
  • The buyer is notified that the entry has expired
  • Expired entries can be viewed in history but cannot be renewed — the buyer must create a new entry

Expired entries are permanently deactivated. If a buyer misses the renewal window, they need to post a new LTB request. Encourage members to act on expiry warnings promptly.


Matching Details

Keyword Extraction

When an LTB entry is created, Zagreus extracts keywords from the message:

  • Common stop words (the, a, an, is, for, etc.) are removed
  • Game-specific terminology is recognized and preserved
  • Price ranges and conditions (e.g., "under $50", "mint condition") are parsed as filters
  • The buyer can manually specify keywords if the automatic extraction is insufficient

Match Scoring

Not all matches are equal. Zagreus scores matches based on:

  • Keyword overlap: How many of the LTB keywords appear in the trade post
  • Specificity: More specific matches (exact item names) score higher than broad matches
  • Recency: Newer trade posts are slightly preferred over older ones

Only matches above a configurable score threshold trigger notifications, reducing false positives.

Deduplication

To avoid notification fatigue:

  • The same trade post is never matched to the same LTB entry twice
  • If a seller edits their trade, it is re-evaluated but only triggers a new notification if the match score increased significantly

On this page