How to clean up stale deals in your pipeline as Construction and Contractor Founders

Sales & CRMFor Construction and Contractor Founders2 apps10 steps~20 min to set up

You've got 15 bids out right now and you honestly can't remember which ones you followed up on and which ones went cold three weeks ago. Your 'pipeline' is a tab in Excel with color coding that made sense in January. The GC on the Riverside project hasn't returned two calls — is that deal dead or just slow? You're quoting new work while jobs in your 'pending' column are six months stale because nobody archived them. And when you finally do a cleanup, you're digging through Gmail threads and a Buildertrend log just to figure out the last touchpoint. There's no CRM that understands what 'site walk done, waiting on structural drawings' actually means.

Sales & CRMFor Construction and Contractor Founders2 apps10 steps~20 min to set up
Outcome

What you'll set up

A pipeline view that shows every active bid, last-contact date, and next action — customized to your actual stages (estimating, site walk, proposal sent, verbal yes, contract out)
An automated weekly digest that flags deals with no activity in 14+ days, so stale bids get a follow-up call before the GC hires someone else
A single place where your Gmail threads, deal notes, and contact history are linked to each job — so you can answer 'when did I last talk to Torres Construction?' in two seconds
The Starch recipe

Apps, data, and prompts

The combination of Starch apps, the data sources they pull from, and the prompts you use to drive them.

Apps used
Data sources & config

The CRM app is built from scratch using natural-language authoring — describe your pipeline stages and fields, Starch builds it. Gmail is connected as a scheduled-sync provider, so Starch syncs your email threads on a schedule and links conversations to deal records. For field software like Buildertrend or CoConstruct that doesn't have a direct sync, Starch automates those sites through your browser — no API needed — to pull current job status and last-activity timestamps into your deal records.

Prompts to copy
Build me a CRM for a residential GC. Stages are: Estimating, Site Walk Scheduled, Proposal Sent, Verbal Award, Contract Out, Contract Signed, Lost, and No-Bid. Fields I need on each deal: job address, project type (new build / reno / addition), bid amount, estimated start date, GC or owner contact, last-contact date, and a notes field for where things stand. Flag any deal where last-contact date is more than 14 days ago.
Connect my Gmail and show me every email thread linked to deals in 'Proposal Sent' or 'Verbal Award' that hasn't had a reply in the last 10 days. Draft a short follow-up for each one — something like 'Hey [name], wanted to check in on the [address] project — still moving forward?' Keep it one paragraph, first name only.
Run these in Starch → or paste them into your favorite agent
Walkthrough

Step-by-step

1 Connect Gmail as a scheduled-sync provider so Starch syncs your email history on a schedule — this becomes the backbone for last-contact tracking across every deal.
2 Tell Starch to build your CRM: name your pipeline stages exactly as you use them (Estimating, Site Walk, Proposal Sent, Verbal Award, Contract Out, Signed, Lost) and the custom fields that matter to you — job address, project type, bid dollar amount, GC contact, expected start.
3 If you're currently tracking bids in a spreadsheet, paste or upload it into Starch and tell it to import and clean up your existing deal list — it will map your columns to the new schema and flag duplicates.
4 For any field software you use (Buildertrend, CoConstruct, or similar), Starch automates those sites through your browser to pull current job status, last login activity, and active project flags into your deal records — no API needed.
5 Set a staleness rule: 'Flag any deal in Proposal Sent, Verbal Award, or Contract Out where the last-contact date is more than 14 days ago and there's no task assigned to it.'
6 Use the Email Agent to scan your synced Gmail threads and surface every deal-related conversation that's gone quiet — it summarizes the thread so you don't have to re-read four emails just to remember where things stood.
7 For each flagged stale deal, have the Email Agent draft a one-paragraph follow-up — it uses the deal address, the contact's first name, and the last note in the thread so it doesn't read like a template blast.
8 Review the drafts, send the ones that make sense, and mark the hopeless ones as Lost with a reason code (client went with someone else, project on hold, no response after 3 attempts).
9 Set a Monday morning automation: 'Every Monday at 7am, pull all deals with no activity in the last 7 days and send me a Slack message listing them with the last touchpoint and bid amount.' This replaces the Friday-at-6pm panic review.
10 Once a quarter, tell Starch: 'Archive all Lost and No-Bid deals older than 90 days and give me a summary of win rate by project type and average days from Proposal Sent to Contract Signed.' Use that number to decide where to focus your estimating time.

See this running on Starch

Connect your tools, describe what you want, and the agent builds it. Closed beta is free.

Try it on Starch →
Worked example

Pipeline cleanup — April 2026, 9-job GC

Sample numbers from a real run
Deals in 'Proposal Sent' stage6
Deals with no activity > 14 days4
Deals with no linked Gmail thread found2
Total bid value of stale deals487,000
Deals converted after Starch follow-up in first week2
Bid value recovered / confirmed active214,000

Marcus runs a 12-person framing and rough carpentry outfit. In April he had six bids in 'Proposal Sent' going into a cleanup session. Starch flagged four of them as stale — last Gmail thread over 14 days old, nothing in Buildertrend, no task assigned. Two of those four had no email thread at all, which meant Marcus had been tracking them from a phone call he never logged. Total stale bid value: $487,000. The Email Agent drafted follow-ups for each — using the job address and the GC's first name pulled from the deal record. Marcus sent three, archived one (he already knew that GC went with a competitor). Within five days, two GCs responded: the $148k Elmwood Ave addition confirmed it was moving forward and the $66k Riverton garage conversion asked for a revised scope. The other one went to Lost. That's $214k of pipeline that would have aged out of Marcus's awareness entirely if the Monday alert hadn't surfaced it.

Measurement

How you'll know it's working

Days from Proposal Sent to first follow-up (target: under 5 business days)
Stale deal rate: percentage of open bids with no activity in 14+ days
Win rate by project type (new build vs. reno vs. addition) — so you know where your time is worth spending
Average days from Proposal Sent to Contract Signed — your actual sales cycle, not a guess
Total dollar value of bids in active stages vs. bids gone quiet for 30+ days
Comparison

What this replaces

The other ways teams handle this today, and how the Starch version compares.

Excel or Google Sheets bid tracker
Free and already in use, but it doesn't pull in Gmail threads, doesn't alert you when something goes cold, and requires manual updates every time something changes.
HubSpot free tier
Handles contacts and pipeline well, but the default schema isn't built for construction (no job address field, no bid amount by project type), and getting Gmail threads linked correctly takes real setup time.
Buildertrend's built-in lead tracking
Works if you're already in Buildertrend all day, but the lead tools are thin compared to a real pipeline view, and there's no cross-job staleness alert or automated follow-up drafting.
Procore CRM / preconstruction module
Purpose-built for construction sales, but priced and structured for commercial shops with 50+ people — overkill and expensive for a sub-20 crew operation.
On Starch RECOMMENDED

One platform — crm, email agent all running on connected data. Setup in plain English; numbers stay current via scheduled syncs and live agent queries.

Try it on Starch →
FAQ

Frequently asked questions

I use Buildertrend for job management but it's not in your integration list. Can Starch still pull data from it?
Yes. Starch automates Buildertrend through your browser — no API needed. You log in once, and Starch can read job status, last-activity dates, and project notes from your Buildertrend account to populate deal records in your CRM. It's not a scheduled sync, but it runs when your automation triggers it.
What if my current 'pipeline' is just a color-coded Excel sheet?
Paste it in or upload it. Tell Starch: 'Here's my current bid list — import it into the CRM I just built, map the columns to the right fields, and flag anything that looks like a duplicate or a deal older than 60 days with no stage progression.' It'll do the migration and surface the obvious cleanup work.
Will the follow-up emails actually sound like me, or will they obviously come from a robot?
The Email Agent drafts based on your actual Gmail history — it reads how you've written to that contact before and matches the tone. Short, first name, job address, one clear ask. You review and send; you're not auto-sending anything. If a draft looks off, edit it before it goes.
Does Starch store my QuickBooks or banking data?
If you connect Plaid or QuickBooks as scheduled-sync providers, Starch syncs that data on a schedule and stores it in Starch's database so your dashboards and reports can run against it. It's not archived long-term analytics — it's a live operational view. Worth knowing: Starch is not SOC 2 Type II certified yet, so if your accountant has strict data handling requirements, ask us before connecting financial accounts.
What happens to deals I mark as Lost — can I get a report on why I'm losing bids?
Yes, if you track a reason-code field when you mark something Lost. Tell Starch to add a 'Lost reason' dropdown to your pipeline (went with lower bid, project on hold, no response, scope not a fit) and then ask it: 'Show me my Lost deals from the last 6 months broken down by reason and project type.' That's the report that tells you whether your pricing is the issue or your follow-up is.
I don't want a weekly Slack message — can the alert come via email instead?
Yes. When you set up the Monday automation, just tell Starch to send the digest to your Gmail address instead of Slack. Or both. The output format is part of what you describe when you build the automation.

Ready to run clean up stale deals in your pipeline on Starch?

Request closed-beta access. Everything is free during beta.

You're on the list! We'll be in touch soon.