Explore Agents AI Tools

In development · Public

AI Job Agent

A local-first agent that finds jobs, ranks them against your CV and explains every match with quotes.

Context
Personal project
When
Oct 2026 —
Platforms
Web (self-hosted)
Catalog id
ai-job-agent

Job hunting means reading hundreds of listings against your own CV. The agent searches allowlisted job boards, scores each listing in code and backs every claim with a verbatim quote — it never applies or messages anyone.

A self-hosted web app with a background worker. Upload a CV, mark which profile answers are verified, and ask the agent to find roles in India and the Middle East. It searches allowlisted public job sources, saves matches, and runs a match analysis that quotes your CV for every point.

Phases 1–3 of a 12-phase roadmap are complete. Applying, tailored CVs and outreach are later phases and are not built.

The problem

Matching a CV to job listings is slow, and AI tools that “auto-apply” are a liability: they invent experience and act on your behalf without asking.

The approach

Keep the agent’s power deliberately small — read, search allowlisted sources, save, analyse — and make every output checkable: quotes are verified word for word, scores are computed by code, and every step is logged.

What it includes

  • Encrypted CV uploadPDF/DOCX with text extraction and suggested contact details.
  • Verified answersOnly answers you marked verified are ever reused.
  • “Find jobs for me”Greenhouse, Lever, Ashby, Remotive and optional JSearch; deny-by-default source registry.
  • Match analysis with quotesEvery claim cites your CV; quotes are checked verbatim, the score is calculated in code.
  • Agent chatPaste a job; the agent saves it and explains the fit, showing each step.
  • Activity timelineDurable tasks with leases, retries, cancellation and a per-step log.
  • Per-user isolation & health checksBetter Auth sessions; Docker, database and model health page.
  • Apply & fill formsPlannedBrowser-agent interfaces only.
  • Tailored CV, cover letters & outreachPlannedRoadmap phases 7–12.

Role

  • Sole developer: architecture, agent loop, tool policy, worker, UI, tests and CI.

How it is put together

  1. Next.js web appChat, jobs, CVs, activity
  2. Task queuePostgreSQL + Redis
  3. Agent loopTool calling, limits, budget
  4. Tool executorSide-effect policy per tool
  5. Model adapterOllama (local) or Anthropic
  • Side-effect-aware tool policy
  • Deny-by-default job sources
  • Verbatim quote verification
  • Budget & step limits

Simplified. The worker runs the same loop for background tasks.

Agent profile

Objective
Find relevant roles and explain, with evidence, how well your CV fits each one.
Input
A chat message on the Agent page, or a background job (search, analysis, CV processing) picked up by the worker from a queue.
Reasoning
A hand-written loop over native tool calling (Anthropic tool_use / Ollama tool_calls). It stops on a step limit, a deadline, an exhausted budget, a refusal or cancellation.
Tools
get_my_profile, get_my_verified_answers, get_primary_cv_text, save_job_posting, list_saved_jobs, analyze_job_match
Execution
Tasks are durable: leased, reconciled, retried and cancellable, with every step recorded and shown on the Activity page. Analysis output is validated — quotes must match the source text exactly.
Safety
Each tool declares its side effect (none, internal write, external read, external write, irreversible); the executor uses that to decide when a policy check or approval is required. No AI call runs without consent, a key and budget. It never logs in, scrapes behind sign-in, or submits anything.
Models
Local first: Ollama with qwen3:4b-instruct on your own machine, so the CV never leaves it. Anthropic is an opt-in paid alternative with a monthly budget cap.

Screens

Jobs page with a completed search and matched roles
Find jobs → ranked by skills match
Agent page explaining what the agent can and cannot do, showing the local Ollama model in use
Agent chat — states its limits and the model in use
Activity page listing a running match analysis and completed job search and CV extraction tasks
Durable background tasks