simulationlab-hr / landing.py
renanserrano's picture
Upload folder using huggingface_hub
bd67f06 verified
"""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 &amp; People Management Agent Environment</p>
<p>
A fully-functional HR simulation for training, evaluating, and benchmarking AI agents.
Your agent gets a task &mdash; <em>"schedule a phone screen"</em>, <em>"approve a leave request"</em>,
<em>"onboard a new hire"</em> &mdash; 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 &mdash; recruiting workflows, people management, compliance tasks, and more.</p>
<a class="btn" href="https://platform.collinear.ai" target="_blank">Get a Free API Key &rarr;</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> &larr; 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 &mdash; <a href="https://collinear.ai">Collinear AI</a> &middot; <a href="https://github.com/collinear-ai/simlab">GitHub</a> &middot; <a href="https://docs.collinear.ai">Docs</a></p>
</div>
</div>
</body>
</html>"""