Personal tool · LLM

JobHunter

A local cockpit for job and freelance search: it collects postings from many sources, scores them against my profile and drafts replies that I review and send myself.

JobHunter
Year
2026
Status
Working, personal tool
Runs on
127.0.0.1 only
Stack
Python · FastAPI · APScheduler · SQLite · Claude · OpenAI · Gemini · plain JS
  • 6+sources in one feed
  • 0–100explainable score for every posting
  • 4LLM providers, switchable in settings
  • 0messages sent without me

The problem

Postings are spread over Djinni, DOU, Work.ua, Freelancehunt, Upwork and Telegram channels, many of them duplicates. Reading all of them and writing a good reply to each takes hours a day.

How it works

  1. 01

    Collect

    Source plugins run in parallel with timeouts, on a schedule or on demand.

  2. 02

    Deduplicate

    By source ID, and fuzzily by title and company across sources ("also on: DOU").

  3. 03

    Score 0–100

    Explainable rules: skills, role, seniority, pay, remote, language, freshness and deal-breakers.

  4. 04

    Deep review

    An LLM grades A–F with gaps, red flags, what to stress and a price; answers are cached and every call's cost is logged.

  5. 05

    Draft replies

    Cover letters, Upwork proposals, Freelancehunt bids, recruiter DMs and follow-ups, checked by a critic pass.

  6. 06

    Track the funnel

    A kanban board, a timeline, follow-up reminders and reply stats per source. Nothing is ever sent automatically.

SourcesDjinni, DOU, Upwork…SchedulerAPSchedulerCollectorparallel, timeoutsDedupID + fuzzy titleScoringrules, 0–100LLM reviewA–F, cached, costedDrafts + criticletters, proposalsFunnelkanban, reminders

Limits I know about

  • It is built around one person's profile; making it multi-user would need accounts and isolated storage.

Need something like this?

Tell me about your task and data. I will answer with how I would approach it.

Discuss a project →