← Back to Skills Marketplace
quantdeveloperusa

Jobs Hunter Claw

by ABFS Tech · GitHub ↗ · v1.4.0 · MIT-0
cross-platform ⚠ suspicious
282
Downloads
0
Stars
0
Active Installs
7
Versions
Install in OpenClaw
/install jobs-hunter-claw
Description
Automate job discovery, application submission, status tracking, and activity logging using Google Sheets as the central data store for your job hunt.
README (SKILL.md)

Jobs Hunter Claw 🎯

Unified skill for job hunting automation: Discover → Apply → Track.

ClawHub: https://clawhub.ai/QuantDeveloperUSA/jobs-hunter-claw
GitHub: https://github.com/ABFS-Inc/jobs-hunter-claw

Installation

Option 1: ClawHub (Recommended)

# Install the skill
clawhub install jobs-hunter-claw

# Verify installation
clawhub list

# Fix executable permission (required after install)
chmod +x /path/to/skills/jobs-hunter-claw/scripts/job-tracker.sh

Option 2: Git Clone

# Clone to your skills directory
git clone https://github.com/ABFS-Inc/jobs-hunter-claw.git /path/to/skills/jobs-hunter-claw

Prerequisites

1. gog CLI (Google Workspace)

The skill uses gog for Google Sheets access:

# Install gog
brew install steipete/tap/gogcli

# Authenticate with Google
gog auth credentials /path/to/client_secret.json
gog auth add [email protected] --services sheets

2. Google Sheet Setup

Create a Google Sheet with these tabs:

Tab Purpose
Jobs Main tracker (columns A-P)
Activity Log Timestamped event history
Add or Edit Job Form interface (optional)

See references/google-sheet-setup.md for detailed setup.

3. Configure Spreadsheet ID (Required)

Set the environment variable with your Google Sheet ID:

export JOB_TRACKER_SPREADSHEET_ID="your-google-sheet-id"

The ID is found in your Google Sheet URL:

https://docs.google.com/spreadsheets/d/[THIS-IS-THE-ID]/edit

For persistent configuration, add to your shell profile (~/.bashrc, ~/.zshrc):

echo 'export JOB_TRACKER_SPREADSHEET_ID="your-google-sheet-id"' >> ~/.bashrc

For OpenClaw agents, set in the agent's environment or TOOLS.md.

Quick Start

# Set your spreadsheet ID first
export JOB_TRACKER_SPREADSHEET_ID="your-google-sheet-id"

# View all commands
./scripts/job-tracker.sh help

# Add a discovered job
./scripts/job-tracker.sh add --company "Morgan Stanley" --role "AI Architect" --source LinkedIn

# List active interviews
./scripts/job-tracker.sh list --status interview

# Log an event
./scripts/job-tracker.sh log JOB002 --event interview_scheduled --details "3rd round Monday 10am"

# Search jobs
./scripts/job-tracker.sh search "citi" --columns company,role

Agent Setup

Create a dedicated agent to run job hunting automation.

Model Requirement

This skill requires google/gemini-flash-latest for optimal performance and cost efficiency.

Gemini Flash provides:

  • Fast response times for frequent job board scanning
  • Cost-effective for high-volume cron jobs (hourly scans, daily reviews)
  • Sufficient capability for structured data operations (CRUD, search, logging)
  • Good tool-use performance for shell command execution

Do not use Opus, Sonnet, or other premium models — they're overkill for this skill and will incur unnecessary costs.

1. Create the Agent

openclaw agents create job-hunter \
  --model google/gemini-flash-latest \
  --workspace /path/to/workspace-job-hunter

2. Configure Agent Identity

Create IDENTITY.md in the agent workspace:

# IDENTITY.md

- **Name:** [First Name] [Last Name]
- **Creature:** Career automation assistant
- **Vibe:** Proactive, organized, candidate-focused
- **Emoji:** 🎯

3. Configure Agent Tools

Create TOOLS.md in the agent workspace with the spreadsheet ID:

# TOOLS.md

## Environment Variables

Set before running job-tracker commands:
- `JOB_TRACKER_SPREADSHEET_ID` — Your Google Sheet ID

## Jobs Hunter Claw Skill

**Installed at:** `/openclaw/skills/jobs-hunter-claw`

### Usage

```bash
# Set spreadsheet ID
export JOB_TRACKER_SPREADSHEET_ID="your-sheet-id"

# Run commands
/openclaw/skills/jobs-hunter-claw/scripts/job-tracker.sh list
/openclaw/skills/jobs-hunter-claw/scripts/job-tracker.sh add --company "X" --role "Y"

Google Sheet


### 4. Configure Heartbeat (Optional)

Create `HEARTBEAT.md` for periodic checks:

```markdown
# HEARTBEAT.md

## Periodic Checks
- [ ] Scan email for recruiter messages
- [ ] Check calendar for upcoming interviews
- [ ] Review jobs with status "Interview" for follow-ups
- [ ] Look for new job postings matching profile

Cron Job Setup

Automate job hunting tasks with OpenClaw cron jobs.

Important: Cron jobs need the spreadsheet ID in the task prompt or agent environment.

Job 1: Email Scan (Hourly, Business Hours)

openclaw cron add \
  --id job-email-scan \
  --schedule "0 14-23 * * 1-5" \
  --agent job-hunter \
  --channel "channel:YOUR_DISCORD_CHANNEL_ID" \
  --task "Set JOB_TRACKER_SPREADSHEET_ID from TOOLS.md, then scan email for job-related messages. Use /openclaw/skills/jobs-hunter-claw/scripts/job-tracker.sh for updates."

Schedule: Every hour from 9 AM - 6 PM EST (14-23 UTC), Monday-Friday.

Job 2: Weekly Pipeline Review (Monday Morning)

openclaw cron add \
  --id job-weekly-review \
  --schedule "0 14 * * 1" \
  --agent job-hunter \
  --channel "channel:YOUR_DISCORD_CHANNEL_ID" \
  --task "Weekly pipeline review. Set JOB_TRACKER_SPREADSHEET_ID, then:
1. job-tracker.sh list --status Interview
2. job-tracker.sh list --status Applied
3. job-tracker.sh list --status Discovered
Report summary and recommended actions."

Schedule: Monday 9 AM EST (14:00 UTC).

Managing Cron Jobs

# List all cron jobs
openclaw cron list

# Pause/resume a job
openclaw cron pause job-email-scan
openclaw cron resume job-email-scan

# Delete a job
openclaw cron delete job-email-scan

CLI Reference

Commands

Command Description
add Add new job with auto-generated ID
update Modify existing job fields
delete Delete a job (clears row, preserves logs)
log Add timestamped activity entry
show Display detailed job view
list List jobs with optional filters
search Search with regex or fuzzy matching
logs View activity history
next-id Get next available job ID
schema Show valid statuses and event types
help Show command help

Adding a Job

./scripts/job-tracker.sh add \
  --company "Goldman Sachs" \
  --role "VP, AI Engineering" \
  --location "NYC" \
  --salary "$200k-$275k" \
  --source "LinkedIn" \
  --url "https://linkedin.com/jobs/view/123456" \
  --status Discovered

Required: --company, --role

Updating a Job

./scripts/job-tracker.sh update JOB015 \
  --status Applied \
  --resume "AI-Architect-Resume-v3" \
  --applied-date "2026-03-19"

Logging Activity

./scripts/job-tracker.sh log JOB015 \
  --event interview_scheduled \
  --details "3rd round with VP Engineering, Monday 10am"

Deleting a Job

# Delete with confirmation prompt
./scripts/job-tracker.sh delete JOB015

# Delete without confirmation (for scripts/automation)
./scripts/job-tracker.sh delete JOB015 --force

Note: Delete clears the row data but preserves the activity log history.

Searching Jobs

# Simple text search
./scripts/job-tracker.sh search "goldman"

# Search specific columns
./scripts/job-tracker.sh search "AI.*Architect" --columns role --regex

# Fuzzy search
./scripts/job-tracker.sh search "goldmn" --fuzzy

Filtering Jobs

# By status
./scripts/job-tracker.sh list --status interview

# Limit results
./scripts/job-tracker.sh list --limit 10

# JSON output
./scripts/job-tracker.sh list --json

Validation Rules

Status Values (Title Case)

Status Meaning
Discovered Found but not yet applied
Applied Application submitted
Screening Initial review/HR screen
Interview Active interview process
Karat Test Scheduled Technical assessment pending
Offer Offer received
Rejected Not selected
Withdrawn Candidate withdrew
Accepted Offer accepted
Closed Position no longer available

The CLI auto-normalizes status to Title Case (interviewInterview).

Event Types (lowercase)

Event Meaning
discovered Initial job discovery
applied Application submitted
recruiter_contact Recruiter reached out
user_reply You responded to recruiter
interview_scheduled Interview booked
interview_completed Interview done
test_scheduled Assessment booked
test_completed Assessment done
offer_received Offer extended
rejection Application rejected
follow_up Follow-up action needed
status_change Status was updated
note General note

Contact Validation

Contacts must be Google Contacts links:

https://contacts.google.com/person/c[alphanumeric]

Bypass with --no-strict-contacts flag.

Google Apps Script (Optional)

For manual job entry via the Google Sheet form tab, install the Apps Script:

  1. Open your Google Sheet
  2. Go to Extensions → Apps Script
  3. Delete existing code in Code.gs
  4. Paste contents of scripts/job-tracker-appscript.js
  5. Click Save
  6. Refresh the Google Sheet
  7. Use the new 🎯 Job Tracker menu

Menu Functions

  • ➕ Add Job — Creates job from form fields
  • 📥 Load Job to Edit — Loads existing job into form
  • 💾 Save Changes — Saves form changes back
  • 📝 Add Log Entry — Adds activity log
  • 🧹 Clear Form — Clears form fields
  • 🔄 Refresh Next ID — Updates ID counter
  • ⚙️ Setup Data Validation — Adds dropdowns (run once)

Files

jobs-hunter-claw/
├── SKILL.md                           # This file
├── README.md                          # GitHub readme
├── scripts/
│   ├── job-tracker.sh                 # CLI for CRUD operations
│   └── job-tracker-appscript.js       # Google Apps Script
└── references/
    └── google-sheet-setup.md          # Sheet setup guide

Troubleshooting

"JOB_TRACKER_SPREADSHEET_ID environment variable is required"

Set the environment variable:

export JOB_TRACKER_SPREADSHEET_ID="your-google-sheet-id"

"gog: command not found"

Install gog CLI:

brew install steipete/tap/gogcli

"Google API error (403)"

Authenticate gog with Sheets access:

gog auth add [email protected] --services sheets

"Permission denied" when running job-tracker.sh

Fix executable permission:

chmod +x /path/to/skills/jobs-hunter-claw/scripts/job-tracker.sh

Cron jobs not delivering to Discord

Use the full channel format: channel:CHANNEL_ID (not just discord).

Version History

  • 1.4.0 — Specified google/gemini-flash-latest as required model for cost efficiency
  • 1.3.0 — Added delete command for removing jobs; uses gog sheets clear for proper row clearing
  • 1.2.0 — Removed hardcoded spreadsheet ID, now requires JOB_TRACKER_SPREADSHEET_ID env var
  • 1.1.0 — Added agent setup and cron job documentation
  • 1.0.2 — File extensions fixed for ClawHub compatibility
  • 1.0.0 — Initial release
Usage Guidance
Do not install or run cron tasks until the following are clarified and validated: (1) Ask the publisher to correct registry metadata to list required binaries (gog, bash) and required env vars (at minimum JOB_TRACKER_SPREADSHEET_ID) and to declare any additional credentials (Gmail/Calendar/Discord tokens) needed for email scans or channel posting. (2) Inspect the included scripts yourself — they manipulate your Sheets using the gog CLI and will require gog-authenticated access; verify the gog Homebrew tap and the GitHub/ClawHub repo URLs are legitimate. (3) Avoid granting Gmail/Calendar or bot posting tokens unless absolutely necessary; if you must, use a dedicated service account with minimal scopes and share only the spreadsheet with that account. (4) If you plan to run cron/email scanning, restrict the agent's permissions, run it in an isolated workspace, and review logs regularly. If the publisher cannot justify or correct the missing declarations, treat the skill as untrusted.
Capability Analysis
Type: OpenClaw Skill Name: jobs-hunter-claw Version: 1.4.0 The skill contains a critical command injection vulnerability in `scripts/job-tracker.sh` within the `cmd_search` function. User-provided search queries are unsafely embedded into an `awk` script, which allows for arbitrary shell command execution via the `system()` function (e.g., by injecting `"); system("..."); #`). Additionally, the script uses `python3` heredocs with unescaped shell variables in several commands (`add`, `log`, `update`), which can lead to script breakage or further injection risks. While these appear to be unintentional programming flaws rather than deliberate malware, they create a high-risk attack surface for prompt injection if the agent processes untrusted data like job descriptions or recruiter emails.
Capability Assessment
Purpose & Capability
The skill claims to be a Google Sheets-based job tracker (discover → apply → track), which legitimately needs Google Sheets access and a spreadsheet ID. However the registry metadata lists no required env vars or binaries while SKILL.md and the shipped scripts clearly require the gog CLI, bash, and an environment variable JOB_TRACKER_SPREADSHEET_ID. This mismatch means the declared registry requirements are incomplete.
Instruction Scope
SKILL.md includes instructions for cron jobs that say the agent should 'scan email for job-related messages' and 'check calendar', yet the shipped code (shell script + Apps Script) only implements Sheets CRUD operations; there is no explicit code to perform email/calendar scans or guidance on what credentials/services are required for those actions. The instructions also tell agents to set the spreadsheet ID via environment or TOOLS.md and to post to external channels (Discord channel IDs) in cron tasks — actions that involve access to email, calendar, and external channels but these accesses are not declared or implemented in the included code.
Install Mechanism
There is no formal install spec in the registry, but SKILL.md offers installation via ClawHub or git clone and suggests installing gog via Homebrew (steipete/tap). The included files are plain scripts and Apps Script; there are no downloads from unknown hosts. This is moderate risk because the skill expects you to run scripts and install third-party CLI (gog) from a tap — verify the source of that tap and the ClawHub/GitHub repositories before installing.
Credentials
The runtime clearly needs JOB_TRACKER_SPREADSHEET_ID and Google authentication credentials (gog auth with client_secret.json or service account), but the registry metadata lists no required env vars or primary credential. The scripts also reference posting to channels (cron examples use Discord channel IDs) and suggest scanning email/calendar — these would require additional credentials (Gmail, Calendar, or bot tokens) that are not declared. Requesting undeclared secrets or granting broad Google/Gmail access would be disproportionate without clear justification.
Persistence & Privilege
The skill is not marked always:true and does not request persistent system-wide privileges. However SKILL.md encourages setting up cron jobs and agent-level environment configuration and suggests posting to external channels; if you enable cron/email scanning and give the agent Gmail/Calendar or Discord posting rights, the operational blast radius increases. Autonomous invocation is allowed by default — combine that with undeclared credentials and cron tasks only if you trust the skill.
How to Use
  1. Make sure OpenClaw is installed (local or Docker)
  2. Run the install command in chat: /install jobs-hunter-claw
  3. After installation, invoke the skill by name or use /jobs-hunter-claw
  4. Provide required inputs per the skill's parameter spec and get structured output
Version History
v1.4.0
Specified google/gemini-flash-latest as required model for cost efficiency. Updated agent creation docs.
v1.3.0
Added delete command. Fixed add to handle empty rows in spreadsheet. Filter empty rows from list output.
v1.2.0
BREAKING: Removed hardcoded spreadsheet ID. Now requires JOB_TRACKER_SPREADSHEET_ID environment variable.
v1.1.0
Consolidated naming (jobs-hunter-claw), added agent setup and cron job documentation, improved validation rules docs
v1.0.2
Include CLI (job-tracker.sh) and Apps Script (job-tracker-appscript.js)
v1.0.1
Fix: Include CLI and Apps Script files (renamed to .sh/.js for ClawHub compatibility)
v1.0.0
Initial release: CLI + Apps Script for Google Sheets job tracking
Metadata
Slug jobs-hunter-claw
Version 1.4.0
License MIT-0
All-time Installs 0
Active Installs 0
Total Versions 7
Frequently Asked Questions

What is Jobs Hunter Claw?

Automate job discovery, application submission, status tracking, and activity logging using Google Sheets as the central data store for your job hunt. It is an AI Agent Skill for Claude Code / OpenClaw, with 282 downloads so far.

How do I install Jobs Hunter Claw?

Run "/install jobs-hunter-claw" in the OpenClaw or Claude Code chat to install it in one step — no extra setup required.

Is Jobs Hunter Claw free?

Yes, Jobs Hunter Claw is completely free, licensed under MIT-0. You can download, install and use it at no cost.

Which platforms does Jobs Hunter Claw support?

Jobs Hunter Claw is cross-platform and runs anywhere OpenClaw / Claude Code is available (cross-platform).

Who created Jobs Hunter Claw?

It is built and maintained by ABFS Tech (@quantdeveloperusa); the current version is v1.4.0.

💬 Comments