Skip to main content

CareerClaw: AI-powered job search assistant (ClawHub/OpenClaw skill)

Project description

CareerClaw

CI

Privacy-first job search automation for OpenClaw.

CareerClaw turns your AI agent into a structured daily workflow: fetch listings → rank matches → draft outreach → track applications.

  • Local-first: your resume and results stay on your machine
  • No subscription: one-time purchase for Pro
  • Bring your own LLM API key (optional): use OpenAI/Anthropic to enhance drafts

Works best for roles where job boards and public listings are common (engineering, product, design, ops, marketing, finance).


How It Works

  1. Fetches job listings from supported sources (baseline sources are always available; integrations expand over time)
  2. Ranks them against your profile using keyword overlap, experience alignment, salary fit, and work-mode preference
  3. Drafts outreach for each top match (deterministic template in Free; optional LLM enhancement in Pro)
  4. Tracks your application pipeline locally (JSON files under .careerclaw/)

One command. Everything local.


Quickstart

1. Install

git clone https://github.com/orestes-garcia-martinez/careerclaw
cd careerclaw
python -m venv .venv

# Activate (macOS/Linux)
source .venv/bin/activate

# Activate (Windows PowerShell)
.\.venv\Scripts\Activate

# Install with dev dependencies
pip install -e ".[dev]"

2. Set up via OpenClaw (recommended)

If you are running CareerClaw through OpenClaw/ClawHub, the agent can guide you through setup. Provide your resume and it will create your profile, ask a couple of preference questions (work mode + salary), and run your first briefing.

3. Set up manually

Create the runtime directory and your profile:

mkdir -p .careerclaw

Create .careerclaw/profile.json:

{
  "skills": ["python", "react", "sql"],
  "target_roles": ["data analyst", "backend engineer"],
  "experience_years": 5,
  "work_mode": "remote",
  "resume_summary": "Experienced analyst with 5 years delivering data pipelines and dashboards.",
  "location": "Austin, TX",
  "salary_min": 90000
}

4. Run your first briefing

# Dry run first — no files written, safe to preview
python -m careerclaw.briefing --dry-run

# With your resume for better match quality (recommended)
python -m careerclaw.briefing --resume-pdf .careerclaw/resume.pdf --dry-run

# Full run when you're happy with the results
python -m careerclaw.briefing --resume-pdf .careerclaw/resume.pdf

Sample Output

=== CareerClaw Daily Briefing ===
User: local-user
Fetched jobs: 244 | After dedupe: 244
Duration: 29482ms

Top Matches:
...

Free vs Pro

Feature Free Pro
Job ingestion (baseline supported sources)
Additional job sources / integrations ✅ (as released)
Top matches with score breakdown
Outreach email draft (deterministic)
Application tracking (local JSON)
Manual briefing trigger
JSON output for agent integration
Gap analysis (ATS shadowing)
LLM-enhanced outreach (your LLM API key)
Resume intelligence (section-aware weighting)
Scheduled / automated daily briefings ✅ (roadmap)
CSV / Sheets export ✅ (roadmap)

Pro tier: $39 one-time (lifetime license).

Purchase on Gumroad: https://ogm.gumroad.com/l/careerclaw-pro


Optional: Pro + Setup & Configuration (1:1)

If you want it running quickly, Gumroad also offers “Pro + Setup & Configuration (1:1)” (limited slots). It includes:

  • Install CareerClaw into your OpenClaw workspace
  • Configure env vars + optional LLM API keys
  • Get your first daily briefing running successfully
  • Async troubleshooting included

(Select that version at checkout.)


Pro: Upgrading

Purchase a license key on Gumroad. Gumroad delivers the key by email immediately after payment.

Activating — Docker / self-hosted users

docker compose run --rm openclaw-cli \
  config set agents.defaults.sandbox.docker.env.CAREERCLAW_PRO_KEY "YOUR-KEY-HERE"

Or add it to your .env file:

CAREERCLAW_PRO_KEY=YOUR-KEY-HERE

The key is activated on first use and cached locally as a SHA-256 hash. Re-validation happens every 7 days (requires internet access).

Activating — MyClaw managed users

Tell your OpenClaw agent:

"Set my CAREERCLAW_PRO_KEY to YOUR-KEY-HERE"

The agent stores the key in your OpenClaw config and activates it on the next CareerClaw run.


Pro: LLM-Enhanced Drafts

With a valid Pro license, you can supply your own LLM API key to receive personalized outreach emails. CareerClaw falls back to the deterministic template silently on any failure.

export CAREERCLAW_PRO_KEY=YOUR-KEY-HERE
export CAREERCLAW_LLM_KEY=sk-...
python -m careerclaw.briefing --resume-pdf .careerclaw/resume.pdf

Application Tracking

Tracking is written automatically on each non-dry-run. Status options:

savedappliedinterviewrejected

Runtime files — all stored under .careerclaw/ (gitignored by default):

File Contents
profile.json Your profile
resume.txt / resume.pdf Your resume
tracking.json Saved jobs keyed by stable job_id
runs.jsonl Append-only run log (one line per run)
resume_intel.json Cached resume intelligence (Pro)
.license_cache Pro license validation cache (SHA-256 hash only)

Security & Privacy

CareerClaw is built on a local-first architecture. Your data never leaves your machine unless you configure an LLM API key.

  • No backend. No telemetry. No analytics endpoint.
  • API keys never stored. LLM keys are read from the environment at runtime and never written to disk or logs.
  • License cache is hash-only. Only a SHA-256 hash of the license key is written locally — the raw key is never stored.
  • No PII transmission. Your resume, profile, and application history are stored only in .careerclaw/ on your local machine.

See SECURITY.md for the vulnerability disclosure policy.


Changelog

See CHANGELOG.md for the full version history.


License

  • Free tier: MIT License — see LICENSE
  • Pro tier: Commercial license

Support

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

careerclaw-0.7.1.tar.gz (39.7 kB view details)

Uploaded Source

Built Distribution

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

careerclaw-0.7.1-py3-none-any.whl (45.2 kB view details)

Uploaded Python 3

File details

Details for the file careerclaw-0.7.1.tar.gz.

File metadata

  • Download URL: careerclaw-0.7.1.tar.gz
  • Upload date:
  • Size: 39.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.0

File hashes

Hashes for careerclaw-0.7.1.tar.gz
Algorithm Hash digest
SHA256 d5c668ea41d54117d44fe8ab30761514f43dfab8a12c7e06fd90ab4577b06ffe
MD5 4954b6d586299dd7da41a74a45e24d7e
BLAKE2b-256 cf9c3517afd21546ed69a48a50372d3e2e713ea5557c9e2588d583ab30943a08

See more details on using hashes here.

File details

Details for the file careerclaw-0.7.1-py3-none-any.whl.

File metadata

  • Download URL: careerclaw-0.7.1-py3-none-any.whl
  • Upload date:
  • Size: 45.2 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.0

File hashes

Hashes for careerclaw-0.7.1-py3-none-any.whl
Algorithm Hash digest
SHA256 589d73ad7c5cf9042aa34b60a46aff98b5faf97fbe0c9c35157d0c18cbf14954
MD5 ee4482ff6b26a7f5040e6c8a4ad030bf
BLAKE2b-256 d2e902f06fb7c36a03135a4325983984c803d7dc856b41157fe6d0e116d24cbf

See more details on using hashes here.

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