No description
  • Go 81.4%
  • HTML 13.7%
  • Typst 1.5%
  • CSS 1.4%
  • Go Template 0.7%
  • Other 1.3%
Find a file
Tim Plechatsch 299ce56cdd
Some checks failed
Chart veröffentlichen / image-1 (push) Failing after 2s
Chart veröffentlichen / image (push) Failing after 0s
Chart veröffentlichen / chart (push) Has been skipped
Die oeffentliche Adresse ist src.spiralmind-solutions.net
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-09-16 18:02:51 +02:00
.forgejo/workflows Helm-Chart mit CNPG, ExternalSecrets und NetworkPolicy — dazu beide CI-Laeufe 2026-09-16 14:42:09 +02:00
build Nachträgliche Bearbeitung ermöglichen und geöffneten Bereich beim Speichern erhalten 2026-09-15 15:52:25 +02:00
charts/sm-recruiting Die oeffentliche Adresse ist src.spiralmind-solutions.net 2026-09-16 18:02:51 +02:00
cmd/cockpit Nummerierte Migrationen und OIDC fuer den internen Bereich 2026-09-16 14:21:07 +02:00
docs/superpowers Plan 1 auf die native Werkzeugkette umgestellt 2026-09-16 13:29:00 +02:00
internal/cockpit Die OIDC-Rueckleitung heisst /auth/callback 2026-09-16 17:54:55 +02:00
k8s AGENTS.md und das lokale Manifest auf den neuen Stand gezogen 2026-09-16 14:46:54 +02:00
.gitignore Cockpit-Navigation und Dokumentenverarbeitung überarbeiten 2026-09-13 18:27:25 +02:00
AGENTS.md AGENTS.md und das lokale Manifest auf den neuen Stand gezogen 2026-09-16 14:46:54 +02:00
BEARBEITUNGSPLAN.md Nachträgliche Bearbeitung ermöglichen und geöffneten Bereich beim Speichern erhalten 2026-09-15 15:52:25 +02:00
CLAUDE.md Recruiting Cockpit: erster Stand 2026-09-11 19:57:33 +02:00
Containerfile OCR Stufe 4: tesseract als Rueckfall je Seite — gescannte Unterlagen liefern Text 2026-09-12 13:46:18 +02:00
go.mod Nummerierte Migrationen und OIDC fuer den internen Bereich 2026-09-16 14:21:07 +02:00
go.sum Nummerierte Migrationen und OIDC fuer den internen Bereich 2026-09-16 14:21:07 +02:00
Makefile amd64, Rollenweiche, Config.Validate und Kennzahlen 2026-09-16 13:58:25 +02:00
README.md Recruiting Cockpit: erster Stand 2026-09-11 19:57:33 +02:00
UMBAUPLAN.md Cockpit-Navigation und Dokumentenverarbeitung überarbeiten 2026-09-13 18:27:25 +02:00

Spiralmind Recruiting Cockpit

Datenbank und Arbeitsoberfläche für die Personalvermittlung von Spiralmind Solutions. Direktvermittlung in Festanstellung, keine Arbeitnehmerüberlassung.

Ein Go-Binary, drei Container, ein Podman-Pod. Die Oberfläche steckt per go:embed im Binary; es gibt keine Fremdbibliothek im Browser.

Was es kann

Mandanten CRM mit Ansprechpartnern, vereinbartem Honorarsatz, Portalzugang
Suchaufträge was gesucht wird, ab wann, zu welchem Budget, mit Pipeline über neun Zustände
Kandidaten Stammdaten, Stationen, Kompetenzen, drei getrennte Gehaltszahlen
Unterlagen PDF, DOCX, TXT, Bilder · Text wird gewonnen und durchsuchbar gemacht
Lebenslauf-Auswertung schlägt Felder und Stationen vor, trägt nichts von selbst ein
Zuordnung ein Kandidat für einen Mandanten — mit Anonymitätsschalter
Exposé drei Seiten als PDF, namentlich oder anonym, Anlagen je Datei schaltbar
Platzierung vereinbartes Jahresgehalt → zwei Honorarhälften
Suche Meilisearch über den Pool, Rückfall auf Postgres
Mandantenportal der Mandant sieht seine Aufträge und die ihm vorgestellten Profile
Mailausgang Korb mit Wiederholung; ohne SMTP-Zugang geht nichts hinaus
Benutzer anlegen, Kennwort setzen, stilllegen — nie löschen

Starten

Vorausgesetzt: Podman (entwickelt gegen 6.0.2, applehv, arm64). Kein Go auf dem Rechner nötig — Bau und Tests laufen im Container.

make einrichten   # k8s/sm-recruiting.local.yaml mit Zufallswerten erzeugen
                  # darin BENUTZER1_PASSWORT und BENUTZER2_PASSWORT setzen
make up           # bauen und starten → http://localhost:8110
make status       # Zustand der drei Container
make logs         # Log des Cockpits
make down         # stoppen, Daten bleiben in den Volumes
make test         # Tests im Bau-Container

In k8s/sm-recruiting.yaml stehen keine Zugangsdaten — nur Platzhalter. Die echten Werte stehen in k8s/sm-recruiting.local.yaml, und die liegt nicht in Git. Ohne COCKPIT_SECRET bricht der Dienst beim Start ab; eine eingebaute Vorgabe würde bedeuten, dass jede Instanz dieselben Cookies akzeptiert.

Das Mandantenportal liegt unter /portal/. Zugänge richtet man auf der Mandantenseite je Ansprechpartner ein.

Wo die Regeln stehen

Die fachlichen und datenschutzrechtlichen Entscheidungen stehen in AGENTS.md — dort, wo sie zum Code gehören, nicht in einer Notiz daneben. Die drei wichtigsten:

  • Das Honorar sind 20 % des vereinbarten Jahresgehalts, in zwei gleichen Hälften: bei Vertragsunterschrift und bei Bestehen der Probezeit. Grundlage ist das vereinbarte Gehalt, nie der Marktwert.
  • Kein Merkmal aus § 1 AGG existiert als Feld. Kein Geburtsdatum, keine Herkunft, keine Religion, keine Angabe zu Behinderung — und der Lebenslauf-Parser liest sie bewusst nicht, obwohl sie in fast jedem deutschen Lebenslauf stehen. Ein Test prüft das gegen das Schema.
  • Anonymität hängt an der Zuordnung, nicht am Kandidaten. Derselbe Kandidat ist bei einem Mandanten anonym und beim nächsten namentlich.

Stand

Läuft und ist in Gebrauch. Noch nicht gebaut: OCR für gescannte Unterlagen, Migration der Altablage, Löschfristen. Offen und beim Betreiber: die Sicherung der drei Podman-Volumes.