Project Manager / Coordinator & Estimator - Retail Fixtures (Full-Time Permanent)

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

TYPE OF WORK

Full Time

WAGE / SALARY

Based on experience

HOURS PER WEEK

TBD

DATE UPDATED

May 27, 2026

JOB OVERVIEW

A B2B store buildout partner delivering complete retail store projects across Canada and the USA — fixtures, refrigeration, walk-ins, millwork, racking, and kitchen equipment, coordinated through one accountable team. Primary clients are grocery chains, pharmacies, hardware stores, and specialty retailers opening or expanding locations.

This is a full-time, fully remote position, starting on the estimating team.

You will build detailed cost estimates for retail store fixture projects — primarily gondola shelving and related store equipment. Each estimate starts from a customer's specifications and a store layout, and ends as a structured, spec-accurate quote ready for review.

Day to day, that means reading layouts and specifications, performing component-level takeoffs and dimensional math, retrieving cost pricing from manufacturer tools, applying per-project pricing formulas, and assembling the estimate in QuickBooks Online. You will flag missing information, request pricing from manufacturers where needed, and submit completed estimates for approval before they reach the customer.

Estimating happens within defined product systems and manufacturer pricing — the focus is accuracy and discipline, not invention. The role also sits alongside project coordination: tracking quotes through revision and approval, keeping specifications consistent, and coordinating with the sales lead and manufacturing partners. It reports to a senior tea ---------- mber and has a clear path toward broader project responsibility for the right person.

WHO WE ARE LOOKING FOR

The trait that separates a strong estimator from an average one is accuracy under detail. A single wrong dimension or missed component flows straight into a quote and costs real money. We are looking for someone who treats spec accuracy as non-negotiable — who does the math twice, catches the gap before it ships, and flags an unknown instead of guessing it.

We also want someone who communicates with discipline — clear, direct, and proactive about surfacing problems early.

Candidates without real, hands-on estimating experience will not be considered.

REQUIREMENTS

1. Several years of hands-on cost estimating and quantity takeoff — reading drawings or layouts and translating them into priced, structured estimates. Background in construction, millwork, casework, or retail fixtures. Estimating limited to manufacturing unit costing or bill-of-materials work, with no takeoff from drawings, is not a fit for this role.

2. Strong dimensional and mathematical accuracy — comfort with component-level math, including depths, section counts, and run breakdowns, and the habit of checking work before it moves forward.

3. CAD literacy — able to read architectural floor plans and shop drawings. Experience with AutoCAD, SketchUp, or similar is expected.

4. Clear written English and disciplined communication — someone who flags assumptions and gaps rather than guessing, and coordinates cleanly across sales, manufacturers, and project staff.

5. Experience coordinating projects, schedules, or vendors alongside estimating work is a strong advantage. An engineering background — civil, structural, or architectural — is also a strong advantage.

HIRING PROCESS

1. Application review — form responses and resume are reviewed first.

2. A short interview — roughly 15 minutes, booked online

3. Second interview —around 30 minutes.

4. Offer — extended to the candidate who passes all three stages.

TO APPLY

All applications are submitted through one form. Applications sent any other way may not be reviewed.

----------

The form takes a few minutes and covers your experience, software, availability, and rate. Have your resume ready to upload.

SKILL REQUIREMENT
VIEW OTHER JOB POSTS FROM:
SHARE THIS POST
facebook linkedin
  BENCHMARKS  
Loading Time: Base Classes  0.0008
Controller Execution Time ( Jobseekers / Job )  0.0162
Total Execution Time  0.0175
  GET DATA  
No GET data exists
  MEMORY USAGE  
1,516,200 bytes
  POST DATA  
No POST data exists
  URI STRING  
jobseekers/job/Project-Manager-Coordinator-Estimator-Retail-Fixtures-Full-Time-Permanent-1655894
  CLASS/METHOD  
jobseekers/job
  DATABASE:  onlinejobs (Jobseekers:$db)   QUERIES: 13 (0.0109 seconds)  (Hide)
0.0003   SELECT *
                                
FROM exrates
                                WHERE rate_name 
'USD-PHP' 
0.0003   SELECT *
FROM `employer_jobs`
WHERE `job_id` = 1655894
 LIMIT 1 
0.0009   SELECT *
FROM `employers`
WHERE `employer_id` = 696826
 LIMIT 1 
0.0031   SELECT COUNT(DISTINCT t.id) as cnt
FROM 
`t_thread` `t`
INNER JOIN `t_message` `mON `t`.`id` = `m`.`thread_id`
INNER JOIN `t_message_employer` `eON `m`.`id` = `e`.`message_id`
LEFT JOIN `t_thread_misc` `miscON `t`.`id` = `misc`.`thread_id`
WHERE `t`.`job_id` = 1655894
AND `misc`.`idIS NULL 
0.0005   SELECT e.business_namee.logoe.websitee.rebill_datee.date_added member_datehitsDATEDIFF('2026-06-20',ej.date_added) duration_daysDATEDIFF('2026-06-20',e.rebill_date) duration_rebillej.*, e.deactivate FROM employers eemployer_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-06-20',ej.date_added) <= 14 ))
                                   AND 
e.deactivate != AND ej.deleted AND job_id '1655894' 
0.0003   SELECT *
FROM `employer_jobs_skills` `ejs`
LEFT JOIN `skills_categories` `scON `ejs`.`skill_id` = `sc`.`id`
WHERE `job_id` = 1655894 
0.0008   UPDATE employer_jobs SET hit_counts '***May-27-2026=1027***May-28-2026=116***May-29-2026=51***May-30-2026=18***May-31-2026=29***Jun-01-2026=39***Jun-02-2026=32***Jun-03-2026=20***Jun-04-2026=15***Jun-05-2026=10***Jun-06-2026=5***Jun-07-2026=9***Jun-08-2026=15***Jun-09-2026=16***Jun-10-2026=11***Jun-11-2026=17***Jun-12-2026=7***Jun-13-2026=8***Jun-20-2026=1' WHERE job_id'1655894'  
0.0006   UPDATE employer_jobs SET monthly_hits '***May-2026=1238***Jun-2026=205' WHERE job_id'1655894'  
0.0007   SELECT date_sent FROM jobseeker_sent_emails WHERE jobseeker_id '' AND job_id '1655894' AND status LIKE 'sent%' ORDER BY id DESC  
0.0003   SELECT *
FROM `employer_jobs_skills` `ejs`
LEFT JOIN `skills_categories` `scON `ejs`.`skill_id` = `sc`.`id`
WHERE `job_id` = 1655894 
0.0027   SELECT COUNT(*) AS `numrows`
FROM `employer_jobs`
WHERE `employer_id` = '696826'
AND `date_added` >= '2022-06-08' 
0.0003   select from teasers 
0.0002   SELECT FROM skill_categories WHERE skill_cat_id='' 
  HTTP HEADERS  (Show)
  SESSION DATA  (Show)
  CONFIG VARIABLES  (Show)