Skip to main content

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 dj CLI via shell. Setup once with python3 -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


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

dynamitejobs-1.0.1.tar.gz (17.6 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

dynamitejobs-1.0.1-py3-none-any.whl (14.1 kB view details)

Uploaded Python 3

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

Hashes for dynamitejobs-1.0.1.tar.gz
Algorithm Hash digest
SHA256 031b0dde193544c5ddb09ce2457fc3e4cda4b600e30acb75b3f2952924cf29a7
MD5 eaf4833baebdc4920c95df97875911f0
BLAKE2b-256 e44b8b62e0553077155e44e6f62ada94a18bae39c5aa9bb7a1a83d663b2a9b1e

See more details on using hashes here.

Provenance

The following attestation bundles were made for dynamitejobs-1.0.1.tar.gz:

Publisher: publish.yml on dynamitejobs/dj

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

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

Hashes for dynamitejobs-1.0.1-py3-none-any.whl
Algorithm Hash digest
SHA256 697da71d4628011bc116da321e14a13aeda2fe4b8ba9b7d2d2c00a0a06ce82d1
MD5 9513e549fb82cb82943ef4073531206d
BLAKE2b-256 b0e62131ef074ebeae08056b617f611c16141c7802f71f4becf328037dff4755

See more details on using hashes here.

Provenance

The following attestation bundles were made for dynamitejobs-1.0.1-py3-none-any.whl:

Publisher: publish.yml on dynamitejobs/dj

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page