Skip to content
Back to projects
May 08, 2026
2 min read

JobClaw

AI job-hunting agent built at the OpenClaw Hackathon — scrapes 20+ sources, scores 200+ postings with LLM, drafts cover letters, and tracks the full pipeline end-to-end.

Built this at the OpenClaw Hackathon (Vancouver AI Meetup, Q2 2026). The prompt was simple: build an AI agent that solves a real problem. Job hunting felt like the obvious pick — it’s repetitive, soul-crushing, and ripe for automation.

Demo

What it does

JobClaw wraps a job-scraping + scoring pipeline into a web UI with an AI co-pilot:

  • Scan — pulls from 20+ sources (LinkedIn, Indeed, RemoteOK, Remotive, WeWorkRemotely, HN Who’s Hiring, GC Jobs, Himalayas, Dice, FAANG career pages, Reddit r/forhire, and more). LLM scores each posting against my resume and flags qualified matches
  • Analyze — paste any job URL or description, get a fit score and gap analysis on demand
  • Draft — generates tailored cover letters and resume bullet points for a specific posting
  • Track — application pipeline from interested → applied → interviewing → offer, backed by a JSONL ledger
  • Agent chat — multi-turn AI assistant that knows the full job feed and can walk through applying to a specific role

How it works

The backend is Flask with four components wired as modules (scan_jobs, analyze_fit, draft_application, track_pipeline). Each component reads from a shared data directory — the job scraper runs as a scheduled worker and dumps scored verdicts to JSON. JobClaw reads those files, so the UI is always showing pre-scored results without re-scraping on every page load.

The LLM layer uses Azure OpenAI with multi-turn history stored in-memory per session. The agent knows your current job feed and pipeline state, so you can ask things like “which roles should I apply to today?” and get answers grounded in actual data.

Stack

  • Python, Flask
  • OpenAI
  • LangGraph (agent routing)
  • Multi-source job scraping (20+ sources)
  • JSONL application ledger