Construction Operations Manager — Systems Builder

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

TYPE OF WORK

Full Time

WAGE / SALARY

60000

HOURS PER WEEK

40

DATE UPDATED

Jun 7, 2026

JOB OVERVIEW

We are a small Canadian real-estate developer in Nova Scotia. We design and build multi-unit residential projects. Our design side runs on systems that work. Our construction side doesn't yet — and we're going to be honest with you about that.

The mess, plainly: multiple active builds. Subcontractor sourcing that stalls for weeks because we lack options. Procurement scattered across spreadsheets. Supplier outreach so uncoordinated that suppliers have asked who actually speaks for us. Site records living in chat threads and people's memory.

This job is not to follow our process. There isn't one. The job is to build it, then run it with the team.

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

A subcontractor & supplier pipeline — sourcing ? bids ? decision ? contract, visible at every stage
Procurement that doesn't stall: one owner (you), clear status, automated follow-ups
Site execution rhythm: daily logs, punch lists, schedules people can actually trust
The tooling is your call — ClickUp, Sheets, Airtable, Quickbase, GoHighLevel, n8n, anything. We don't require coding. We require systems that keep running when you're not pushing them.

How we work: Remote, full-time, Atlantic Time overlap. You report directly to the CEO, with real authority from day one. We are AI-native — Claude sits inside every workflow here and we'll expect it in yours. We pay for proof, fast: salary reviews follow demonstrated ownership, not anniversaries — ask us to show you how that has worked here. People who build core systems at Helio participate in the upside.

Who tends to fit: estimators, site engineers, QS, construction PMs, and ops leads who got so frustrated with manual chaos that they built trackers, databases, SOPs, or automations nobody asked for. If you have never voluntarily systematized something, this role will frustrate you.

To apply — no cover letter. Answer two questions (bullet points fine; specifics win; please don't polish it with AI):

Show us something you built that nobody asked you to build — a tracker, database, process, automation, or small business. A link beats a description. What broke first, and what did you change?

If you took over construction operations for a company you'd never seen, what would you need to learn in week one — and how would you learn it?

Put FOUNDATION 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.0601
Total Execution Time  0.0615
  GET DATA  
No GET data exists
  MEMORY USAGE  
1,519,136 bytes
  POST DATA  
No POST data exists
  URI STRING  
jobseekers/job/Construction-Operations-Manager-Systems-Builder-1663255
  CLASS/METHOD  
jobseekers/job
  DATABASE:  onlinejobs (Jobseekers:$db)   QUERIES: 13 (0.0542 seconds)  (Hide)
0.0003   SELECT *
                                
FROM exrates
                                WHERE rate_name 
'USD-PHP' 
0.0003   SELECT *
FROM `employer_jobs`
WHERE `job_id` = 1663255
 LIMIT 1 
0.0019   SELECT *
FROM `employers`
WHERE `employer_id` = 812160
 LIMIT 1 
0.0317   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` = 1663255
AND `misc`.`idIS NULL 
0.0005   SELECT e.business_namee.logoe.websitee.rebill_datee.date_added member_datehitsDATEDIFF('2026-06-22',ej.date_added) duration_daysDATEDIFF('2026-06-22',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-22',ej.date_added) <= 14 ))
                                   AND 
e.deactivate != AND ej.deleted AND job_id '1663255' 
0.0003   SELECT *
FROM `employer_jobs_skills` `ejs`
LEFT JOIN `skills_categories` `scON `ejs`.`skill_id` = `sc`.`id`
WHERE `job_id` = 1663255 
0.0006   UPDATE employer_jobs SET hit_counts '***Jun-07-2026=748***Jun-08-2026=150***Jun-09-2026=95***Jun-10-2026=36***Jun-11-2026=15***Jun-12-2026=14***Jun-13-2026=5***Jun-14-2026=7***Jun-15-2026=15***Jun-16-2026=20***Jun-17-2026=19***Jun-18-2026=14***Jun-19-2026=3***Jun-20-2026=1***Jun-22-2026=2' WHERE job_id'1663255'  
0.0006   UPDATE employer_jobs SET monthly_hits '***Jun-2026=1144' WHERE job_id'1663255'  
0.0008   SELECT date_sent FROM jobseeker_sent_emails WHERE jobseeker_id '' AND job_id '1663255' 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` = 1663255 
0.0163   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)