←Back to projectsMAJA · Autonomous Multi-Agent Job Application System
2026
An autonomous multi-agent system that automates job applications end-to-end, from search to submission, with human-in-the-loop checkpoints.
Tech stack
PythonLangGraphPlaywrightSQLiteFlaskAnthropic API (Haiku/Sonnet/Opus)Gemini 2.5 Flash-Lite
What it does
- Runs the full job application lifecycle: searches for roles, evaluates fit, drafts tailored materials, fills the form, and tracks the outcome
- Splits the work across 8 agents with defined inputs, outputs and ownership, so each one has a single job and a fixed contract with the others
- Governs every application through a formal state machine, from Discovered to Applied, with rules preventing invalid transitions. Letting agents call each other directly proved unreliable, so an orchestration layer now decides what happens next
- Pauses for human approval at the points that matter, including before anything is submitted, and resumes from the same checkpoint rather than starting over
- Automates the browser with Playwright, handling dynamic forms, dropdowns and file uploads, and reconnects to a live browser session so a paused application continues on the exact page it stopped at
- Tests against a local harness that simulates successful runs, checkpoints, broken forms and failures, backed by 1,300+ Pytest tests, so the system can be debugged without hammering real job sites
- Logs every agent decision and state change to a Flask dashboard, which is how most of the debugging actually happened
- Deployed to an AWS EC2 instance