← ClaudeAtlas

essnet-leavelisted

Automate leave reconciliation and filing on an Orisoft ESSNet HRMS portal (e.g. *-ess.com/hrmsnet) by driving the user's already-signed-in Chrome over CDP. Reads leave list + entitlement balances, files single or multi-day leave applications, and (read-only) scans a Microsoft Teams chat for the user's own leave announcements to find unfiled days. Use when the user asks to check, reconcile, or apply leave on their company ESS/HRMS portal, or cross-check leave against a roster/Teams. Handles ESSNet's datepicker, menu-only Leave Form, submit-confirm dialog, and fast session timeout.
affifuddin-hazam/essnet-leave-claude-skill · ★ 0 · AI & Automation · score 72
Install: claude install-skill affifuddin-hazam/essnet-leave-claude-skill
# essnet-leave — Orisoft ESSNet HRMS leave automation Drives an Orisoft **ESSNet** self-service portal (login page title *"Employee Self-Service (ESSNet)"*, footer *"Orisoft Technology Sdn Bhd"*) through the user's **real, already-authenticated Chrome** over the DevTools protocol. ESS sits behind corporate SSO/MFA, so reusing the user's browser session avoids re-auth loops. The bundled tool: [scripts/ess.py](scripts/ess.py). ## Safety rules (do not break) 1. **Never auto-submit.** `file` without `--submit` fills the form and leaves it on screen. Show the user the prepared application and get an explicit "go"/"submit" **before** ever passing `--submit`. (One confirmation per batch is fine once the user approves the plan.) 2. **Teams is read-only.** `teams-scan` only scrolls and reads the DOM. It must NEVER type into the compose box or send a message. Do not add any send/post step. 3. **No credentials in the repo.** Creds come from `--user/--pass` or `ESS_USER`/`ESS_PASS` env vars at runtime. Never hardcode or commit them. 4. **It's live HR.** Each submit creates a real workflow request to the user's manager. Treat like a deploy: confirm dates, type, reason, balance impact first. ## Prerequisites - Python with Playwright (`pip install playwright`). - Chrome started with a debug port (any profile; the user signs into ESS once in it): ``` chrome.exe --remote-debugging-port=9222 --user-data-dir=C:\some\profile ``` - Config via env (or pass flags each call): ``` set