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 biddingRiverbend apartments — phase 2
9 mi · $1.2m · bids due 19 May · repeat GC
74/100
Worth a lookDepot warehouse shell
62 mi · $2.4m · bids due 16 May · new GC
31/100
Too far, wrong workSchool 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
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.
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.
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.
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
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
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.
GmailScore 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 SheetsHold 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 CalendarTell 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.
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.
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
- 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
- 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
- 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
- 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.
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.
Step one
It drafts
Step two — you
You read it and approve
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
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
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
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.
More construction chores
Other things that keep falling off the list
Compare supplier quotes
One RFQ to every supplier, and the replies read into a single table so you can see who's actually cheapest line by line.
Chase unanswered estimates
Three days of silence on a proposal, and a follow-up is waiting in your drafts with the scope and price already in it.
Respond to new leads fast
A lead arrives at 8pm Friday and gets a proper reply that evening, with two site-visit slots you actually have free.
Chase change order approvals
A reminder to the client on anything unsigned past two days, and a running total of work you're performing without a signature behind it.
Collect subcontractor COIs
Thirty days before a certificate lapses, the request goes to the sub and their agent. What comes back gets filed and dated.
Chase unpaid invoices
Reminders that escalate with the age of the debt, the invoice attached, and a Monday aging summary that includes unbilled retainage.
The same job in other trades and industries
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