Senior Construction Estimator (Bid Review, Pricing, Estimating Lead)

Please login or register as jobseeker to apply for this job.

TYPE OF WORK

Full Time

SALARY

$10 - $15/hr USD

HOURS PER WEEK

40

DATE UPDATED

Oct 3, 2026

JOB OVERVIEW

We're a US commercial landscape and irrigation contractor working in multiple states. We need a senior estimator to lead our estimating department. Our takeoff specialist handles most of the takeoffs and detail work; you'll take each bid from there and make sure it's complete, accurate and priced right before it goes out.

What you'll do:
- Review takeoffs for accuracy and completeness
- Read every relevant spec section and addendum carefully so nothing is missed
- Set and check pricing, labor, material costs and margins
- Request, compare and level subcontractor and supplier quotes
- Do the final review on every bid before submission
- Help d ---------- which bids we pursue
- Lead and check the work of our takeoff staff
We'll train you on our pricing and processes, but you'll own the estimating function.

Requirements:
- 10+ years of construction estimating (general construction is fine; landscape, irrigation or site work is a plus)
- Experience estimating for US clients, or clients in countries with similar bidding (Canada, Australia, etc.)
- Strong at reading plans, specs and addenda, and at catching scope gaps
- Experience with PlanSwift or similar. We use ZZTakeoff, which is very similar to PlanSwift.
- Comfortable with Excel, Adobe Acrobat, ---------- and AI tools (ChatGPT, Claude, Grok)
- Able to work independently and own results without being micromanaged
- At least 2-4 hours of overlap daily with US Mountain Time
- Clear written English and reliable internet

To apply, start with the word "ADDENDUM" and answer:
1. How many years have you worked as an estimator, and for what types of contractors and clients (which countries)?
2. Tell us about a bid where you caught a missed scope item, spec requirement or addendum change. What was it, and what would it have cost?
3. Walk us through how you review someone else's takeoff and estimate before it goes out.
4. How do you compare and level sub or supplier quotes that don't cover the same scope?
5. What takeoff and estimating software have you used, and for how long?
6. What hours (in Philippine time) can you work?
7. What is your expected hourly rate in USD?
8. Share a Google Drive (or similar) link to 1-3 sample estimates or proposals you prepared or oversaw.

VIEW OTHER JOB POSTS FROM:
SHARE THIS POST
facebook linkedin
  BENCHMARKS  
Loading Time: Base Classes  0.0013
Controller Execution Time ( Jobseekers / Job )  0.0291
Total Execution Time  0.0332
  GET DATA  
No GET data exists
  MEMORY USAGE  
1,499,272 bytes
  POST DATA  
No POST data exists
  URI STRING  
jobseekers/job/Senior-Construction-Estimator-Bid-Review-Pricing-Estimating-Lead-1742851
  CLASS/METHOD  
jobseekers/job
  DATABASE:  onlinejobs (Jobseekers:$db)   QUERIES: 13 (0.0184 seconds)  (Hide)
0.0024   SELECT *
                                
FROM exrates
                                WHERE rate_name 
= 'USD-PHP' 
0.0013   SELECT *
FROM `employer_jobs`
WHERE `job_id` = 1742851
 LIMIT 1 
0.0016   SELECT *
FROM `employers`
WHERE `employer_id` = 830317
 LIMIT 1 
0.0006   SELECT COUNT(*) AS `numrows`
FROM `t_thread` `t`
LEFT JOIN `t_thread_misc` `misc` ON `t`.`id` = `misc`.`thread_id`
WHERE `t`.`job_id` = 1742851
AND `misc`.`id` IS NULL 
0.0008   SELECT e.business_name, e.logo, e.website, e.rebill_date, e.date_added member_date, hits, DATEDIFF('2026-10-04',ej.date_added) duration_days, DATEDIFF('2026-10-04',e.rebill_date) duration_rebill, ej.*, e.deactivate FROM employers e, employer_jobs ej WHERE e.employer_id = ej.employer_id AND
                                   ((
e.user_level >= '500' AND ej.date_added <= e.rebill_date)
                                   OR 
e.employer_id = '' OR (ej.date_approved <> '2000-01-01' and DATEDIFF('2026-10-04',ej.date_added) <= 14 ))
                                   AND 
e.deactivate != 1 AND ej.deleted = 0 AND job_id = '1742851' 
0.0007   SELECT *
FROM `employer_jobs_skills` `ejs`
LEFT JOIN `skills_categories` `sc` ON `ejs`.`skill_id` = `sc`.`id`
WHERE `job_id` = 1742851 
0.0010   UPDATE employer_jobs SET hit_counts = '***Oct-03-2026=1151***Oct-04-2026=1' WHERE job_id= '1742851'  
0.0007   UPDATE employer_jobs SET monthly_hits = '***Oct-2026=1152' WHERE job_id= '1742851'  
0.0010   SELECT date_sent FROM jobseeker_sent_emails WHERE jobseeker_id = '' AND job_id = '1742851' AND status LIKE 'sent%' ORDER BY id DESC  
0.0009   SELECT *
FROM `employer_jobs_skills` `ejs`
LEFT JOIN `skills_categories` `sc` ON `ejs`.`skill_id` = `sc`.`id`
WHERE `job_id` = 1742851 
0.0055   SELECT COUNT(*) AS `numrows`
FROM `employer_jobs`
WHERE `employer_id` = '830317'
AND `date_added` >= '2022-06-08' 
0.0008   select * from teasers 
0.0012   SELECT * FROM skill_categories WHERE skill_cat_id='' 
  HTTP HEADERS  (Show)
  SESSION DATA  (Show)
  CONFIG VARIABLES  (Show)