Add AI application assistant: Indeed import + Ollama document generation
- Browser extension (Chromium MV3) injecting a "send to tracker" button next to the Indeed job description; scrapes job info and posts it to a new /api/indeed-import endpoint (CORS-enabled), configurable tracker URL via popup. - New "Entwurf" status. Imports create a draft and trigger background AI generation of tailored Anschreiben + Lebenslauf (PDF attachments) via the Ollama Cloud API, grounded strictly in user-provided base documents. - Vorlagen page to manage base documents; attachments UI, generation status polling, regenerate and download routes on the application page. - Schema: ort/stellenbeschreibung/quelle_url/generierung_* columns, plus basis_dokumente and anhaenge tables (with migrations). - Config via .env (OLLAMA_API_KEY/OLLAMA_MODEL/OLLAMA_HOST); dependency-free .env loader. Dockerfile copies lib/, .dockerignore added. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
@@ -0,0 +1,52 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="de">
|
||||
<head>
|
||||
<meta charset="UTF-8" />
|
||||
<style>
|
||||
body {
|
||||
font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
|
||||
width: 320px;
|
||||
margin: 0;
|
||||
padding: 16px;
|
||||
color: #1f2937;
|
||||
background: #fff;
|
||||
}
|
||||
h1 { font-size: 15px; margin: 0 0 4px; }
|
||||
p.hint { font-size: 12px; color: #6b7280; margin: 0 0 12px; }
|
||||
label { display: block; font-size: 12px; font-weight: 600; margin-bottom: 4px; }
|
||||
input {
|
||||
width: 100%; box-sizing: border-box;
|
||||
padding: 8px 10px; font-size: 13px;
|
||||
border: 1px solid #d1d5db; border-radius: 6px;
|
||||
}
|
||||
.row { display: flex; gap: 8px; margin-top: 12px; }
|
||||
button {
|
||||
flex: 1; padding: 8px 10px; font-size: 13px; font-weight: 600;
|
||||
border: none; border-radius: 6px; cursor: pointer;
|
||||
}
|
||||
.save { background: #2563eb; color: #fff; }
|
||||
.save:hover { background: #1d4ed8; }
|
||||
.test { background: #e5e7eb; color: #1f2937; }
|
||||
.test:hover { background: #d1d5db; }
|
||||
#status { font-size: 12px; margin-top: 10px; min-height: 16px; }
|
||||
.ok { color: #16a34a; }
|
||||
.err { color: #dc2626; }
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
<h1>Bewerbungs-Tracker</h1>
|
||||
<p class="hint">Adresse deines Bewerbungs-Trackers. Von hier werden importierte Indeed-Stellen verarbeitet.</p>
|
||||
|
||||
<label for="trackerUrl">Tracker-Adresse</label>
|
||||
<input type="url" id="trackerUrl" placeholder="http://localhost:3000" />
|
||||
|
||||
<div class="row">
|
||||
<button class="save" id="saveBtn">Speichern</button>
|
||||
<button class="test" id="testBtn">Verbindung testen</button>
|
||||
</div>
|
||||
|
||||
<div id="status"></div>
|
||||
|
||||
<script src="popup.js"></script>
|
||||
</body>
|
||||
</html>
|
||||
Reference in New Issue
Block a user