Spaces:
Runtime error
Runtime error
| """Root landing page HTML for the SimLab HR Space on Hugging Face.""" | |
| LANDING_HTML = """<!DOCTYPE html> | |
| <html lang="en"> | |
| <head> | |
| <meta charset="utf-8"> | |
| <meta name="viewport" content="width=device-width, initial-scale=1"> | |
| <title>SimLab HR — AI Recruiting & People Management Agent Environment</title> | |
| <link href="https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;700&family=JetBrains+Mono:wght@400;500&display=swap" rel="stylesheet"> | |
| <style> | |
| * { margin: 0; padding: 0; box-sizing: border-box; } | |
| body { font-family: 'DM Sans', sans-serif; background: #0a0e17; color: #e2e8f0; min-height: 100vh; } | |
| a { color: #60a5fa; text-decoration: none; } | |
| a:hover { text-decoration: underline; } | |
| code { font-family: 'JetBrains Mono', monospace; background: #1e293b; padding: 2px 6px; border-radius: 4px; font-size: 0.85em; } | |
| pre { font-family: 'JetBrains Mono', monospace; background: #1e293b; padding: 16px 20px; border-radius: 8px; overflow-x: auto; font-size: 0.85em; line-height: 1.6; } | |
| .container { max-width: 900px; margin: 0 auto; padding: 40px 24px 60px; } | |
| .badge { display: inline-block; padding: 4px 10px; border-radius: 20px; font-size: 0.75em; font-weight: 500; margin-right: 6px; } | |
| .badge-green { background: #065f46; color: #6ee7b7; } | |
| .badge-blue { background: #1e3a5f; color: #93c5fd; } | |
| .badge-purple { background: #3b1f6e; color: #c4b5fd; } | |
| h1 { font-size: 2em; font-weight: 700; margin: 16px 0 8px; line-height: 1.2; } | |
| .subtitle { font-size: 1.1em; color: #94a3b8; margin-bottom: 32px; } | |
| h2 { font-size: 1.3em; font-weight: 700; margin: 36px 0 16px; color: #f1f5f9; } | |
| p { line-height: 1.7; color: #cbd5e1; margin-bottom: 12px; } | |
| .servers { display: grid; grid-template-columns: repeat(auto-fit, minmax(190px, 1fr)); gap: 12px; margin: 20px 0 28px; } | |
| .server-card { background: #1e293b; border: 1px solid #334155; border-radius: 10px; padding: 16px; } | |
| .server-card h3 { font-size: 1em; font-weight: 700; margin-bottom: 4px; color: #f8fafc; } | |
| .server-card p { font-size: 0.85em; color: #94a3b8; margin: 0; line-height: 1.4; } | |
| .server-card .port { font-family: 'JetBrains Mono', monospace; font-size: 0.75em; color: #64748b; } | |
| .tasks-table { width: 100%; border-collapse: collapse; margin: 12px 0 24px; } | |
| .tasks-table th { text-align: left; padding: 8px 12px; font-size: 0.85em; color: #64748b; border-bottom: 1px solid #334155; } | |
| .tasks-table td { padding: 8px 12px; font-size: 0.9em; border-bottom: 1px solid #1e293b; } | |
| .cta { background: linear-gradient(135deg, #1e3a5f, #1e293b); border: 1px solid #334155; border-radius: 12px; padding: 24px; margin: 28px 0; } | |
| .cta h3 { font-size: 1.1em; margin-bottom: 8px; color: #f8fafc; } | |
| .cta p { margin-bottom: 12px; } | |
| .cta a.btn { display: inline-block; padding: 10px 20px; background: #2563eb; color: #fff; border-radius: 8px; font-weight: 500; } | |
| .cta a.btn:hover { background: #1d4ed8; text-decoration: none; } | |
| .links { display: flex; gap: 12px; flex-wrap: wrap; margin: 20px 0; } | |
| .links a { padding: 8px 16px; border: 1px solid #334155; border-radius: 8px; font-size: 0.9em; color: #93c5fd; } | |
| .links a:hover { background: #1e293b; text-decoration: none; } | |
| .footer { margin-top: 48px; padding-top: 24px; border-top: 1px solid #1e293b; color: #475569; font-size: 0.85em; } | |
| </style> | |
| </head> | |
| <body> | |
| <div class="container"> | |
| <div> | |
| <span class="badge badge-green">OpenEnv</span> | |
| <span class="badge badge-blue">4 Tool Servers</span> | |
| <span class="badge badge-purple">14+ Tasks</span> | |
| </div> | |
| <h1>SimLab HR</h1> | |
| <p class="subtitle">AI Recruiting & People Management Agent Environment</p> | |
| <p> | |
| A fully-functional HR simulation for training, evaluating, and benchmarking AI agents. | |
| Your agent gets a task — <em>"schedule a phone screen"</em>, <em>"approve a leave request"</em>, | |
| <em>"onboard a new hire"</em> — and a real workplace with an HRMS, email, calendar, and team chat. | |
| </p> | |
| <div class="links"> | |
| <a href="/api/docs">API Docs (Swagger)</a> | |
| <a href="https://github.com/collinear-ai/simlab" target="_blank">GitHub (SimLab)</a> | |
| <a href="https://platform.collinear.ai" target="_blank">Get API Key</a> | |
| </div> | |
| <h2>4 Tool Servers, 1 Environment</h2> | |
| <div class="servers"> | |
| <div class="server-card"> | |
| <h3>HRMS</h3> | |
| <p>Employee records, leave management, attendance, payroll</p> | |
| <span class="port">:8030</span> | |
| </div> | |
| <div class="server-card"> | |
| <h3>Email</h3> | |
| <p>Send and read emails, inbox management</p> | |
| <span class="port">:8040</span> | |
| </div> | |
| <div class="server-card"> | |
| <h3>Calendar</h3> | |
| <p>Schedule meetings, check availability, manage events</p> | |
| <span class="port">:8050</span> | |
| </div> | |
| <div class="server-card"> | |
| <h3>RocketChat</h3> | |
| <p>Team messaging, channels, direct messages</p> | |
| <span class="port">:8060</span> | |
| </div> | |
| </div> | |
| <h2>Quickstart</h2> | |
| <pre>from simlab_hr import HRAction | |
| from simlab_hr.client import HREnv | |
| client = HREnv(base_url="http://localhost:8000") | |
| with client: | |
| obs = client.reset() | |
| print(obs.observation.task_instruction) | |
| result = client.step(HRAction( | |
| tool_server="hrms", | |
| tool_name="get_leave_balance", | |
| parameters={"employee_id": "EMP-0042"} | |
| ))</pre> | |
| <h2>Sample Tasks</h2> | |
| <table class="tasks-table"> | |
| <tr><th>Difficulty</th><th>Example</th></tr> | |
| <tr><td><span class="badge badge-green">Easy</span></td><td>Approve a leave request, update an employee's designation</td></tr> | |
| <tr><td><span class="badge badge-blue">Medium</span></td><td>Schedule a phone screen + send confirmation, run attendance report</td></tr> | |
| <tr><td><span class="badge badge-purple">Hard</span></td><td>Multi-person panel interview scheduling, full onboarding flow</td></tr> | |
| </table> | |
| <p>8 tasks included out of the box. Every task requires coordinating across multiple tool servers.</p> | |
| <div class="cta"> | |
| <h3>Unlock 14+ Tasks from the API</h3> | |
| <p>Set <code>COLLINEAR_API_KEY</code> to access the full task set with real HR scenarios — recruiting workflows, people management, compliance tasks, and more.</p> | |
| <a class="btn" href="https://platform.collinear.ai" target="_blank">Get a Free API Key →</a> | |
| </div> | |
| <h2>Run Locally</h2> | |
| <pre>git clone https://github.com/collinear-ai/simlab.git | |
| cd simlab/envs/simlab_hr | |
| docker compose up</pre> | |
| <h2>More Environments</h2> | |
| <p>SimLab includes <strong>5 enterprise simulation scenarios</strong> with <strong>14 tool servers</strong>:</p> | |
| <table class="tasks-table"> | |
| <tr><th>Scenario</th><th>Tools</th></tr> | |
| <tr><td><strong>Human Resources</strong> ← you are here</td><td>HRMS, email, calendar, team chat</td></tr> | |
| <tr><td>Customer Service</td><td>Helpdesk ticketing, team chat, email</td></tr> | |
| <tr><td>Finance</td><td>SEC filings, market data, Google Workspace</td></tr> | |
| <tr><td>Coding</td><td>Sandboxed IDE, browser automation, team chat</td></tr> | |
| <tr><td>CRM</td><td>Contacts, deals, pipelines, activities</td></tr> | |
| </table> | |
| <pre>pip install simulationlab | |
| simlab templates list</pre> | |
| <div class="footer"> | |
| <p>Apache 2.0 — <a href="https://collinear.ai">Collinear AI</a> · <a href="https://github.com/collinear-ai/simlab">GitHub</a> · <a href="https://docs.collinear.ai">Docs</a></p> | |
| </div> | |
| </div> | |
| </body> | |
| </html>""" | |