Spaces:
Runtime error
Runtime error
File size: 7,408 Bytes
bd67f06 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 | """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>"""
|