Construction Project Manager - North America

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

TYPE OF WORK

Full Time

SALARY

70000

HOURS PER WEEK

40

DATE UPDATED

Aug 4, 2026

JOB OVERVIEW

We are a Canadian real-estate developer. We design and build multi-unit residential projects. Our design side runs on systems that work. Our construction side runs on chat threads, scattered spreadsheets, and two people's memory — and we will be honest with you about what that costs.

The mess, plainly: multiple active builds, more in pre-construction. Subcontractor sourcing that stalls for weeks. Procurement with no single owner. Suppliers who have asked who actually speaks for us. And under all of it, the real problem: decisions flow through people without getting made. Updates get posted. Options get listed. Nobody writes "this must be d ---------- by Thursday or framing slips two weeks." Then it slips.

To be honest, this seat has existed before. It failed, more than once, the same way each time: we hired coordinators, and information passed through them with nothing added. We have since rebuilt the role around decision ownership. That is why this posting reads the way it does.

**What you'll own (outcomes, not tasks):**

1. The decision log and the weekly ops review. Every open decision across every build: owner, options, d ---------- -by date, and what slips if it's late. You run the review. Nothing stalls silently. This is your first system, live in week one.

2. One name for procurement and subs. Sourcing ? bids ? decision ? PO ? delivery. One tracker, one owner (you), automated follow-ups. When a supplier asks who speaks for Helio on a build, the answer is your name.

3. Site execution rhythm. Daily logs, two-week look-ahead schedules, punch lists the site and the trades actually trust. Site staff feed you ground truth; you turn it into a schedule people can plan around.

4. Getting the founders out of the loop. The CEO gets one page a week plus escalations. Our operations lead is out of construction approvals entirely by day 90. That sentence is a KPI, not a slogan.

**Your authority, in writing:**

You d ---------- alone: scheduling, sequencing, supplier and sub selection within an approved budget line, delivery dates, day-to-day coordination. You consult: anything touching design intent or client commitments. You escalate: budget changes beyond threshold, scope, permits, safety. If we catch ourselves re-approving your calls, the role design has failed and we fix us, not you.

**Who fits:**

You have actually run construction projects — as a PM, ops lead, senior QS, or a site engineer who grew into running the whole board — and you have a system you already trust: your look-ahead format, your procurement tracker, your daily log, your RFI and decision discipline. We are not asking you to invent our process. We are asking you to install yours here.

**What you get that most PMs never do:**

An in-house automation developer who builds whatever you spec, and an AI-native workflow — Claude sits inside everything here. You design the operating system; you do not have to wire it yourself. JobTread is our system of record (being stood up now), with Slack and Google Drive around it. You will shape that tooling. You will not start from a blank page — and you will not bolt on a new platform in week one either.

**Hours, honestly:** our suppliers, trades, and sites are in Atlantic Canada. Unsticking a delivery is phone work in their morning. Your core hours must include roughly 8am–1pm Atlantic — evening into night in Manila. If that does not fit your life, this role will not either. Better to say it here.

**A plus, not a requirement:** vendor-heavy, prefab, or off-site construction coordination. Our delivery model is moving toward fewer, larger counterparties on milestone schedules.

**Pay for proof:** salary reviews follow demonstrated ownership, not anniversaries — ask us how that has worked here. People who build core systems at Helio participate in the upside. Senior candidates: tell us your number.

**To apply** — no cover letter. Two things. Specifics win; use whatever tools you like — generic answers are obvious either way.

1. Show us the system you ran on your last project: look-ahead, procurement tracker, daily log, decision or RFI log. Sanitized screenshots or files beat descriptions. What broke first, and what did you change?

2. Scenario: a structural detail has been revised ten times across a permit set. The supplier quote that depends on it expires Friday. The architect is nine timezones away. The owner has not d ---------- . Write the exact message you would send, name who gets it, and show what you would log in your tracker.

Shortlisted candidates get a 30-minute call, then a paid trial task (3–5 hours — a real, anonymized project packet; you build the two-week look-ahead and the decision log). We check references by asking about your system, not your personality.

Put **KEYSTONE** as the first word of your application.

VIEW OTHER JOB POSTS FROM:
SHARE THIS POST
facebook linkedin
  BENCHMARKS  
Loading Time: Base Classes  0.0008
Controller Execution Time ( Jobseekers / Job )  0.0273
Total Execution Time  0.0286
  GET DATA  
No GET data exists
  MEMORY USAGE  
1,523,456 bytes
  POST DATA  
No POST data exists
  URI STRING  
jobseekers/job/Construction-Project-Manager-North-America-1702535
  CLASS/METHOD  
jobseekers/job
  DATABASE:  onlinejobs (Jobseekers:$db)   QUERIES: 13 (0.0219 seconds)  (Hide)
0.0003   SELECT *
                                
FROM exrates
                                WHERE rate_name 
'USD-PHP' 
0.0003   SELECT *
FROM `employer_jobs`
WHERE `job_id` = 1702535
 LIMIT 1 
0.0017   SELECT *
FROM `employers`
WHERE `employer_id` = 812160
 LIMIT 1 
0.0008   SELECT COUNT(*) AS `numrows`
FROM `t_thread` `t`
LEFT JOIN `t_thread_misc` `miscON `t`.`id` = `misc`.`thread_id`
WHERE `t`.`job_id` = 1702535
AND `misc`.`idIS NULL 
0.0005   SELECT e.business_namee.logoe.websitee.rebill_datee.date_added member_datehitsDATEDIFF('2026-08-09',ej.date_added) duration_daysDATEDIFF('2026-08-09',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-08-09',ej.date_added) <= 14 ))
                                   AND 
e.deactivate != AND ej.deleted AND job_id '1702535' 
0.0003   SELECT *
FROM `employer_jobs_skills` `ejs`
LEFT JOIN `skills_categories` `scON `ejs`.`skill_id` = `sc`.`id`
WHERE `job_id` = 1702535 
0.0019   UPDATE employer_jobs SET hit_counts '***Aug-04-2026=1019***Aug-05-2026=144***Aug-06-2026=60***Aug-07-2026=25***Aug-08-2026=20***Aug-09-2026=1' WHERE job_id'1702535'  
0.0008   UPDATE employer_jobs SET monthly_hits '***Aug-2026=1267' WHERE job_id'1702535'  
0.0008   SELECT date_sent FROM jobseeker_sent_emails WHERE jobseeker_id '' AND job_id '1702535' 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` = 1702535 
0.0137   SELECT COUNT(*) AS `numrows`
FROM `employer_jobs`
WHERE `employer_id` = '812160'
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)