xAI shares how it built Haggle Bot, a procurement bot that has identified over $100,000 in direct savings

From responsibilities and data access to decision criteria, permissions, and memory: how xAI gives a bot an ongoing role in procurement.

By xAI09-05 · 8 min read
Business & AI · XiaoHu Explains
One-minute overview
  • Write out the long-term responsibilities and what a successful outcome looks like, so the bot knows what recommendations to return each time and what it should pursue when information is missing.
  • Connect the bot to billing, contracts, usage logs, and colleagues, then spell out how to verify requirements, compare equivalent specs, and calculate switching costs—only then will its savings suggestions hold up.
  • Separate autonomous internal research, approval for external communication, and purchase execution. Keep a running record of vendor details and human decisions so the bot can continue working within the same role.

xAI has shared how it built Haggle Bot on top of Grok Bot. Inside the company, this bot acts as a procurement specialist: it audits unused software subscription seats, prepares for vendor contract negotiations, and hunts for better prices on recurring purchases. xAI reports that it has already identified more than $100,000 in direct savings.

Haggle Bot's setup is straightforward: first, describe in natural language the long-term job it will own, then give it the tools and materials it needs. Once people spell out the goal, success criteria, and permissions, the bot can research, reach out to colleagues, and prepare proposals on its own, without waiting for a new assignment at every step.

Procurement is a particularly good fit for this kind of experiment. Companies typically have invoices and contracts on file, but nobody is continuously asking: Who owns this software? How many people are still using it? Why are we paying for two products that do the same thing? Haggle Bot takes on exactly these valuable investigations that tend to get shelved because they're time-consuming.

Start by defining the role: what does good work look like?

xAI's assignment to Haggle Bot is to develop a thorough understanding of the company's vendor spending, turn findings into evidence-backed savings recommendations, and leave final decisions to humans.

The bot also needs to know what a useful result looks like. The prompt requires every report to answer four questions:

Question to answer What's required
What are we spending now? Pull numbers from actual invoices, cite sources, and calculate annualized spend
Where can we save? State the amount, confidence level, and whether savings come from reducing quantity, changing tiers, or lowering unit price
What do you recommend? Offer one clear recommendation that a decision-maker can act on
What has already been done? Report completed internal research and coordination, not just a to-do list

"This vendor is expensive, maybe we can renegotiate" is just a lead, not a recommendation. A useful suggestion needs to cover when the contract expires, which seats are unused, who has confirmed they can be cut, and how much that saves. If information is missing, the bot is expected to go find it.

Those requirements turn "save the company money" into work with a clear definition of done: every recommendation comes with a dollar amount, evidence, and a concrete action. The prompt also pushes the bot to make progress within its allowed internal bounds, rather than stopping at every gap with "I can look into that if you want."

Then connect the sources: giving it the means to find answers

Once the role was defined, xAI connected Haggle Bot to Slack, Notion, Drive, Gmail, Hex, and Ramp. That gives it access to internal communication, documents, data analytics, and spend management, which it uses to build working profiles of roughly 125 active vendors.

Each of these sources answers different questions. Invoices show what was paid; contracts show what was bought and when it renews; usage logs show whether products are still being used. Colleagues can explain business needs that don't show up in the books.

Finding unused software subscription seats is a direct example of this setup in action. These are often called SaaS seats: access licenses paid for per user.

Haggle Bot asked the IT team for account assignments and recent usage records, then cross-referenced those against the paid list. It found 43 paid seats with no activity in the past 90 days and handed the list back for review and downgrade. xAI reports this finding corresponds to $14,220 in savings, though it doesn't specify the time period.

With another product, the bot identified $85,662 per year in idle line items, meaning specific plans, features, or licenses on the bill. Since this product was billed monthly, cutting them lowered spending immediately.

Data connections alone aren't enough; the bot also has to find the people who know what's going on. In one case, it didn't know who owned a vendor relationship, so it started with the owner listed in Ramp, followed leads from colleagues, and kept contacting people until it found the engineer who could explain the actual need.

That's the payoff of giving the bot a persistent role: when it sees no usage records, it verifies with the business owner first; when the first contact doesn't have the full answer, it keeps digging. By the time a recommendation reaches a human, it carries enough business context to act on.

Then spell out the approach: verify need first, then compare price

Having access to data is one thing; knowing how to turn it into procurement advice is another. xAI put its research and negotiation methodology in the prompt: look for alternatives that match the specs of what's actually being purchased, compare at least three real options, note the date of each quote, and factor in switching costs.

The first step is confirming how much still needs to be purchased. Renewal quotes often bundle added seats, extra features, and discounts. A low unit price does not mean the company should buy more.

When Haggle Bot reviewed a software renewal, it first aligned the quote with current annualized spend, then broke out the individual fees. It pushed back on adding 150–300 seats in advance because no usage data supported the expansion, and asked colleagues for the last 60 days of usage.

Haggle Bot breaks down a renewal quote and rejects seat additions not backed by usage data

The second step is comparing prices for the same need. A chat plan's sticker price can't substitute for an enterprise meeting service quote, and per-event pricing doesn't map cleanly onto per-user tiers. The bot has to align what's being bought before arguing about which is cheaper.

Switching costs matter too. In another comparison, Haggle Bot judged that potential savings of only about $19,000 did not justify replacing 106 conference room systems already in use. A cheaper quote becomes useful for a decision only when migration costs are included.

Haggle Bot compares meeting services, separating product specs, pricing models, and migration costs

The third step is building a negotiation plan before writing an email. Haggle Bot must tell the responsible person what target price it wants, what it will offer first, what terms are unacceptable, what it's willing to trade, and how to proceed if the vendor declines, counters, or goes silent.

The prompt also treats reducing quantity separately from lowering unit price: cut unneeded seats first, then focus negotiation leverage on the large items you'll actually keep buying. Otherwise, even after getting a discount, the company can still be paying for seats it doesn't need.

xAI leaves negotiation parameters for organizations to set themselves, such as opening 5%–10% below the internal target and not lowering offers by more than 25% from the vendor's latest quote. These are template examples; when you actually use it, you fill in your own targets, limits, and what you're willing to disclose.

Boundary-setting: connecting research to the purchasing workflow

Giving the bot a long-term role also means specifying where it stops. xAI lets Haggle Bot conduct internal research and coordination autonomously within preset limits, while external communication and business decisions stay under human control.

Action Haggle Bot permission
Check spend, contact internal colleagues, pull reports, update vendor profiles Proceed autonomously within pre-approved bounds
Send messages to vendors Requires explicit approval from the responsible person every time
Sign contracts, make purchases, subscribe, approve expenses, or make binding commitments Explicitly listed as prohibited in the public prompt

It can therefore complete the research and prepare negotiation emails for human review before they are sent. People also adjust the tone and how much information is disclosed; internal usage, project plans, and renewal intentions, for example, must be handled according to the rules agreed in advance.

Office supplies procurement shows how this division of labor fits into day-to-day work. xAI already had an Amazon Bot handling purchasing. Haggle Bot came in to check the need, compare prices, and prepare for negotiation. Once pricing is settled, it hands the order back to Amazon Bot.

One tech supplies list had been buying 20 kits per month on a fixed schedule. In a demo conversation, Amazon Bot was asked to scale the order based on the number of new San Francisco hires per week from Slack. It also confirmed that hygiene supplies should stay on a monthly cadence, asked how to handle the other tech lists, and double-checked that a person would approve the total before submission.

Amazon Bot adjusts a tech supplies order based on headcount and asks for clarification on other list cadences

Haggle Bot, meanwhile, combined consumption rates, seating information across buildings, and quotes and cart contents from the last four orders into an editable spreadsheet. The office team can adjust the number of new hires and see what supplies are needed.

Align headcount, per-person usage, and purchasing cycle first.
InputOriginal table entryMeaning
New hires each Monday6 peopleTotal across all buildings; minimum and maximum are both 6.
Per-person usage per item1 unitConfirm how many units each new hire actually needs.
Number of buildings4 buildingsOriginal table says this is fixed; it does not affect purchase quantity.
Expense cycleWeeklyMatches that week's tech supplies purchase.

First original entry: 8-in-1 USB-C hub, unit price $39.95; listed quantity 24 units, weekly cost $958.80.

The original table lists both “6 people, 1 unit each” and “24 units,” which don't reconcile, so you can't tell how many units to order.

View original tablexAI original demo

Once quantities are set, Haggle Bot compares prices across Amazon, Costco, Uline, and Walmart. It looks for the same item at a lower price first; if that fails, it finds a comparable product from another brand, then presents the candidates for review.

From the original table: 14 supply kits in San Francisco, week of August 17; amounts in US dollars.

On narrow screens, swipe horizontally to see all amount columns.

With the same quantity, compare unit price and order difference item by item.
ItemQtyOriginal unit priceCandidate unit priceOriginal totalCandidate totalDifference
Ergo Keyboard Pro14$129.99$55.49$1,819.86$776.86$1,043.00
TrackPro 5 mouse14$114.50$72.49$1,603.00$1,014.86$588.14
65W USB-C power adapter14$89.00$59.49$1,246.00$832.86$413.14
TrackPro 5 business edition14$109.99$72.49$1,539.86$1,014.86$525.00
FreshMint mouthwash 500ml14$42.95$10.79$601.30$151.06$450.24
Precision mouse14$49.95$18.49$699.30$258.86$440.44
100W USB-C power adapter14$65.00$30.99$910.00$433.86$476.14
Allergy Relief, 50-count14$41.25$13.49$577.50$188.86$388.64
PowerCore 100W charger14$57.98$33.49$811.72$468.86$342.86
USB-C to USB-C cable, 2m14$12.95$6.49$181.30$90.86$90.44
Ergo Stand Pro14$74.95$54.49$1,049.30$762.86$286.44
Lens cleaning wipes, 100-count14$24.50$8.49$343.00$118.86$224.14
Foam hand soap, 8-pack14$26.99$11.49$377.86$160.86$217.00
The quantity “14” follows the purchase units in the original table: 500ml, 50-count, 100-count, and 8-pack are product specifications. Candidate brands and packaging are not disclosed for each item, so per-item prices and comparable specifications still need checking. This table covers a different scope from the later $14,629 → $6,143 order record.

View original tablexAI original demo

The table lists the original price, candidate price, and difference side by side for the same quantity, helping the responsible person decide which items are worth switching and which can still be negotiated. When comparing different pack sizes, prices also need to be converted to a per-item basis and candidate product specifications checked.

Haggle Bot then drafts an email to the Amazon purchasing representative, attaches that day's competing prices, and asks whether the corporate discount program can reduce specific line items. The email goes to a person for review first.

Haggle Bot compares items by unit price, then drafts a vendor email waiting for human approval

On one tech supplies purchase, this collaboration brought an order from $14,629 down to $6,143, a reduction of roughly 58%. That reflects one optimized order, and it may include the effect of price comparison and substitute products; it shouldn't be read as a uniform discount applied to everything.

The split lets Haggle Bot go deep on research and action preparation while keeping payments and commitments inside their existing approval and execution workflows.

Keep records: making the next round easier

Haggle Bot's job also includes remembering what it has investigated and decided. xAI directs it to continuously maintain, for each vendor, spend figures, contract terms, renewal dates, the responsible owner, quotes collected, and what the responsible person decided about each recommendation.

Rejected recommendations get their reasons recorded too. That way, when the same company comes up again, the bot knows why a switch didn't happen before and won't propose the same plan that was already discussed and set aside.

A renewal calendar keeps the bot aware of timing. The prompt calls for maintaining the calendar from invoices and contracts, prioritizing contracts that enter the attention window; the template uses 120 days ahead as an example. As usage and quotes shift, the bot continues updating its profiles and can revisit at the right time.

The setup can be mapped to five preparation areas: write out the long-term role and what results count as good; connect data sources and internal contacts; document the research and negotiation method; define what the bot is allowed to do; and specify where vendor records should live. xAI's published Haggle Bot task prompt shows what those fields look like.

The cases xAI has reported so far come from a short deployment window, and they're hoping to observe how it performs over a full year of running. The value already shown is this: a clearly defined role, combined with data access, evaluation standards, permissions, and memory, lets the bot keep pushing procurement questions deeper and arriving with well-prepared proposals, freeing people to focus on the final business call.

Source
Setting Grok Bot loose on procurementxAI·View primary source
↑ End of article
✓ This article is free to read in full

Members can copy or download the full Markdown, and let their AI subscribe and ask.

Read the original ↗
📮 New explainers, straight to your inbox

Found this useful? Leave your email — every new explainer, the moment it's out. Unsubscribe anytime.