Archit OS
~/projects/apex-job-agent/README.md
← all projects
Autonomous Agent·Completed

Apex Job Agent

An autonomous job-search agent that finds roles, ranks them, tailors the application and fills the form, but never submits for you.

Role
Agentic AI Engineer
Timeline
Mar – Jun 2026
Team
Solo
Status
Completed
Apex Job Agent screenshot
7
LLM providers
3
job sources
1,400+
tests
9
failure classes

The problem

Job hunting is repetitive: search several boards, judge relevance, rewrite a resume and cover letter for each role, then retype the same details into a different application form every time. Running an LLM over every posting is slow and expensive, and an agent that submits applications on its own is one you cannot fully trust.

What it does

Multi-source discovery

Scrapes LinkedIn, Indeed and Naukri into one job database.

Two-stage scoring

A free heuristic pre-filter removes obvious misses, so the LLM only scores roles that are worth the tokens.

Ghostwriter and briefer

Tailored resume and cover letter per job, interview prep, and recruiter outreach messages.

Pre-flight checks

Before any browser opens, cheap local checks rule out jobs you already applied to and blacklisted companies. The one network check comes last, so a job that is already ruled out never costs a request.

Approval queue that never submits

You approve jobs and a background worker takes them one at a time, highest score first, within your daily limit. Each ends ready for review, needing you, or failed. Submitting stays your decision.

Universal applier and answer bank

A Playwright form analyser and filler for ATS portals such as Greenhouse, Lever and Workday. Answers from your saved bank are applied first, so only genuinely new questions come to you.

Multi-user with a live dashboard

Per-user accounts with hashed passwords, encrypted API keys and isolated data, plus a dashboard with pipeline stages from Applied to Offer.

Multi-user hardening

scrypt authentication, Fernet-encrypted API keys and per-user isolation, so several people can run it safely on one server.

How it flows

  1. Scrape boards
  2. Heuristic filter
  3. LLM scoring
  4. You approve
  5. Pre-flight checks
  6. Fill the form
  7. You submit

Problems solved

LLM cost at scale

ProblemScoring every scraped posting with a model is slow and burns tokens on roles that were never a fit.

SolutionA cheap heuristic stage first, then the LLM for the shortlist.

Every ATS form is different

ProblemApplication portals disagree on layout, field names and flow, and asking the same question twice is annoying.

SolutionSeparate analyse and fill steps, a universal Playwright layer, and an answer bank that fills known questions before anyone is asked.

Automation that does not overreach

ProblemAn agent that clicks submit by itself can send a wrong answer to a real employer.

SolutionThe queue worker only runs the first pass. Every job ends ready for review, needing you or failed, and the final submit is always a deliberate action of yours.

Every failure is a different failure

ProblemCaptchas, logins, unknown questions and unsupported forms all look like “it did not work”.

SolutionEach failure is classified into exactly one of nine classes, and what happens next depends only on the class, so a person can unblock the ones that need a person.

More than one user

ProblemMoving from a personal script to a platform means credentials and data must never leak between accounts.

SolutionScrypt-hashed passwords, encrypted provider keys, user-isolation tests, and provider base URLs checked against SSRF.

Built with

PythonFastAPIPlaywrightNext.jsReactWebSocketSQLiteAPSchedulerClaude APIGeminiMistralOpenRouterOllamaNVIDIA NIMREST APIs