Bookkeeper - $55,000-$65,000 Columbus, OH Full-Time Are you a detail-oriented accounting professional who thrives on accuracy and organization? Our growing company in Columbus is seeking a Bookkeeper to join our team and take ownership of our day-to-day financial operations. This is a great opportunity to make an immediate impact in a stable, team-oriented environment with room to grow. What You'll Do:
Manage daily accounting transactions, including accounts payable and receivable, bank reconciliations, and general ledger entries
Prepare and maintain accurate financial records, ensuring compliance with company policies and accounting standards
Assist with month-end and year-end close processes
Support budgeting and forecasting by providing accurate and timely financial data
Partner closely with leadership to ensure smooth financial operations and support decision-making What We're Looking For:
2+ years of bookkeeping or accounting experience
Proficiency with QuickBooks or similar accounting software
Strong attention to detail and organizational skills
Ability to work independently and meet deadlines
Excellent communication skills and a collaborative mindset What We Offer:
Competitive salary range of $55,000-$65,000
Supportive, team-focused environment
Growth opportunities within the accounting and finance team
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"; });