Dynamite Jobs Company API client — jobs, applications, candidates, analytics, billing.
Project description
dj-official
Official Python client for the Dynamite Jobs Company API.
Single-file, zero-dependency client. Four modes: Agent Skill, CLI, Python library, MCP server.
Install
pip install dynamitejobs
3-command quickstart
pip install dynamitejobs
python3 -m dynamitejobs setup --api-key dj_<companyID>_<random>
python3 -m dynamitejobs self-test
Get your API key from the DJ dashboard: Settings → API Access → Create new key.
CLI
# Reads
dj company # your company profile
dj jobs --status=published # list your published jobs
dj applications <jobID> # applications to one job
dj analytics-funnel --from=2026-04-01 --to=2026-05-01
dj billing # card on file, plan tier, recent charges
dj limits # rate limit caps + usage
# Writes
dj post-job '{"title": "Senior Backend Engineer", "description": "..."}'
dj publish-job <jobID> # charges card on file
dj update-application <appID> --job-id=<jid> --status=goodFit --rating=4
dj trial-post '{"title": "..."}' # 1 per company, awaits admin approval
Python library
from dynamitejobs import DJ
dj = DJ() # reads ~/.env.dj
print(dj.company())
for j in dj.jobs(status="published")["jobs"]:
print(j["id"], j.get("title"))
# Walk applications for one job and mark good fits
apps = dj.applications("job_abc123")
for a in apps["applications"]:
if a.get("score", 0) > 0.8:
dj.update_application(a["id"], job_id="job_abc123", status="goodFit", rating=4)
MCP server (Claude / Codex / Cursor / Gemini)
pip install "dynamitejobs[mcp]"
python3 -m dynamitejobs --mcp
Claude Code
Add to your project's .mcp.json:
{
"mcpServers": {
"dj": {
"command": "python3",
"args": ["-m", "dynamitejobs", "--mcp"],
"env": { "DJ_API_KEY": "dj_..." }
}
}
}
Claude Desktop
~/Library/Application Support/Claude/claude_desktop_config.json — same shape as above.
Codex CLI
Symlink py/SKILL.md into ~/.codex/skills/dj/SKILL.md — Codex auto-discovers it.
Cursor
Settings → MCP → Add server. Command: python3, args: -m dynamitejobs --mcp.
GitHub Copilot
Add a paragraph to your repo's .github/copilot-instructions.md:
When asked about Dynamite Jobs data, call the
djCLI via shell. Setup once withpython3 -m dynamitejobs setup --api-key ....
Gemini CLI
Add to ~/.gemini/settings.json under mcpServers.
Rate limits
| Tier | Per minute | Per day | Eligibility |
|---|---|---|---|
| trial | 5 | 100 | Only trial post used |
| standard | 30 | 1,500 | ≥1 paid job in last 365d |
| business-pro | 120 | 10,000 | Business Pro subscriber |
| partner | 300 | 30,000 | Manually granted |
Every response carries X-RateLimit-* headers. Use dj limits to inspect.
Output formats
CLI output is JSON by default (pipe to jq):
dj jobs --status=published | jq '.jobs[].title'
Add --format=raw if you want the body printed without JSON encoding (only useful for endpoints that return non-JSON, like /openapi.json proxy).
Errors
Every error response has error (slug) and message (human). Library raises DJError with status, body, and url.
from dynamitejobs import DJ, DJError
try:
DJ().publish_job("job_xyz")
except DJError as e:
if e.status == 402 and e.body.get("error") == "no_stripe_customer":
print("Add a card on file in the dashboard first.")
Versioning
The client prints a stderr warning when the server is on a newer major/minor version. Upgrade with pip install --upgrade dynamitejobs.
License
MIT.
Project details
Release history Release notifications | RSS feed
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 dynamitejobs-1.0.1.tar.gz.
File metadata
- Download URL: dynamitejobs-1.0.1.tar.gz
- Upload date:
- Size: 17.6 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
031b0dde193544c5ddb09ce2457fc3e4cda4b600e30acb75b3f2952924cf29a7
|
|
| MD5 |
eaf4833baebdc4920c95df97875911f0
|
|
| BLAKE2b-256 |
e44b8b62e0553077155e44e6f62ada94a18bae39c5aa9bb7a1a83d663b2a9b1e
|
Provenance
The following attestation bundles were made for dynamitejobs-1.0.1.tar.gz:
Publisher:
publish.yml on dynamitejobs/dj
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
dynamitejobs-1.0.1.tar.gz -
Subject digest:
031b0dde193544c5ddb09ce2457fc3e4cda4b600e30acb75b3f2952924cf29a7 - Sigstore transparency entry: 1580316361
- Sigstore integration time:
-
Permalink:
dynamitejobs/dj@0e35a3585d5b9dab89fe935802eea5c4ac7a55e9 -
Branch / Tag:
refs/tags/v1.0.1 - Owner: https://github.com/dynamitejobs
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@0e35a3585d5b9dab89fe935802eea5c4ac7a55e9 -
Trigger Event:
push
-
Statement type:
File details
Details for the file dynamitejobs-1.0.1-py3-none-any.whl.
File metadata
- Download URL: dynamitejobs-1.0.1-py3-none-any.whl
- Upload date:
- Size: 14.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 |
697da71d4628011bc116da321e14a13aeda2fe4b8ba9b7d2d2c00a0a06ce82d1
|
|
| MD5 |
9513e549fb82cb82943ef4073531206d
|
|
| BLAKE2b-256 |
b0e62131ef074ebeae08056b617f611c16141c7802f71f4becf328037dff4755
|
Provenance
The following attestation bundles were made for dynamitejobs-1.0.1-py3-none-any.whl:
Publisher:
publish.yml on dynamitejobs/dj
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
dynamitejobs-1.0.1-py3-none-any.whl -
Subject digest:
697da71d4628011bc116da321e14a13aeda2fe4b8ba9b7d2d2c00a0a06ce82d1 - Sigstore transparency entry: 1580316647
- Sigstore integration time:
-
Permalink:
dynamitejobs/dj@0e35a3585d5b9dab89fe935802eea5c4ac7a55e9 -
Branch / Tag:
refs/tags/v1.0.1 - Owner: https://github.com/dynamitejobs
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@0e35a3585d5b9dab89fe935802eea5c4ac7a55e9 -
Trigger Event:
push
-
Statement type: