ACCOUNTS PAYABLE SPECIALIST: Salary Range: $52,000- $60,000 JOB SUMMARY OF ACCOUNTS PAYABLE SPECIALIST The Accounts Payable Specialist will be responsible for performing all aspects of the accounts payable cycle and may also provide other general accounting support as needed. This position will provide financial, administrative and clerical support by ensuring payments are completed and expenses are controlled by processing payments, verifying and reconciling invoices in accordance with established policies and procedures in an efficient, timely and accurate manner. RESPONSIBILITIES OF ACCOUNTS PAYABLE SPECIALIST
The Accounts Payable Specialist will review all invoices for appropriate documentation and approval prior to processing
Match invoices to purchase orders and receiving documents and enter invoices into the system
Obtain appropriate approval for invoices not containing a purchase order and enter timely into the system
Accounts Payable Specialist will respond to all vendor inquires in a timely manner
Maintain files and documentation thoroughly and accurately in accordance with company policies and procedures
Verify vendor accounts by reconciling monthly vendor statements
The Accounts Payable Specialist will assist with a variety of projects as needed KNOWLEDGE, SKILLS AND EXPERIENCE REQUIRED FOR ACCOUNTS PAYABLE SPECIALIST
2-3 years prior accounting experience with previous accounts payable experience preferred
Associates or Bachelor's degree in accounting or finance field preferred
Proficient computer skills in QuickBooks and Microsoft Office
Strong organizational skills 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"; });