Agent skill

Jobhuntbot

by DanielPan12 in DanielPan12/JobHuntBot

A reusable job application workflow for Codex and other AI agents.

MITAuto-check passedBusiness, Finance & HR

Install Jobhuntbot

skills CLI
$ npx skills add DanielPan12/JobHuntBot --skill jobhuntbot -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install DanielPan12/JobHuntBot jobhuntbot --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Claude Code skills documentation · loads skills from .claude/skills/

Facts

Skill name
jobhuntbot
GitHub stars
855
Token cost
~3.1k tokens
SKILL.md length
1,683 words
Files
33 (incl. references)
Skills in repo
1
Repo updated
First seen
Licence
MIT

At a glance

A reusable job application workflow for Codex and other AI agents.

  • Works in 10 steps: Initialize the System → Confirm the Company and Research the… → Screen Before Applying → …
  • A user wants to set up
  • SKILL.md covers Core Contract, Workflow and Safety
  • Runs JavaScript, Batch and Shell scripts from its folder

What it does

Jobhuntbot is an agent skill from DanielPan12/JobHuntBot. A reusable job application workflow for Codex and other AI agents. Use when a user wants to set up or run an AI-assisted job search system: collecting a candidate profile, creating an application dashboard, defining screening and resume-routing rules, finding and ranking job leads, applying to jobs within explicit safety boundaries, recording outcomes, triaging blockers, or iterating a job application workflow.

Its SKILL.md is about 3.1k tokens, which your agent loads only when the skill is triggered. The skill folder holds 34 other files, including reference files (for example `README.md`, `dashboard/server.js` and `dashboard/start-dashboard.sh`).

It sits in Business, Finance & HR, covering Job search and resumes. The repository describes itself as: Agent-led job application workflow with a local progress-tracking dashboard — works with any AI coding agent that can read files and follow instructions.AI Agent… The licence is MIT.

When your agent uses it

  • A user wants to set up
  • Run an AI-assisted job search system: collecting a candidate profile
  • Creating an application dashboard
  • Defining screening and resume-routing rules

Example prompts

  • “/jobhuntbot”

Requirements

  • Node.js
  • A Bash shell

Workflow steps

10 steps, taken from the step headings in SKILL.md.

  1. Initialize the System
  2. Confirm the Company and Research the Opening
  3. Screen Before Applying
  4. Shortlist Specific Positions and Let the User Choose
  5. Match Experience to the Role
  6. Route the Resume Strategy
  7. Fill Out the Application
  8. Preview, User Confirms, Submit
  9. Sync Everything — Dashboard and Profile
  10. Learn From Blockers

What it can do on your machine

Read from SKILL.md and the folder at commit 0ccaa11. It shows what the files ask for, not the result of running them.

  • Tool permissions

    Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    Ships script files (JavaScript, Batch and Shell, from the files we listed), which the agent can run.

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    No URLs in SKILL.md.

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names no API keys, tokens, secrets or passwords.

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

Jobhuntbot loads about 3.1k tokens when it runs, and up to ~10k if it reads all its reference files. Until then it costs about 106 tokens; SKILL.md has 1,683 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~106
When it runs · the whole SKILL.md, loaded when a task matches
~3.1k
With references · SKILL.md plus every file in references/, read only if the agent opens them
~10k

Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.

Safety

Auto-check passed

The automated check found no risky patterns in SKILL.md.

Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.

SKILL.md

The full file from DanielPan12/JobHuntBot at commit 0ccaa11, republished under its MIT licence (© DanielPan12). 1,683 words, ~3,080 tokens.

Download SKILL.mdSave it as .claude/skills/jobhuntbot/SKILL.md (or your agent's skills folder). This skill also uses 32 other files; get the full folder from GitHub.
name
jobhuntbot
description
A reusable job application workflow for Codex and other AI agents. Use when a user wants to set up or run an AI-assisted job search system: collecting a candidate profile, creating an application dashboard, defining screening and resume-routing rules, finding and ranking job leads, applying to jobs within explicit safety boundaries, recording outcomes, triaging blockers, or iterating a job application workflow.

JobHuntBot

JobHuntBot is a job application operating workflow for AI agents. It helps users turn job searching into a repeatable system: profile, dashboard, screening rules, resume strategy, application execution, blocker triage, and follow-up.

Core Contract

Optimize for truthful, traceable, interview-generating applications, not blind volume.

Treat setup as an agent-led onboarding flow, not a user homework packet. Ask only for the minimum information needed to start safely, create drafts/templates for the user, then iterate after the first trial run.

Before searching or applying, make sure the user has:

  1. A candidate profile.
  2. A dashboard or workbook for tracking outcomes.
  3. Application screening rules.
  4. A resume strategy.
  5. Clear safety boundaries for browser automation and form answers.

If any source is missing, initialize it first. Do not guess identity, legal, work authorization, compensation, current employment, sponsorship, relocation, or other high-impact facts.

Workflow

1. Initialize the System

Read references/setup-workflow.md when:

  • The user is installing JobHuntBot for the first time.
  • The user asks to create a profile, dashboard, rules, templates, or GitHub-ready setup.
  • The user has not provided enough information for safe applications.

Use the templates in templates/ to create user-owned files:

  • candidate_profile.template.json
  • application_rules.template.md
  • resume_routing.template.md
  • answer_bank.template.md
  • experience_bank.template.md
  • dashboard-template/*.csv
2. Confirm the Company and Research the Opening

When the user names a specific company (or you're evaluating one you found), work it one company at a time:

  • Check whether the company already has a row in job_pool. If not, add one (role family, target city, etc.) before doing anything else — every company you touch should be traceable in the dashboard.
  • Confirm whether the target class/届 recruiting cycle is actually open, not just "the company has a careers page." Search the company's own official site/campus portal first for the specific application entry point (not just the homepage). Cross-check with a general web search to corroborate posting dates and see if the role is still live.
  • Watch for the "internship confirmed, full-time not confirmed" trap and the "届/year label doesn't match the actual eligibility window" trap — both have burned real trials. Don't mark a role as confirmed-open on a hedge-word search summary; write down the actual eligibility text.
  • Write findings back into job_pool immediately (job_url, next_action, notes, and a status update if warranted) — don't hold research in your head until the end of the session.
  • If you add a structured status column to job_pool for tracking a specific recurring question (e.g. whether a hiring cycle is confirmed open), set it explicitly every time you finish checking a row rather than leaving the dashboard to infer it from free-text notes — notes-based regex guessing quietly rots into false positives once notes get detailed. A stale structured column means the dashboard won't reflect what you just learned, even after a refresh.
3. Screen Before Applying

Prioritize jobs by freshness, fit, feasibility, and conversion likelihood. Default to fresh jobs from the last 24 hours, then 48 hours if needed.

Skip or defer roles that violate the user's rules, are clearly overleveled, are closed or duplicate, require unsupported work authorization, need missing materials, or involve long account-heavy flows with weak fit.

4. Shortlist Specific Positions and Let the User Choose

Once a company's opening is confirmed, don't jump straight to filling out a form. Find the specific postings that match the user's target role families (search the portal by keyword — job categories on a careers site often don't literally say "supply chain" even when a matching role exists) and present a short list: title, one-line fit summary, level/eligibility, location, and whether it's full-time campus recruiting (not an internship or a stale prior-cycle posting).

If a company limits applicants to one or two total submissions in the cycle, say so before the user picks — it changes the decision. Let the user pick which posting to pursue; only proceed on your own initiative if the user has already named the exact posting.

5. Match Experience to the Role

Before touching the application, decide which of the candidate's experiences to actually feature for this specific posting — this is a separate decision from which resume file to use.

  • Check experience_bank.md (created from templates/experience_bank.template.md during setup) for the target role family's candidate pool — it deliberately keeps a wide, overlapping pool per role family (aim for 3-5 internships + 3+ projects rated 强/中, fewer only where the candidate's real background is genuinely thin in that direction) rather than one narrow "owned" set, since closely related role families usually share supporting evidence.
  • Read this posting's actual JD and pick 2-4 experiences from that candidate pool that best fit it — favor 强 matches, but a 中 match that happens to hit something the JD specifically calls out can outrank a 强 match that doesn't. If the JD emphasizes something the whole pool underrepresents, pull in a different experience from the full inventory instead of forcing a weak fit.
  • Before using them, tell the user which experiences (internships and projects) were selected for this application and why. Keep it short (a list of names + one-line reasoning), but always surface it as a checkpoint — don't silently pick and move on.
  • Use the selected 2-4 experiences — not the full inventory — when answering resume-adjacent free-text fields: "relevant experience/project" custom questions, self-evaluation/cover-letter fields (synthesize personality + the selected experiences + this specific company/role fit; don't dump a generic bio), and Precision-mode resume bullet emphasis.
  • After submitting, note which experiences were actually used in application_log's notes — this lets a later application to a similar role or company reuse the same reasoning instead of re-deriving it.
  • Same truthfulness rule as everywhere else: reorder, select, and emphasize freely; never invent, exaggerate, or stretch an experience to make it look like a better fit than it is. If nothing in the bank fits well, say so and use the closest honest match.
6. Route the Resume Strategy

Use the user's chosen strategy:

  • Precision mode: screen for high-fit jobs first, then tailor resume/materials before applying.
  • Volume mode: use prebuilt resume variants by role family and move quickly.

Default to Volume mode unless the user explicitly asks for Precision. Individual high-fit roles can be promoted from Volume to Precision.

Never fabricate experience, credentials, degrees, employers, dates, work authorization, or portfolio artifacts.

Show full SKILL.md (664 more words)Show less
7. Fill Out the Application

Read references/application-playbook.md before operating browser-based applications, LinkedIn Easy Apply, Simplify, Greenhouse, Lever, Ashby, Workday, or other ATS flows.

Read the user's application_rules.md for current execution preferences. Default to the playbook's Batch Filling & Consolidated Verification: prepare confirmed answers once, fill the largest predictable group of fields in one tool call, then inspect the saved module together and repair only discrepancies. Group adjacent simple modules when the page and controls remain predictable; avoid a separate model turn or full-page read after each field.

On a new form, prefer uploading the chosen resume first and auditing the parsed entries together. Avoid re-parsing an already repaired form unless necessary, since parsing can overwrite corrections. Fill whatever you confidently can from candidate_profile.json, resume_routing.md, experience_bank.md (for relevant-experience/self-evaluation fields, using the combo picked in step 5), and answer_bank.md. Collect questions together for anything on the never_guess list, anything requiring a subjective call, or anything not backed by the résumé or profile; leave those fields pending while filling independent confirmed fields. Verify saved-account bio text before retaining it in a real submission.

Stop or hand off for CAPTCHA, Cloudflare, anti-bot checks, login or 2FA, unclear legal/identity questions, missing files, payment prompts, permission prompts, or anything that would require bypassing a site control.

8. Preview, User Confirms, Submit

Before the final submit click, show the user a summary (company, role, resume version, the internship/project experiences selected in step 5, key answers, compensation figures). Do not click final submit until the user explicitly says to — a preview screen is not consent. After submitting, look for real confirmation evidence (success text, a thank-you/confirmation URL, a candidate ID) before recording anything as Submitted.

9. Sync Everything — Dashboard and Profile

Every job lead or attempt must end in one of these states:

  • Submitted: explicit confirmation was seen.
  • Skipped: not worth applying, with reason.
  • Blocked: automation could not proceed, with blocker and next step.
  • Needs user: user must provide a missing high-impact fact, complete CAPTCHA/login/upload, answer a sensitive question, or make a required judgment before the agent can decide.
  • Pending: selected for later action because it appears worth reviewing or applying after known prerequisites are satisfied.

Count only confirmed submissions. Saved jobs, trackers, autofill badges, or "quick apply" labels do not count.

For a first trial or demo run, default to lead finding only: find, screen, classify, and update the dashboard without opening real application flows or submitting anything. In lead-finding-only runs, update job_pool, daily_dashboard, blocker_queue, and automation_rules as needed; leave application_log empty because no application attempt occurred.

For a real submission, update the same dashboard files (job_pool status, application_log with the resume version/evidence/answers used, follow_up if a next step is already known, daily_dashboard summary) and the candidate's own profile: if filling the form surfaced a fact that isn't already in candidate_profile.json (a new internship detail, an updated exam/grade result, a preference the user stated on the spot, anything), write it back into the profile before moving on — don't let it live only in the one application you just filed. Same discipline as everywhere else in this skill: record what you've confirmed, don't invent what you haven't.

When recording a submission in application_log, also capture the full job description text (responsibilities and requirements) from the official posting into the job_description field, copied verbatim from the source — not summarized or paraphrased. This is what makes later interview prep possible without having to re-find a posting that may since have been taken down.

10. Learn From Blockers

After each run, summarize blockers and convert repeated issues into rules. JobHuntBot should improve through use: address matching, dropdown handling, resume upload checks, account/session checks, and ATS-specific lessons belong in the dashboard and rules.

Safety

Read references/safety-and-boundaries.md when the user asks about automation limits, CAPTCHA, email verification, account login, privacy, public sharing, or what should not be included in a repo.

Do not publish or copy private resumes, phone numbers, emails, addresses, immigration documents, application history, browser sessions, cookies, OTPs, or user-specific secrets into a public JobHuntBot package.

© DanielPan12, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

SKILL.md and 32 other files (references) in the repository root of DanielPan12/JobHuntBot.

  • SKILL.md
  • .gitignore
  • LICENSE
  • README.md
  • dashboard/application_log.csv
  • dashboard/automation_rules.csv
  • dashboard/blocker_queue.csv
  • dashboard/daily_dashboard.csv
  • dashboard/dashboard.html
  • dashboard/follow_up.csv
  • dashboard/job_pool.csv
  • dashboard/resume_rules.csv
  • dashboard/server.js
  • dashboard/start-dashboard.bat
  • dashboard/start-dashboard.sh
  • references/application-playbook.md
  • references/safety-and-boundaries.md
  • references/setup-workflow.md
  • templates
  • … and 14 more

Open the folder on GitHubat commit 0ccaa11

Compare with similar skills

Jobhuntbot next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.

Jobhuntbot compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Jobhuntbot this skillDanielPan12/JobHuntBot855—~3.1kAutomated safety check: PassMIT
Reactive Resume Builderreactive-resume/reactive-resume44k—~1.5kAutomated safety check: PassMIT
Career-Ops Job Search Centercareer-ops-hq/career-ops74k—~3.6kAutomated safety check: PassMIT
freehire Tech Job SearchMadsLorentzen/ai-job-search45k—~2.7kAutomated safety check: PassMIT
LinkedIn Job SearchMadsLorentzen/ai-job-search45k—~1.2kAutomated safety check: PassMIT
Internship Project Preparation ToolLiuMengxuan04/shushu-internship-tool2.1k—~2.3kAutomated safety check: PassCustom licence

Similar skills

  • Reactive Resume Builder

    reactive-resume/reactive-resume

    Builds resumes as valid JSON for the open-source Reactive Resume app by interviewing you, and can track job applications through its MCP tools.

    44k GitHub stars~1.5k tokensUpdated today
    Business, Finance & HRAuto-check passed
  • Career-Ops Job Search Center

    career-ops-hq/career-ops

    Routes job-search requests to modes for evaluating offers, scanning portals, generating tailored CVs, tracking applications and drafting outreach, starting from a pasted job URL or description.

    74k GitHub stars~3.6k tokensUpdated today
    Business, Finance & HRAuto-check passed
  • freehire Tech Job Search

    MadsLorentzen/ai-job-search

    Searches live software, data and engineering job listings through the freehire.me public API, or fetches one posting, with filters for country, region and skills.

    45k GitHub stars~2.7k tokensUpdated today
    Business, Finance & HRAuto-check passed
  • LinkedIn Job Search

    MadsLorentzen/ai-job-search

    Searches LinkedIn's public job listings for any location or remote work and fetches the full description of a posting, with no login or API key.

    45k GitHub stars~1.2k tokensUpdated today
    Business, Finance & HRAuto-check passed
  • Internship Project Preparation Tool

    LiuMengxuan04/shushu-internship-tool

    Turns a target internship job description into a resume-ready, interview-ready project by finding and auditing GitHub projects and drafting resume bullets and interview Q&A.

    2.1k GitHub stars~2.3k tokensUpdated 3 mo ago
    Business, Finance & HRAuto-check passed
  • Career-Ops Apify Job Source

    career-ops-hq/career-ops

    How to scan a job source through an Apify actor as a keyed provider.

    74k GitHub stars~246 tokensUpdated today
    Business, Finance & HRAuto-check: notes

Questions about Jobhuntbot

What does Jobhuntbot do?

A reusable job application workflow for Codex and other AI agents. Jobhuntbot is an agent skill from DanielPan12/JobHuntBot. A reusable job application workflow for Codex and other AI agents.

When should I use Jobhuntbot?

Jobhuntbot fits situations like: A user wants to set up; run an AI-assisted job search system: collecting a candidate profile; creating an application dashboard; defining screening and resume-routing rules.

How do I install Jobhuntbot in Claude Code?

Run `npx skills add DanielPan12/JobHuntBot --skill jobhuntbot -a claude-code`. Or copy the skill folder (the DanielPan12/JobHuntBot repository) into .claude/skills/jobhuntbot in your project. Claude Code loads it when a task matches its description.

How do I install Jobhuntbot in Codex?

Run `npx skills add DanielPan12/JobHuntBot --skill jobhuntbot -a codex`. Or copy the skill folder (the DanielPan12/JobHuntBot repository) into .agents/skills/jobhuntbot in your project. Codex loads it when a task matches its description.

Can I use Jobhuntbot in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add DanielPan12/JobHuntBot --skill jobhuntbot -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/jobhuntbot, .gemini/skills/jobhuntbot, .github/skills/jobhuntbot and .opencode/skills/jobhuntbot in your project.

What does Jobhuntbot need to run?

Going by SKILL.md and its folder, Jobhuntbot needs JavaScript, Windows cmd and a shell for the scripts in its folder. Our summary lists: Node.js; A Bash shell.

Does Jobhuntbot access the network?

SKILL.md contains no URLs. Any network use would come from the scripts or tools the agent runs. This is read from the text; nothing was executed.

Is Jobhuntbot safe to install?

Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.

What licence does Jobhuntbot use?

Jobhuntbot is published under the MIT licence (from the LICENSE file in the skill folder). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Jobhuntbot use?

About 3.1k tokens (SKILL.md is roughly 12k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full. Its references folder adds about 7.2k tokens, read only when the agent opens those files.

What are the alternatives to Jobhuntbot?

Skills that share tags, products or a category with Jobhuntbot: Reactive Resume Builder (reactive-resume/reactive-resume, 44k stars), Career-Ops Job Search Center (career-ops-hq/career-ops, 74k stars), freehire Tech Job Search (MadsLorentzen/ai-job-search, 45k stars) and LinkedIn Job Search (MadsLorentzen/ai-job-search, 45k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Jobhuntbot?

DanielPan12 (a GitHub user) maintains it in DanielPan12/JobHuntBot, which has 855 GitHub stars. The repository was last updated on September 17, 2026.

Source: DanielPan12/JobHuntBot on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.