8 of 122 min

Why full autonomy turned out weaker than managed autonomy

At first it seemed to me that a good result in such a project was full autonomy.

So that the system would find vacancies itself, make decisions itself, send applications itself and not call me into the process at all.

In practice that turned out to be a weak idea.

In a real environment full autonomy quickly turns into noise, risk and loss of quality. The more complex the application form, the more dangerous a system that can’t stop in time.

So the project arrived at another model: not a blind autopilot but managed autonomy.

If a vacancy follows a clear scenario, the project handles it itself: finds it by the right search mode, picks a suitable resume, analyses the vacancy text, assembles a personal cover letter, goes through a simple apply flow and sends the application.

If confidence runs out, it doesn’t try to push through at any cost, it moves the case to a Telegram-first handoff.

You can see this even in the project’s working configuration:

search_mode = 7
browser_submit_mode = "auto_with_handoff"
active_profile = "24x7"
target_applies_per_day = 20
max_submits_per_run = 2
max_submits_per_hour = 3
Approve questionnaire

search_mode = 7 isn’t an abstract number for me but a specific search scenario: the AI/LLM direction for Moscow and St Petersburg. browser_submit_mode = "auto_with_handoff" means: the system closes the simple path itself and sends the complex one to handoff. active_profile = "24x7" puts the project into regular operation mode. target_applies_per_day = 20 sets the daily goal. max_submits_per_run = 2 keeps one run from turning into an aggressive volley. max_submits_per_hour = 3 limits the pace so the system lives long and predictably. Approve questionnaire fixes the main principle of the whole model: where confidence ends, the decision stays with a person.

The project runs manually and on a schedule, follows the right search modes, uses separate runtime profiles for launch windows, pacing and quotas, makes the required number of applications a day and goes through the happy path itself where the decision is reliable enough.

In this model Telegram stopped being just a notification. It became an external control circuit.

Uncertain cases, questionnaire review, handoff and approve go there. Unfinished cases live not in random tabs but in the backlog and state. The next run can pick them up, check their status and continue from the right point.

So the project arrived neither at manual work nor at blind autonomy, but at managed autonomy that lives day to day and brings me in only where quality matters more than automation.

Full autonomy stopped being the goal.

The goal became a system that can do regular work itself and calls a person only at the points where it’s really needed.

Series contents
  1. Automating applications as an answer to market asymmetry
  2. How the bot compares me with a vacancy and assembles an application for it
  3. Why the closure of the job seeker API didn't kill the project but made it grow up
  4. How I kept the system's brain and replaced its transport
  5. The hardest part of auto-apply isn't submit
  6. Auto-apply in visible mode
  7. How the LLM in my project turns a vacancy into a cover letter
  8. Why full autonomy turned out weaker than managed autonomy
  9. I gave the system not only actions but also brakes
  10. How the project lives after applying: statuses, invitations, conversations and a manual dashboard
  11. Dashboard
  12. The most unexpected vacancy my bot found