Bookkeeper
Location: Bakersfield, CA
Pay: $25-$35/hour A growing professional services firm is looking for a Bookkeeper to join their team and play a key role in day-to-day accounting operations. This is a great opportunity for someone with full-cycle bookkeeping experience who thrives in a fast-paced, hands-on environment and enjoys variety in their work. Why You'll Love This Role:
Collaborative, supportive onsite team
Performance-based bonuses
Scheduled half-days built into the workweek
Full medical benefits and 401(k) contribution Key Responsibilities:
Manage full-cycle bookkeeping for multiple clients
Prepare and process payroll accurately and timely
Reconcile bank and general ledger accounts
Handle accounts payable and accounts receivable
Support senior accountants with general accounting functions What We're Looking For:
1-3 years of bookkeeping or accounting experience
Solid payroll processing knowledge
Proficiency with accounting software and Excel
Detail-oriented, dependable, and organized 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"; });