Post Job Free
Sign in

Program Compliance Coordinator

Company:
Creative Financial Staffing
Location:
Columbus, OH, 43215
Posted:
November 01, 2025
Apply

Description:

PROGRAM COMPLIANCE COORDINATOR ROLE WHY APPLY FOR THE PROGRAM COMPLIANCE COORDINATOR ROLE:

Our client is a prominent non-profit with widespread community impact in the Columbus area looking to add a Program Compliance Coordinator to their team. PRIMARY RESPONSIBILITIES OF THE PROGRAM COMPLIANCE COORDINATOR:

The Program Compliance Coordinator serves as the liaison coordinating efforts of programming and finance staff to ensure compliance with procurement, program monitoring for internal and external stakeholders, and recommends actions necessary to resolve issues/concerns.

Works closely with Program Managers and outside funding sources to monitor grant status.

Works closely with the finance team monitoring and compiling program specific grant related documentation to produce monthly, quarterly program reports.

The Program Compliance Coordinator will prepare, review, and monitor grant and governmental agency program reporting on a monthly, quarterly, and annual basis.

Reviews and document grantee and contract requirements.

Assists Program Manager in monitoring and realignment of grant funds as needed to ensure grant compliance and outcomes.

Prepares for and conducts grantor program monitoring reviews. PREFERRED QUALIFICATIONS OF THE PROGRAM COMPLIANCE COORDINATOR:

Requires a bachelor's degree in business, with 2-4 years' direct experience working with grant management and overseeing program performance.

5 or more years' experience in Microsoft Office, with an emphasis on Excel.

Experience in evaluation of grant performance

Must have a working knowledge of nonprofit business operations, good written and oral communication skills, and be able to work as part of a team. The salary range is $60,000 to $70,000 DOE. This is an in-office position. 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