Post Job Free
Sign in

Controller

Company:
Creative Financial Staffing
Location:
New Albany, OH, 43054
Posted:
February 10, 2026
Apply

Description:

CONTROLLER

Client providing 3rd party language services is seeking a Controller to support year-end close, audit preparation, and ongoing accounting oversight across a complex environment. Salary DOE, $80-$250k ABOUT OUR CLIENT

Global provider of services supporting a variety of language programs

Known for a culture of accountability, agility, and supporting teams operating in high-stakes environments

Collaborative, fast-moving environment where financial accuracy directly supports mission success

Opportunity to lead critical close, compliance, and audit functions within a highly regulated setting

The Controller position offers a high-level of agency and flexibility - 100% Remote! RESPONSIBILITIES OF THE CONTROLLER

The Controller will lead November and December close activities and oversee year-end close

The Controller will prepare audit and tax documentation and coordinate audit workflows

Oversee ongoing accounting operations including treasury, banking, and global payments

Ensure compliance with FAR, CAS, and government audit requirements while guiding the accounting team PREFERRED QUALIFICATIONS FOR THE CONTROLLER

Must have 10+ years of progressive accounting experience

Must hold an active CPA; exceptional non-CPA candidates may be considered

Must have experience with FAR and CAS compliance

Experience with DCAA/DCMA audits is a plus, not a requirement

Government contracting, audit/compliance, or treasury/global experience is a plus Salary DOE, $80-$250k 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