How utsapoddar/job_application_automation works
Job Bot discovers and scores postings, then prepares tailored application packets for human review; its scheduled pipeline does not submit applications. A separate approval-gated path can fill forms without submitting. The graph includes the documented discovery, packet-generation, tracking, and manual-fill capabilities. Source excerpts were partial, so links within unsampled subsystems follow README-documented responsibilities and omit uncertain internal wiring.
Main entry points: main.py Scheduled pipeline · models.py Job records · worker.py Form-fill worker · tailor.py Resume tailoring
Components 27
Job discovery
- Scheduled pipeline
main.py - Direct URL intake
apply_to.py - Board discovery
scraper/engine.py - Email ingestion
email_ingest/imap_reader.py - Webhook ingestion
email_ingest/webhook.py - JD retrieval
scraper/jd_fetcher.py
Packet generation
- Resume tailoring
resume_tailor/tailor.py - CV360 review
resume_tailor/resume_checker.py - Cover letters
cover_letter/generator.py - DOCX generation
resume_tailor/docx_gen.py - Application packet
application_packet.py
Tracking and review
- Application tracking
tracker/crud.py - Notifications
notifier.py - CSV export
tracker/export.py
Approved form filling
- Fill approval
applicator/approved_fill.py - Form-fill worker
applicator/worker.py - Field resolution
applicator/resolver.py
Shared services
- Job records
db/models.py - LLM tiers
llm/interface.py - Browser manager
browser/manager.py
Other components
- Operator
- Job boards
- Job-alert email
- Human reviewer
- Employer forms
- Devant CV360
- LLM providers
Connections 30
- Job boards → Board discovery: provide postings
- Job-alert email → Email ingestion: provide alerts
- Scheduled pipeline → Board discovery: runs discovery
- Scheduled pipeline → Email ingestion: runs ingestion
- Scheduled pipeline → Job records: reads and filters
- Board discovery → Job records: stores jobs
- Email ingestion → Job records: stores jobs
- Webhook ingestion → Job records: stores jobs
- Scheduled pipeline → LLM tiers: scores titles
- Scheduled pipeline → JD retrieval: retrieves descriptions
- JD retrieval → Resume tailoring: provides descriptions
- Scheduled pipeline → Resume tailoring: prepares resumes
- Resume tailoring → LLM tiers: requests tailoring
- Resume tailoring → CV360 review: checks resume
- CV360 review → Devant CV360: checks document
- Scheduled pipeline → Cover letters: generates letter
- Scheduled pipeline → DOCX generation: generates document
- Scheduled pipeline → Application packet: writes packet
- Scheduled pipeline → Application tracking: records ready status
- Application tracking → Job records: updates records
- Scheduled pipeline → Notifications: sends review notice
- Scheduled pipeline → CSV export: exports records
- Application packet → Human reviewer: presents for review
- Human reviewer → Fill approval: authorizes one fill
- Fill approval → Form-fill worker: starts approved run
- Form-fill worker → Browser manager: opens browser
- Form-fill worker → Field resolution: resolves fields
- Form-fill worker → Employer forms: navigates and fills
- Field resolution → LLM tiers: requests field answers
- LLM tiers → LLM providers: calls configured backend