feat: CV Batches system with AI extraction, matching, and slide-in chat

This commit is contained in:
root
2026-07-25 09:41:26 +00:00
parent 692b383aa5
commit ecb9ebb507
10 changed files with 910 additions and 18 deletions

View File

@@ -20,9 +20,9 @@
<li><a href="#" class="nav-link" data-page="candidates">Candidates</a></li>
<li><a href="#" class="nav-link" data-page="upload">Upload CV</a></li>
<li><a href="#" class="nav-link" data-page="templates">Templates</a></li>
<li><a href="#" class="nav-link" data-page="batches">Batches</a></li>
<li><a href="#" class="nav-link" data-page="requirements">Requirements</a></li>
<li><a href="#" class="nav-link" data-page="generated">Generated CVs</a></li>
<li><a href="#" class="nav-link" data-page="chat">AI Chat</a></li>
</ul>
</nav>
@@ -105,6 +105,19 @@
</div>
</div>
<!-- BATCHES -->
<div id="page-batches" class="page">
<div id="batches-list-view">
<h2 style="margin-bottom:20px">CV Batches</h2>
<div class="flex mb-16 gap-8">
<button class="btn" onclick="showCreateBatchModal()">+ New Batch</button>
<button class="btn btn-outline" onclick="showUploadBatchModal()">Upload Document</button>
</div>
<div id="batches-list"></div>
</div>
<div id="batch-detail-view" style="display:none"></div>
</div>
<!-- REQUIREMENTS -->
<div id="page-requirements" class="page">
<h2 style="margin-bottom:20px">Requirement Requests</h2>
@@ -119,27 +132,27 @@
<h2 style="margin-bottom:20px">Generated CVs</h2>
<div id="generated-list"></div>
</div>
<!-- CHAT -->
<div id="page-chat" class="page">
<h2 style="margin-bottom:20px">AI Chat Assistant</h2>
<div class="chat-container">
<div class="chat-messages" id="chat-messages">
<div class="text-muted">Start a conversation with the AI assistant...</div>
</div>
<div class="chat-input">
<textarea id="chat-input" placeholder="Type your message..." rows="1"></textarea>
<button class="btn" onclick="sendChat()">Send</button>
</div>
</div>
</div>
</main>
</div>
<!-- Modals -->
<div class="modal-overlay" id="modal-overlay"></div>
<script src="/static/app.js?v=15"></script>
<!-- Chat slide-in panel -->
<div id="batch-chat-panel" class="chat-panel" style="display:none">
<div class="chat-panel-header">
<h3>Batch Discussion</h3>
<button class="btn btn-sm btn-danger" onclick="closeBatchChat()">Close</button>
</div>
<div class="chat-panel-messages" id="batch-chat-messages"></div>
<div class="chat-panel-input">
<textarea id="batch-chat-input" placeholder="Type your message..." rows="2"></textarea>
<button class="btn" onclick="sendBatchChat()">Send</button>
</div>
</div>
<script src="/static/app.js?v=16"></script>
<script src="/static/carbone.js?v=16"></script>
<script src="/static/batches.js?v=1"></script>
</body>
</html>