runbookify
← All plans
Logistics & Transportation / Dispatch, Load Planning & Routing

Load Tender Board

Build an internal tool that suggests a carrier and rate for each open load, gates the tender behind a dispatcher's approval, sends it, and records every accept/decline - so tendering stops being untracked phone calls.

IntermediateA weekendBuilds onNext.js (App Router) on VercelSupabase (Postgres, Auth, RLS, Storage)Resend (tender emails + alerts)
What you'll build

A login-protected tender board where each open load shows suggested carriers and a rate inside your cap, a dispatcher approves before anything goes out, the tender is emailed, and accept/decline plus the full tender history are recorded - with a CSV fallback if you have no carrier API yet.

Gated download

Enter your email — the plan downloads instantly and a copy lands in your inbox.

By submitting your email you'll also receive the weekly runbookify newsletter. You can unsubscribe at any time.

Before you start

  • A free Supabase account
  • A free Vercel account
  • A free Resend account (with a verified sending domain)
  • A list of your carriers and your open loads (a spreadsheet is fine to start)

The problem this kills

Tendering a load is supposed to be a system. In most dispatch and brokerage offices it's a flurry of phone calls and texts. A dispatcher cold-calls carriers off the top of their head, negotiates a rate nobody wrote down, and books whoever answers first. There's no record of who was offered the load, at what price, or why a carrier said no. When the customer asks "did you cover that load yet?" the only honest answer is "let me make a few more calls."

That costs you in three ways. You overpay, because there's no rate cap staring back at you. You lose loads, because a tender sits unanswered for an hour while the dispatcher is on another call. And you have no history, so you can't see which carriers actually take your freight, which ones ghost you, and which lanes are getting expensive.

A Load Tender Board fixes the workflow without taking the human out of it. Every open load lands on a board, the tool suggests the best carriers and a rate that's inside your cap, the dispatcher reviews and approves, the tender goes out, and accept/decline is captured automatically. Nothing is booked until a person signs off, and everything that happened is on the record.

What you'll build

A login-protected web app for your dispatch team that turns tendering into a tracked, repeatable flow:

  • An open-loads board showing every load that still needs a carrier, with its lane, equipment, pickup window, and your target rate.
  • A carrier suggester that ranks carriers for each load and proposes a rate inside your rate cap - using your own history and rules, not a black box.
  • A human approval gate: the dispatcher reviews the suggested carrier and rate and approves the tender before a single message goes out.
  • Tender send + tracking by email, with one-click accept/decline links the carrier uses, all timestamped.
  • Auto-next-carrier on timeout: if a tender isn't answered inside the window you set, the board surfaces the next-best carrier so the load keeps moving.
  • A full tender history per load - who was offered it, at what rate, in what round, and what they said.
  • A CSV import/export fallback so you can run the whole thing today even with no TMS or carrier API.

What's inside the Implementation Plan

The plan is a step-by-step runbook you paste into an AI coding agent (Claude Code). It builds the tool with you, one prompt at a time - no prior coding needed.

It opens by interviewing you about your business - your lanes, your equipment types, how you pick carriers today, your rate-cap rules, your tender timeout, and your messiest exceptions - then tailors the data model, the carrier-ranking logic, the validations, and every later step to your actual operation. You're not getting a generic template; you're getting a board shaped around how your desk really runs.

From there it walks you through standing up the database, the login, the open-loads board, the carrier suggester, the approval gate, the email tender flow, the accept/decline capture, the timeout/auto-next-carrier behavior, and the history view - each step ending with a ready-to-copy prompt.

The governance it includes (this is the point)

This isn't a toy. The governance is built in from the first step, because that's what makes an internal tool safe to actually use:

  • Login so only your team can see the board.
  • Row-level security so a user only ever sees their own organization's loads, carriers, and rates.
  • A complete audit trail - who suggested, who approved, who sent, what the carrier answered, and exactly when.
  • A hard human-in-the-loop approval gate - the AI drafts the carrier/rate match, a dispatcher approves, and only then is the tender sent and the load booked.
  • A rate cap that blocks any tender above the ceiling you set for the lane.
  • Duplicate guards keyed on load + carrier + tender round, so the same carrier can't be double-tendered the same load in the same round.

Who it's for

Dispatchers and brokerage operations teams who are covering loads by phone and text today and want a tracked, accountable tendering process - without buying and learning a heavyweight TMS.

You've got this - paste the first prompt and let the interview shape the rest.

Gated download

Enter your email — the plan downloads instantly and a copy lands in your inbox.

By submitting your email you'll also receive the weekly runbookify newsletter. You can unsubscribe at any time.