Job Hunter Agent Phase 1 banner
BalaGaneshKumar BalaGaneshKumar

Job Hunter Agent Phase 1

Development community

Description

Phase 1 archive of a job-hunting dashboard I built entirely by prompting Claude, with no programming background. Automated scraping was removed after hitting job portals' ToS restrictions — kept here as a documented, working local tool for tracking applications.

Installation

This entry records only its repository, not the path inside it, so there is no exact command to give. Open the source below and copy the folder into ~/.claude/skills/, or the file into ~/.claude/agents/.

README

JobHunterAgent — Phase 1 (Archived)

Automated job-search assistant for Portal B, Portal A, and Portal C: a Counter → Scraper → Validator pipeline driven by a local dashboard, plus a manual "Career" application tracker.

**Status: Phase 1, stopped here.** See [Limitation](#limitation-why-this-stopped) below.

Per-file documentation

Every `.py` file has a matching doc in [`docs/`](./docs) (e.g. `docs/scraper.py.md`) covering its role, functions, and dependencies.

Architecture

  • Counter (job_counter.py + counter_portal_b.py / counter_portal_a.py / counter_portal_c.py) — estimates total job count per keyword/location before scraping.
  • Scraper (scraper.py + scraper_portal_b.py / scraper_portal_a.py / scraper_portal_c.py) — pulls job listings via Selenium, writes to scraper_jobs.xlsxjobs.csv.
  • Validator (validator.py + validator_portal_b.py / validator_portal_a.py / validator_portal_c.py) — opens each scraped job's URL and classifies it Internal/External/Ineligible.
  • Dashboard (dashboard_server.py + dashboard_*.py) — local web UI (localhost:8080) to configure, launch, and monitor the above as subprocesses, plus a Career tab for manually tracked applications.
  • Shared infrastructure: create_driver.py / antibot_helpers.py (browser lifecycle), search_state.py (resumable scrape state), tracker.py / blacklist_manager.py (persistence), workflow_tracker.py (progress/logging).

Modules

  • Scraper modules (per portal) — one module per job portal handles discovery of postings for that portal.
  • create_driver — sets up the browser session used for scraping.
  • search_state — tracks scraping progress (current page, job counts, completed flags) per portal so runs can resume instead of restarting.
  • tracker — writes discovered jobs to a job store (Excel/CSV) and syncs to a master jobs file.
  • job_counter — determines total postings/pages available for a search before scrapin