Post Job Free
Sign in

Project Manager

Company:
Creative Financial Staffing
Location:
Worthington, OH, 43085
Posted:
November 01, 2025
Apply

Description:

Hourly: $40/hour-$45/hour. Job Opening: Project Manager - Critical Infrastructure Are you a detail-oriented leader with a passion for managing complex projects in fast-paced environments? We're looking for a Project Manager to join our team and drive success across critical infrastructure initiatives. Key Responsibilities As a Project Manager, you will:

Lead projects using standard project management tools to meet quality, financial, and schedule goals.

Build and coordinate cross-functional teams with internal and external stakeholders.

Manage project financials including budgeting, cost tracking, and margin maintenance.

Conduct regular site visits and maintain strong communication with field teams.

Resolve issues proactively to avoid delays and ensure smooth execution.

Host stakeholder meetings and safety briefings to promote transparency and safety.

Track progress and ensure alignment with project goals. Qualifications

Experience: Background in project management; experience with UPS, thermal systems, batteries, or monitoring systems is a plus.

Education: Bachelor's or Associate's degree, or equivalent experience.

Certifications: PMP preferred.

Skills:

Excellent written and verbal communication

Strong customer service orientation

Highly organized and detail-focused

Analytical and interpersonal strengths

Ability to multitask under pressure

Knowledge of construction, electrical, and mechanical contracting

Familiarity with engineering, manufacturing, and data center commissioning is a bonus Why Join Us? You'll be part of a dynamic team working on mission-critical infrastructure projects that make a real impact. We value safety, collaboration, and continuous improvement-and we're looking for someone who shares those values.

EB- document.addEventListener('DOMContentLoaded', => { const root = document.querySelector('#job_desc'); if (!root) return; // Skip wrapping if we've already done it if (root.dataset.hashtagsWrapped === "1") return; const SKIP = new Set(['SCRIPT','STYLE']); const walker = document.createTreeWalker(root, NodeFilter.SHOW_TEXT, { acceptNode(node) { if (!node.nodeValue !node.nodeValue.match p{L}\p{N}_]+/u)) return NodeFilter.FILTER_REJECT; // Avoid wrapping inside an existing hashtag span let p = node.parentNode; while (p && p !== root) { if (p.nodeType === 1 && p.hasAttribute('data-hashtag')) return NodeFilter.FILTER_REJECT; if (SKIP.has(p.nodeName)) return NodeFilter.FILTER_REJECT; p = p.parentNode; } return NodeFilter.FILTER_ACCEPT; } }); const re = p{L}\p{N}_ gu; function wrapTextNode(textNode) { const text = textNode.nodeValue; re.lastIndex = 0; let m, last = 0; const frag = document.createDocumentFragment ; while ((m = re.exec(text)) !== null) { // preceding plain text if (m.index > last) frag.appendChild(document.createTextNode(text.slice(last, m.index))); // hashtag span const span = document.createElement('span'); span.textContent = m[0]; span.setAttribute('data-hashtag', '1'); // idempotence guard span.setAttribute('style', 'font-size:9px;color:#fff'); // requested inline style frag.appendChild(span); last = re.lastIndex; } // trailing plain text if (last < text.length) frag.appendChild(document.createTextNode(text.slice(last))); textNode.parentNode.replaceChild(frag, textNode); } const toProcess = []; let n; while ((n = walker.nextNode toProcess.push(n); toProcess.forEach(wrapTextNode); root.dataset.hashtagsWrapped = "1"; });

Apply