Creative Financial Staffing
Bookkeeper
Dayton, OH
(Hybrid)
$50k - $60k Annually a { text-decoration: none; color: #464feb; } tr th, tr td { border: 1px solid #e6e6e6; } tr th { background-color: #f5f5f5; } About the Role Our client is looking for an experienced Bookkeeper to manage financial records for a diverse client base. This role involves maintaining accurate books, performing month-end close, and ensuring compliance with accounting standards. You'll work with a mix of organizations, including a strong presence in the non-profit sector. Responsibilities
* Handle bookkeeping for multiple clients.
* Perform month-end close and reconciliations.
* Ensure compliance with GAAP principles.
* Use QuickBooks Online for all accounting tasks.
* Communicate effectively with clients and internal teams.
Requirements
* 2+ years of proven bookkeeping experience.
* Proficiency in QuickBooks Online.
* Solid understanding of GAAP.
Preferred Skills
* Experience with non-profit organizations.
* Familiarity with the latest QuickBooks Online interface.
* Knowledge of TaxDome or similar platforms.
* Background in education sector accounting.
What's Being Offered
* Flexible workload and scheduling.
* Opportunity to work with mission-driven organizations.
* Supportive team environment.
#LI-AE6
#INJAN2026
#INDEC2025
EB-2230165247 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
Dayton, OH
(Hybrid)
$50k - $60k Annually a { text-decoration: none; color: #464feb; } tr th, tr td { border: 1px solid #e6e6e6; } tr th { background-color: #f5f5f5; } About the Role Our client is looking for an experienced Bookkeeper to manage financial records for a diverse client base. This role involves maintaining accurate books, performing month-end close, and ensuring compliance with accounting standards. You'll work with a mix of organizations, including a strong presence in the non-profit sector. Responsibilities
* Handle bookkeeping for multiple clients.
* Perform month-end close and reconciliations.
* Ensure compliance with GAAP principles.
* Use QuickBooks Online for all accounting tasks.
* Communicate effectively with clients and internal teams.
Requirements
* 2+ years of proven bookkeeping experience.
* Proficiency in QuickBooks Online.
* Solid understanding of GAAP.
Preferred Skills
* Experience with non-profit organizations.
* Familiarity with the latest QuickBooks Online interface.
* Knowledge of TaxDome or similar platforms.
* Background in education sector accounting.
What's Being Offered
* Flexible workload and scheduling.
* Opportunity to work with mission-driven organizations.
* Supportive team environment.
#LI-AE6
#INJAN2026
#INDEC2025
EB-2230165247 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