Construction Project Manager — Canadian Property Developer, Remote

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

TYPE OF WORK

Full Time

SALARY

60000

HOURS PER WEEK

40

DATE UPDATED

Sep 23, 2026

JOB OVERVIEW

We are a property developer Canada. We design, build and hold our own residential buildings — wood-frame apartment and condo buildings. We run the company on software we write ourselves, and we are building AI into how we design, coordinate and record.

The problem, in plain terms. Construction has no owner. Schedules exist but nobody defends them, so a week slips and we find out when it has already cost us. Trades and suppliers set their own dates. Changes get made on site and priced afterwards, if at all. Questions from the field wait days for an answer because no one owns the log. Our founder ends up inside every project decision, which does not scale past the number of buildings we already have.

We have just finished putting the system in — ClickUp and JobTread, with our own tooling around them. What we need now is the person who runs projects inside it and holds people to what it says.

WHAT YOU OWN

1. The construction programme. A real schedule per project with a critical path, a weekly look-ahead, and named owners against dates. You defend it, and you raise the alarm early rather than reporting a slip after it has happened.

2. Cost control against the budget. Committed versus forecast versus actual, per cost code. You know where the project stands this week, not at month end.

3. Subcontractors and suppliers. Scoping, buyout, award, mobilisation, performance. You hold dates with people who do not report to you, and you send work back when it is not right.

4. Change control. Every change priced, approved and issued before it is built, including changes that come from us. Nothing gets built on a verbal.

5. RFIs, submittals and shop drawings. Logged, dated, chased and closed, with our design side.

6. Authorities and inspections. Permit conditions tracked, inspections booked and passed, deficiencies closed. You know what the inspector wants before they arrive.

7. Site quality and deficiencies. Punch lists that actually close, and a standard that does not drift when the schedule is tight.

8. The project record. Daily logs, photos, decisions and site instructions, kept in ClickUp and JobTread so anyone can reconstruct what happened and why.


- Owned a construction schedule and a budget on a real project, and carried the consequences when one of them moved.
- Issued and priced change orders, and held the line on at least one you refused.
- Run RFIs and submittals to closure with a design team.
- Held a subcontractor to a date when they did not want to be held, and had that conversation yourself.
- Worked inside a real construction management platform — Procore, Buildertrend, JobTread, CoConstruct, Autodesk Build or similar. If you have set one up or moved a company onto one, say so; it matters.
- Already using AI in your work, and fast at adopting new tools. Someone who waits to be trained will not keep up here, and we say that plainly because it matters more than most items on this page.
- Remote-experienced, with a working overlap into the Atlantic Canada business day — roughly 7pm to midnight Manila time.

Useful, not required: multi-unit wood-frame; Canadian codes (NBC Part 9) or Atlantic Canada municipalities; heritage renovation; having worked for a developer rather than a general contractor.

NOT A FIT

A coordinator who tracked status and escalated decisions to someone else. An estimator who has never run a site. A drafter who supported North American projects from a desk abroad. Anyone whose answer to a missed date is "I followed up." Anyone who describes a platform they have only watched someone else use.

HOW TO APPLY

Start your reply with the word BENCHMARK. Applications without it are not read.

Answer these six. Short is fine. Specific is essential — name the project, the jurisdiction, the trade, the number, the date. Vague answers are the fastest way out.

1. A schedule you owned that slipped. What slipped, how you found out, what it cost in days and dollars, and what you changed afterwards so it did not happen the same way twice.

2. A change order from start to finish. Who raised it, how you priced it, who approved it, how the trades were told, and what happened to the contract sum.

3. A subcontractor who missed dates twice. What you actually said to them — the words you used — and what you did on the third occasion.

4. A failed inspection, or a permit condition that nearly stopped you. Which authority, what the issue was, and how you closed it.

5. The construction management platform you know best. Did you inherit it or set it up? Name one thing about it that does not work, and what you did about that.

6. What did you not have authority over on that project? Name the decisions that were somebody else's, and who made them.

Also tell us: your monthly rate, your notice period, and the earliest date you could start.

One request, and we mean it kindly. If your honest answer to any of the above is that you tracked, reported or escalated rather than d ---------- , write that. We are hiring for a specific thing and we would rather read one true "that wasn't mine" than five confident paragraphs. We check answers against CVs and profiles, and a claim that does not survive that check ends an application faster than the gap it was hiding.

OUR PROCESS, AND HOW FAST

We read replies the same day. Shortlisted candidates get one call with our founder and our chief of staff. Then a short, practical exercise on a real situation — no more than an hour. Then an offer. The role starts at PHP 60,000 a month and the number moves on productivity, not seniority or time served. We aim to make an offer within two weeks of your application.

VIEW OTHER JOB POSTS FROM:
SHARE THIS POST
facebook linkedin
  BENCHMARKS  
Loading Time: Base Classes  0.0011
Controller Execution Time ( Jobseekers / Job )  0.0605
Total Execution Time  0.0624
  GET DATA  
No GET data exists
  MEMORY USAGE  
1,518,632 bytes
  POST DATA  
No POST data exists
  URI STRING  
jobseekers/job/Construction-Project-Manager-Canadian-Property-Developer-Remote-1736828
  CLASS/METHOD  
jobseekers/job
  DATABASE:  onlinejobs (Jobseekers:$db)   QUERIES: 13 (0.0526 seconds)  (Hide)
0.0004   SELECT *
                                
FROM exrates
                                WHERE rate_name 
= 'USD-PHP' 
0.0014   SELECT *
FROM `employer_jobs`
WHERE `job_id` = 1736828
 LIMIT 1 
0.0052   SELECT *
FROM `employers`
WHERE `employer_id` = 812160
 LIMIT 1 
0.0008   SELECT COUNT(*) AS `numrows`
FROM `t_thread` `t`
LEFT JOIN `t_thread_misc` `misc` ON `t`.`id` = `misc`.`thread_id`
WHERE `t`.`job_id` = 1736828
AND `misc`.`id` IS NULL 
0.0006   SELECT e.business_name, e.logo, e.website, e.rebill_date, e.date_added member_date, hits, DATEDIFF('2026-10-06',ej.date_added) duration_days, DATEDIFF('2026-10-06',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-06',ej.date_added) <= 14 ))
                                   AND 
e.deactivate != 1 AND ej.deleted = 0 AND job_id = '1736828' 
0.0007   SELECT *
FROM `employer_jobs_skills` `ejs`
LEFT JOIN `skills_categories` `sc` ON `ejs`.`skill_id` = `sc`.`id`
WHERE `job_id` = 1736828 
0.0009   UPDATE employer_jobs SET hit_counts = '***Sep-23-2026=384***Sep-24-2026=153***Sep-25-2026=66***Sep-26-2026=45***Sep-27-2026=28***Sep-28-2026=58***Sep-29-2026=35***Sep-30-2026=39***Oct-01-2026=24***Oct-02-2026=13***Oct-03-2026=11***Oct-05-2026=1***Oct-06-2026=1' WHERE job_id= '1736828'  
0.0007   UPDATE employer_jobs SET monthly_hits = '***Sep-2026=808***Oct-2026=50' WHERE job_id= '1736828'  
0.0042   SELECT date_sent FROM jobseeker_sent_emails WHERE jobseeker_id = '' AND job_id = '1736828' AND status LIKE 'sent%' ORDER BY id DESC  
0.0003   SELECT *
FROM `employer_jobs_skills` `ejs`
LEFT JOIN `skills_categories` `sc` ON `ejs`.`skill_id` = `sc`.`id`
WHERE `job_id` = 1736828 
0.0366   SELECT COUNT(*) AS `numrows`
FROM `employer_jobs`
WHERE `employer_id` = '812160'
AND `date_added` >= '2022-06-08' 
0.0004   select * from teasers 
0.0003   SELECT * FROM skill_categories WHERE skill_cat_id='' 
  HTTP HEADERS  (Show)
  SESSION DATA  (Show)
  CONFIG VARIABLES  (Show)