DeskFerry Logo

The good invitation stops getting buried

Every invitation to bid that lands gets read and scored against the work you actually want — scope, distance, value, and whether you've worked with that GC before. The ones worth your time surface. The bid date goes in your calendar either way.

Invitations to bid — this week

11 received

  • Weaver Street medical fit-out

    14 mi · $840k · bids due 22 May · Kestrel Construction

    87/100

    Worth bidding
  • Riverbend apartments — phase 2

    9 mi · $1.2m · bids due 19 May · repeat GC

    74/100

    Worth a look
  • Depot warehouse shell

    62 mi · $2.4m · bids due 16 May · new GC

    31/100

    Too far, wrong work
  • School gymnasium re-roof

    21 mi · $410k · bids due 15 May · public, bonded

    44/100

    Bonding required

The Weaver Street one arrived Tuesday and was eight emails down by Thursday.

Works with

  • Gmail
  • Outlook
  • Google Sheets
  • Google Calendar
  • Slack

ITBs arrive as email — from a GC directly or as a notification from a plan room — so it reads them out of your inbox. Nothing needs installing on the sender's side.

The chore

How this goes right now

  1. If you're on anybody's bid list you get a dozen invitations a week, and eleven of them are wrong for you. Too far, too big, wrong trade, bonded work you can't bond, or a GC who took ninety days to pay you in 2023 and you've made a private vow about it.

  2. So you skim them. And skimming works right up until the week it doesn't — the one that was fourteen miles away, the right size, from a GC you liked, arrives on a Tuesday when three other things are on fire. By Thursday it's eight emails down. You find it the following week and the bid date was Friday.

  3. The other failure is quieter. You do open one, decide it's worth bidding, and then the bid date lives in your head instead of your calendar. Two weeks later you're doing takeoff at eleven at night for something due at nine the next morning, which is how you end up either not bidding or bidding badly.

The difference

The problem isn't reading them. It's that eleven look like the twelfth.

Skimming the inbox
Scored as they land
A dozen invitations a week, mostly wrong for you
Each ITB scored on scope, distance, value and GC history
The good one arrives on a bad day and gets buried
The ones worth bidding surface instead of queuing
Bid dates live in your head until they don't
Bid date held in the calendar the day it arrives
No record of what you passed on or why
Every invitation logged, including the passes
Takeoff started the night before, or not at all
A week's warning before takeoff needs starting

Try it

Walk through it yourself

This is the actual shape of the workflow — the same trigger, the same steps, the same draft waiting for your say-so. Click through it.

Triage bid invitations

TriggerGmail

ITB arrives from Kestrel Construction

Invitation to bid on a medical office fit-out, Weaver Street. Picked up as it landed, before it had anything stacked on top of it.

What it does

  1. Read the invitation and the attached documents

    Medical office fit-out, 11,400 sq ft, budget indicated around $840k. Bids due noon on 22 May. Pre-bid walk on the 14th.

    Gmail
  2. Score it against what you actually want

    14 miles out, right size, interior fit-out is your core work, and you've completed two jobs for Kestrel — both paid inside 30 days. Scores 87.

    Google Sheets
  3. Hold the dates that matter, not just the deadline

    Bid due 22 May at noon, pre-bid walk 14 May at 10am, and a takeoff block on the 16th so it isn't started the night before.

    Google Calendar
  4. Tell whoever needs to know

    Posted to your estimating channel with the score, the dates, and a link to the documents.

    Slack

Draft summary — nothing has been sent

Weaver Street medical fit-out

Kestrel Construction · bids due 22 May, noon

87/100

Fit score

Scope
Interior fit-out — core work
Distance
14 miles
Value
~$840k
GC history
2 jobs, paid inside 30 days
Bonding
Not required
Pre-bid walk
14 May, 10:00 — attendance mandatory
Current pipeline
Capacity from late June
Watch out for
Occupied building, night work implied

Log this as one to bid and hold the three dates?

Passing still logs it with a reason, which is worth doing. Three months of passes tells you what you keep being asked for and aren't set up to take — that's a business decision hiding in your inbox.

Once you approveGoogle Calendar

Dates held, and the pipeline gets a row

Pre-bid walk, takeoff block and the bid deadline all go in your calendar with reminders. The invitation lands on the pipeline sheet with its score, so you can see at a glance what you're bidding this month and what you turned down.

That's the whole workflow.

It drafts, you approve, nothing sends on its own.

Start free

How it works

What it's actually doing

This one is genuinely event-driven — a new invitation gets read as it arrives, not on a morning sweep.

  1. 1
    • Gmail
    • OuOutlook

    It spots an invitation among everything else

    New mail triggers it. It works out which messages are actually invitations to bid — from a GC directly or a plan room notification — and reads any attached scope documents rather than just the covering email.

  2. 2
    • Google Sheets
    • ExExcel

    It scores against your rules, not a generic model

    Distance from your yard, project size against the range you work in, whether the scope is your trade, whether bonding is required, and what your own history with that GC has been. You set the weightings, because a job that's perfect for one contractor is a nightmare for the one next door.

  3. 3
    • Google Calendar

    It holds every date that matters

    Not just the bid deadline. Pre-bid walks are often mandatory and missing one disqualifies you, and RFI cut-offs come earlier than people expect. It also blocks time for the takeoff itself, which is the appointment that actually gets skipped.

  4. 4
    • Google Sheets
    • Slack

    It logs everything, including the passes

    Every invitation gets a row — bid or pass, with the reason. That log is the only honest record of what your market is asking you for, and it takes a quarter before it starts being interesting.

You stay in control

It scores and schedules. Deciding what to bid is still a judgement call.

A score is a way of sorting a dozen emails, not a decision. Whether to bid involves what your crews are doing in August, whether you liked the last superintendent, and how badly you want in with that GC — none of which is in the invitation.

  1. Step one

    It drafts

  2. Step two — you

    You read it and approve

  3. Step three

    Only then does it send

It never declines on your behalf

A low score sorts an invitation down the list. It doesn't reply, doesn't tell the GC you're passing, and doesn't remove you from anyone's bid list. Nothing leaves your inbox.

You can overrule any score

Bid the 31-point one if you want in with that GC. Mark it and it's logged as bid, with your reason — the score was information, not a gate.

Calendar holds are yours to drop

It blocks the pre-bid walk and a takeoff window. Deleting either takes a second, and dropping the takeoff block is a decision you'll at least have made deliberately.

It won't estimate anything

No numbers, no ballparks, no square-foot rates. It tells you an invitation is worth your attention. Everything after that is estimating, and that's your work.

Setup

What setting this up involves

  1. 1

    Connect

    • Gmail or Outlook, where invitations land
    • Your calendar, for bid dates and pre-bid walks
    • A pipeline sheet in Google Sheets or Excel
    • Slack, if more than one person needs to see them
  2. 2

    Tell it how you work

    • How far you'll travel, and whether that changes for bigger jobs
    • Your project size range — both the floor and the ceiling
    • Which scopes are yours and which you'd sub out or decline
    • Whether you can bond, and up to what value
    • Which GCs you'd rather not work for, and which you'd clear the decks for
  3. 3

    Then it runs

    About 35 minutes, once

    The scoring rules take most of it. It's worth doing properly with whoever makes bid/no-bid calls, because writing those rules down is usually the first time they've been said out loud.

Edge cases

Where it's careful, and what it won't do

What it handles

  • Addenda that move the bid date

    Bid dates get pushed constantly, often in an addendum buried in a plan room notification. It reads those and updates the calendar hold rather than leaving you working to a date that changed a week ago.

  • Mandatory pre-bid walks

    Missing a mandatory walk disqualifies your bid entirely, and it's usually one line in a document nobody reads to the end. Those get flagged prominently and held in the calendar separately from the bid deadline.

  • The same project from three GCs

    On bigger jobs the same project arrives from several general contractors bidding it themselves. It groups those rather than showing three unrelated invitations, so you can see it's one job with three routes in.

  • Invitations with no documents attached

    Plenty of ITBs are a paragraph and a link to a plan room. It scores what it can, marks the score as provisional, and flags that somebody needs to open the plan room before the number means anything.

What it does not do

  • It doesn't do takeoff or estimating

    It gets you to the point of deciding to bid, with time booked to do it. Quantities, pricing and markup are entirely yours.

  • It doesn't submit bids

    No uploading to plan rooms, no submitting through a GC's portal. Those all have their own processes and deadlines you should be watching yourself.

  • It doesn't log into plan rooms

    It reads the notification emails. Anything that only exists behind a login on someone else's platform is invisible to it, and it'll say the score is provisional when that's the case.

  • It doesn't decide bid or no-bid

    It sorts and scores. The call involves your schedule, your crews and your appetite, and a number out of a hundred is not a substitute for that.

Time back

Three to five hours a month, and the one you'd have missed

Time back
Three to five hours a month, and the one you'd have missed
Spent on
The work that bills
What it costs
$49 / monthGrowthplan — see what’s included

How that’s worked out: Based on 30–50 invitations a month at roughly five minutes each to open, read the scope, and decide — plus the recurring hour of hunting for something you half-remember seeing. The hours are the visible saving. The real one is a single missed invitation a year, which on a $400k job is not comparable to any amount of admin time.

Fair questions

The things contractors ask first

I can tell in ten seconds whether an invitation is worth reading.

Almost certainly true, and that's not where this helps. The problem isn't the ten seconds — it's the Tuesday when eleven arrive and three things are going wrong, and the good one gets skimmed at the same speed as the rest. Scoring doesn't replace your judgement, it stops the queue deciding for you.

A score out of a hundred can't capture whether I want a job.

Correct, and it isn't meant to. It's a sorting mechanism so the ones matching your stated rules are visible first. You'll overrule it regularly, and every override is logged — which over a few months makes the rules better.

Most of our invitations come through a plan room, not email.

Plan rooms email you notifications, and that's what it reads. But be aware of the limit: if the scope documents only exist behind that login, it scores from the notification alone and marks the score provisional rather than pretending it read the drawings.

FAQ

Questions worth answering properly

How does it score an invitation?

Against rules you set — travel distance, project size range, which scopes are your work, whether bonding is required, and your own history with that general contractor. There's no generic industry model involved, because the same job is a good fit for one contractor and a bad one for the outfit down the road.

Does it reply to the GC or decline for me?

Never. Nothing goes back to the sender. A low score sorts an invitation down your list and logs it — it doesn't tell anyone you're passing, and it won't get you removed from a bid list.

What if the bid date changes?

It reads addenda and updates the calendar hold. Bid dates move often, and the danger isn't the change itself — it's working three weeks to a date that shifted in a document you didn't open.

Does it handle mandatory pre-bid walks?

Yes, and it flags them prominently. Missing a mandatory walk disqualifies your bid entirely, and the requirement is usually one line deep in a document — exactly the kind of thing that gets missed on a busy week.

Can more than one person see the invitations?

Yes — scored invitations can post to a Slack channel with the dates and a link, so whoever handles estimating sees them without going through your inbox.

Is there any point logging the ones I pass on?

More than you'd expect. A quarter of logged passes shows you what your market keeps asking you for that you're not set up to take — bonded work, jobs slightly larger than your range, a scope you always sub out. That pattern is a business decision that's currently invisible.

Stop finding the good one after the bid date

Connect your inbox and your calendar, and write down what a good job looks like. The next invitation gets scored before it can get buried.

Start free