Synaplan
Open-source AI platform for companies: self-hosted AI agents, GDPR-compliant chatbot widget, RAG knowledge base, WhatsApp and Outlook AI, MCP, multi-model routing. Docker, Kubernetes or hosted in Germ
翻訳待ち
No updates detected yet. GitHub releases will appear here.
The maker's introduction consists of the line above. Read the repository README for more details. Repository README ↗
Loading the full README.
Read the full README ↗Open Business Blueprint for ISIC Rev.5 7810: employment agency -- candidate intake, matching, placement and follow-up.
This repository publishes a community-employment-agency actor -- candidacy intake, per-jurisdiction anti-discrimination/work- authorization regulatory assessment, candidate matching and candidate placement -- as an OSS business that any qualified operator can fork, deploy, run, improve and sell, so a community employment agency or workforce program never surrenders candidate and placement data to a closed ATS SaaS.
Built on this workspace's
langgraph
StateGraph runtime (portable .cljc, supervised superstep loop,
interrupts, Datomic/in-mem checkpoints) -- the same actor pattern as
every prior actor in this fleet (93 prior actors) -- here it is
EmploymentOps-LLM ⊣ Employment Agency Governor. This blueprint's
own :itonami.blueprint/governor keyword,
:employment-agency-governor, is a UNIQUE keyword fleet-wide
(grep-verified: no other blueprint declares it) -- a fresh,
independent build.
Why an actor layer at all? An LLM is great at drafting a candidacy summary, normalizing records, and checking whether a claimed placement fee actually equals a candidacy's own recorded annual salary times fee rate -- but it has no notion of which jurisdiction's anti-discrimination/work-authorization law is official, no license to match a real candidate or place a real candidate, and no way to know on its own whether a proposed match's own criteria actually rely on a protected characteristic or whether a candidate's own work authorization has actually been verified for a placement that legally requires it. Letting it match or place a candidate directly invites fabricated regulatory citations, a placement-fee mismatch being charged to a client, a discriminatory matching decision being executed, and a candidate being placed without verified work authorization -- exposing the agency to real regulatory and civil-rights liability. This project seals the EmploymentOps-LLM into a single node and wraps it with an independent Employment Agency Governor, a human approval workflow, and an immutable audit ledger.
This actor covers candidacy intake through anti-discrimination/work-
authorization regulatory assessment, candidate matching and candidate
placement. It does not, by itself, hold any operating license
required to run an employment agency in a given jurisdiction, and it
does not claim to. It also does not perform the actual candidate
sourcing/screening/interview work itself, or judge candidate fit --
employmentops.registry/placement-fee-matches-claim? is a pure
ground-truth recompute against the candidacy's own recorded fields,
not a fit judgment. Whoever deploys and operates a live instance (a
qualified agency operator/placement coordinator) supplies any
jurisdiction-specific license, the real candidate-sourcing/applicant-
tracking integration and the real work-authorization-verification
integrations, and bears that jurisdiction's liability -- the software
supplies the governed, spec-cited, audited execution scaffold so that
operator does not have to build the compliance layer from scratch.
Matching a real candidate and placing a real candidate are never
autonomous, at any phase, by construction. Two independent layers
enforce this (employmentops.governor's :actuation/match-candidate/
:actuation/place-candidate high-stakes gate and employmentops. phase's phase table, which never puts either op in any phase's
:auto set) -- see employmentops.phase's docstring and
test/employmentops/phase_test.cljk's candidacy-match-never-auto-at- any-phase/candidacy-place-never-auto-at-any-phase. The actor may
draft, check and recommend; a human agency operator is always the one
who actually matches or places a candidate. Grounded directly in this
blueprint's own docs/business-model.md Trust Controls text
("placement outside consent is blocked; matching decisions are
explainable") -- a genuine DUAL-actuation shape, applied SEQUENTIALLY
to the SAME candidacy record (match first, place later), matching
practiceops/7110's, hospitalityops/5510's, freightops/4920's,
quarryops/0810's and agronomyops/0162's own sequential shape
rather than retailops/4711's own alternative-kind shape.
candidacy intake + jurisdiction facts (employmentops.facts, spec-cited)
|
v
┌───────────────────────┐ proposal ┌───────────────────────┐
│ EmploymentOps-LLM │ ─────────────▶ │ Employment Agency Governor │ (independent system)
│ (sealed) │ + citations │ spec-basis · evidence- │
└───────────────────────┘ │ incomplete · matching- │
│ commit ◀┼ basis-discriminatory (FLAGSHIP NEW) │
│ │ · placement-fee-mismatch (ground- │
record + ledger escalate ┼ truth) · work-authorization- │
│ (ALWAYS for│ unverified (conditional, NEW) · │
│ :actuation/match- │ already-matched · already-placed │
│ candidate/ │ │
│ :actuation/place- │ │
│ candidate} │ │
▼ └───────────────────────┘
human approval
This is the beginning of the README. Read the rest at the original. Read the full README ↗