Epic: Generalize the job-apply browser engine into a general browser-task agent
The job-apply flow is the browser automation that "actually worked." Investigation (2026-08-01) confirmed the engine is already ~80% generic: runApplyLoop (lib/apply-loop.ts) is pure orchestration over ApplyDeps<J extends BrowserJobBase> (snapshot → decide → act → handoff). Only the prompt, decideAction, the finish outcomes, the entry point (/apply → JobApplyWorkflow), and the job.apply_agent runner task type are job-specific. All the hard parts — real-profile Chrome reuse, ARIA snapshot/act, captcha/stuck/needs-input handoffs, durable resumable loop — are generic.
Goal: a first-party "Web Task" agent you can point at any URL with an objective, reusing the proven engine. First-party only (no third-party creation — that's the gated epic).
Children (sequence A→D)
Guardrails
- Human-approval on sensitive/irreversible actions (send/pay/delete/post) ON by default.
- Do NOT open this to third-party creators here — see the gated epic.
- Gated on demand: only proceed if the focus wedge (#strategy) shows real usage; this is a demand-free bet until then.
Non-goals
Third-party creation, arbitrary-domain autonomy without approval, mass-action automation (that's the trust-model epic).
Issues
Gated by #68 (focus bet).
Epic: Generalize the job-apply browser engine into a general browser-task agent
The job-apply flow is the browser automation that "actually worked." Investigation (2026-08-01) confirmed the engine is already ~80% generic:
runApplyLoop(lib/apply-loop.ts) is pure orchestration overApplyDeps<J extends BrowserJobBase>(snapshot → decide → act → handoff). Only the prompt,decideAction, thefinishoutcomes, the entry point (/apply→JobApplyWorkflow), and thejob.apply_agentrunner task type are job-specific. All the hard parts — real-profile Chrome reuse, ARIAsnapshot/act, captcha/stuck/needs-input handoffs, durable resumable loop — are generic.Goal: a first-party "Web Task" agent you can point at any URL with an objective, reusing the proven engine. First-party only (no third-party creation — that's the gated epic).
Children (sequence A→D)
POST /v1/instances/:id/browse+browser.taskrunner typeruntime:"browser") wrapping the engineGuardrails
Non-goals
Third-party creation, arbitrary-domain autonomy without approval, mass-action automation (that's the trust-model epic).
Issues
Gated by #68 (focus bet).