Administrative Assistant - $22-$25/hr Westerville, OH Onsite We're looking for a highly organized, dependable Administrative Assistant who enjoys keeping things running smoothly and supporting a busy team. If you're the type of person who notices details, stays ahead of deadlines, and likes being the go-to problem solver in the office - this could be a great fit. What you'll do:
• Provide day-to-day administrative support to leadership and team members
• Manage calendars, schedule meetings, and coordinate travel or appointments
• Prepare documents, reports, and correspondence with accuracy and professionalism
• Greet visitors, answer phones, and assist with general office needs
• Help with filing, data entry, and maintaining organized records
• Jump in on special projects and process improvements as needed What we're looking for:
• Prior administrative or office support experience
• Strong communication skills and a friendly, professional demeanor
• Solid Microsoft Office/Excel skills and comfort working with technology
• Excellent organization - able to juggle multiple tasks without losing track
• Someone reliable, proactive, and eager to support the team Why you'll love it:
• Competitive pay: $22-$25 per hour (based on experience)
• Stable, collaborative environment
• Opportunity to learn, grow, and take on more responsibility over time
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"; });