Engine
ACTIVE SERVICE
Application Queue & Submission Engine
Orchestrates candidate application processing across the complete 10-state life-cycle. Handles question resolution, human verification checkpoints, retry queues with exponential backoff, rate limit caps, and instant emergency pause controls.
The 10 Application Lifecycle States
| State | Description |
|---|---|
| DISCOVERED | Job fetched and normalized into database. |
| MATCHED | Match score calculated (exceeds threshold). |
| PREPARING | AI tailored resume and answers are generating. |
| READY_FOR_REVIEW | Package complete; ready for manual review or auto-apply. |
| REQUIRES_USER_ACTION | Employer asks unknown/sensitive question not in profile. |
| SUBMITTING | Direct RPC submission in progress. |
| SUBMITTED | Confirmed receipt received from platform RPC. |
| SUBMISSION_UNCONFIRMED | Ambiguous result; checked via application history. |
| FAILED | Platform error or rejection logged to audit table. |
| EXPIRED | Listing removed or no longer accepting applicants. |
The 3 Automation Modes
- 1. Research Only: Discovers jobs and calculates match scores. ZERO applications prepared or submitted.
- 2. Prepare Automatically: Discovers jobs, tailors resumes, answers questionnaires, and places applications in
READY_FOR_REVIEW. Submissions require explicit 1-click user approval. - 3. Auto Apply: Automatically submits applications for qualifying on-site jobs meeting score thresholds and not on blacklist. Halts on unknown questions or expired sessions.
Lifecycle REST Endpoints
POST /v1/jobs/:id/prepare
Prepares tailored resume and questionnaire answers for a job.
GET /v1/jobs/applications/list
List all applications filtered by status or platform.
POST /v1/jobs/applications/:id/submit
Triggers verified direct submission to LinkedIn Easy Apply or Naukri.
POST /v1/jobs/applications/:id/action
Submits candidate answers for an application in REQUIRES_USER_ACTION state.
Emergency Stop & Killswitch
Triggering POST /v1/jobs/automation/pause immediately trips the circuit breaker:
curl -X POST 'http://localhost:3010/v1/jobs/automation/pause' \
-H 'X-API-Key: um_live_...'