Job Title: Bookkeeper
Salary: $50,000-$60,000 Are you an organized and detail-focused professional looking to bring your accounting skills to a dynamic workplace? We're hiring a Bookkeeper to join our growing team! As a Bookkeeper, you will play a vital role in maintaining accurate financial records and supporting the overall efficiency of our finance department. We're looking for a proactive and reliable Bookkeeper who thrives in a fast-paced environment and has a passion for numbers, accuracy, and process improvement. If this sounds like you, we encourage you to apply. Bookkeeper Responsibilities:
Complete timely and accurate bank reconciliations to verify the integrity of financial data.
Handle accounts payable, including invoice entry, vendor communication, and payment processing.
Perform data entry to maintain up-to-date and precise financial records.
Assist with the preparation of financial reports and statements for management review.
Ensure compliance with internal accounting policies and procedures.
Collaborate with the finance team to identify and implement process improvements.
Take full ownership of daily bookkeeping duties as a dependable Bookkeeper. Bookkeeper Qualifications:
Proven experience as a Bookkeeper or in a similar financial role.
Solid understanding of accounting principles, with strong attention to detail.
High proficiency in data entry and accuracy in recordkeeping.
Strong organizational skills and the ability to manage multiple tasks efficiently.
Excellent communication skills and the ability to work well with others.
Proficiency with accounting software and Microsoft Office Suite. Education and Experience:
Minimum of a high school diploma; coursework or certification in accounting is a plus.
#FinanceJobs
#AccountingCareers #INSEP2025
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"; });