Local-first CLI and Python package for Neksus JobSpec files
Project description
Neksus JobSpec
What is NeksusJobSpec?
NeksusJobSpec is an open, local-first CLI and Python package for structured, branded, machine-readable job campaigns.
What it does
- Defines JobSpec files in YAML.
- Validates specs against the v0.3.x schema.
- Renders output for web and JSON-LD.
- Exports deterministic single-job and multi-job machine-readable artifacts.
- Generates job sitemaps.
- Provides an optional local stdio MCP server for CLI/API-parity tooling.
- Provides optional assistant skill/prompt packs in
skills/.
What it does not do
It does not collect applications, upload CVs, send emails, take payments, manage candidates, or post directly to LinkedIn.
It does not provide a hosted API, hosted frontend, ATS workflow automation, or cloud infrastructure features.
Installation
pip install neksus-jobspec
Optional MCP extra:
pip install "neksus-jobspec[mcp]"
Quick start
mkdir neksus-jobspec-demo
cd neksus-jobspec-demo
neksus-jobspec init
neksus-jobspec spec new backend-engineer
Validate a JobSpec
neksus-jobspec spec validate jobspecs/backend-engineer.jobspec.yaml
Render web output
neksus-jobspec spec render jobspecs/backend-engineer.jobspec.yaml \
--format web \
--output dist/backend-engineer.html
Available built-in web themes: classic, classic-dark, soft-professional.
Use a custom theme package directory:
neksus-jobspec spec render jobspecs/backend-engineer.jobspec.yaml \
--format web \
--theme ./my-theme-package \
--output dist/backend-engineer-custom.html
Render JSON-LD
neksus-jobspec spec render jobspecs/backend-engineer.jobspec.yaml \
--format json-ld \
--output dist/backend-engineer.jsonld
Export generic JSON/XML
neksus-jobspec spec export jobspecs/backend-engineer.jobspec.yaml \
--target generic-json \
--out dist/backend-engineer.json
neksus-jobspec spec export jobspecs/backend-engineer.jobspec.yaml \
--target generic-xml \
--out dist/backend-engineer.xml
Export LinkedIn-ready JSON
neksus-jobspec spec export jobspecs/backend-engineer.jobspec.yaml \
--target linkedin-ready-json \
--out dist/backend-engineer-linkedin.json
This is a data export profile. It is not a LinkedIn API posting integration.
Export multi-job feeds
neksus-jobspec feed export "examples/*.jobspec.yaml" \
--target jobs-json \
--out dist/jobs.json
neksus-jobspec feed export "examples/*.jobspec.yaml" \
--target jobs-xml \
--out dist/jobs.xml
Generate sitemap
neksus-jobspec feed sitemap "examples/*.jobspec.yaml" \
--base-url https://company.dk/jobs \
--out dist/sitemap.xml
Optional MCP server
The local MCP server is optional and local-only.
neksus-jobspec-mcp
- Install via the
mcpextra. - Uses stdio transport for local MCP clients.
- Exposes local CLI/API-parity tools only.
- It is not a hosted API, ATS integration, or direct LinkedIn posting tool.
See:
Assistant skill/prompt packs
Assistant prompt packs are available in skills/:
- ChatGPT
- Claude
- Copilot
- Gemini
Project boundary
NeksusJobSpec v0.3.0 is the free/open-source core package.
Included scope:
- local CLI
- local Python API
- local stdio MCP server (optional extra)
- schema validation
- rendering
- exports
- feeds
- sitemap
- assistant/skill prompt packs
Out of scope in v0.3.0:
- application forms and application collection
- CV upload and CV parsing
- candidate storage
- email delivery
- payments
- hosted APIs/frontends/infrastructure
- ATS workflows
- direct LinkedIn posting integrations
Development
uv sync
uv run ruff check .
uv run ruff format --check .
uv run pytest
uv run pytest -m integration
uv run python -m mkdocs build --strict
Release and docs references
- Release notes:
docs/project/release-notes.md - Version policy:
docs/project/versioning.md - Changelog:
CHANGELOG.md - LLM usage:
docs/llm-usage.md - Scope boundaries:
docs/roadmap-boundaries.md - Security policy:
SECURITY.md
Codebase docs index
- Core package:
src/neksus_jobspec/README.md - App use cases:
src/neksus_jobspec/app/README.md - JobSpec domain:
src/neksus_jobspec/jobspec/README.md - JobSpec vertical ops:
src/neksus_jobspec/jobspec/spec_ops/README.md - Rendering internals:
src/neksus_jobspec/jobspec/rendering/README.md - Project internals:
src/neksus_jobspec/project/README.md - CLI package:
src/neksus_jobspec_cli/README.md - CLI commands:
src/neksus_jobspec_cli/commands/README.md - MCP package:
src/neksus_jobspec_mcp/README.md
License
Licensed under AGPL-3.0-or-later. See LICENSE.
Contribution policy
This repository is owner-maintained and does not use a public external contribution workflow.
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file neksus_jobspec-0.3.0.tar.gz.
File metadata
- Download URL: neksus_jobspec-0.3.0.tar.gz
- Upload date:
- Size: 64.5 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
070291b937743735d5bb94feb4f06abb043a605e82c0f3dcfa93b1f3dbc6cb8a
|
|
| MD5 |
e612f227d5569d4708e2706819dc3e91
|
|
| BLAKE2b-256 |
e8a6ec29f58e721f2fd1e1975490f5d30186e743bd9bff50eb0b6b0ba8c27c14
|
Provenance
The following attestation bundles were made for neksus_jobspec-0.3.0.tar.gz:
Publisher:
publish-pypi.yml on NeksusAI/NeksusJobSpec
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
neksus_jobspec-0.3.0.tar.gz -
Subject digest:
070291b937743735d5bb94feb4f06abb043a605e82c0f3dcfa93b1f3dbc6cb8a - Sigstore transparency entry: 1462787734
- Sigstore integration time:
-
Permalink:
NeksusAI/NeksusJobSpec@1cdd762e6d474084330ea6b237e660312c939fbe -
Branch / Tag:
refs/heads/main - Owner: https://github.com/NeksusAI
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish-pypi.yml@1cdd762e6d474084330ea6b237e660312c939fbe -
Trigger Event:
workflow_dispatch
-
Statement type:
File details
Details for the file neksus_jobspec-0.3.0-py3-none-any.whl.
File metadata
- Download URL: neksus_jobspec-0.3.0-py3-none-any.whl
- Upload date:
- Size: 97.1 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
a3adf004e1749e7600a3266f4b0e921770e93e59e85375b92f7e2d746a6ab735
|
|
| MD5 |
5db5d61ace5cfc97f4dcb0108f01f19d
|
|
| BLAKE2b-256 |
3cb5a87b66306d42a0cee53dd32bab15a65af13b731e7c7061cd71f9245a470a
|
Provenance
The following attestation bundles were made for neksus_jobspec-0.3.0-py3-none-any.whl:
Publisher:
publish-pypi.yml on NeksusAI/NeksusJobSpec
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
neksus_jobspec-0.3.0-py3-none-any.whl -
Subject digest:
a3adf004e1749e7600a3266f4b0e921770e93e59e85375b92f7e2d746a6ab735 - Sigstore transparency entry: 1462787914
- Sigstore integration time:
-
Permalink:
NeksusAI/NeksusJobSpec@1cdd762e6d474084330ea6b237e660312c939fbe -
Branch / Tag:
refs/heads/main - Owner: https://github.com/NeksusAI
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish-pypi.yml@1cdd762e6d474084330ea6b237e660312c939fbe -
Trigger Event:
workflow_dispatch
-
Statement type: