Job Application Workflow

Prerequisites

• ask_with_files_structured.py at /home/john/py/ask/• document_generator.py at /home/john/py/ask/jobs/• schema.json at /home/john/py/ask/• CV source: ~/CV/cv_llm_optimized.md• Job description file (plain text, .txt or .html)

Step 1: Get Job Description

Option A: From PopIt3 report1. Visit home.critchley.biz/jobs (requires pomelo at home)2. Click job posting link to view full description on JobServe3. Copy-paste to a text file, e.g., JS-131214.txtOption B: From saved email1. Use extract_job.py on .eml file from jobs/ directory: python3 extract_job.py 5225d14a.eml Outputs: 5225d14a_job_description.txtOption C: From PopIt3 auto-save1. PopIt3 job handler may save descriptions to a directory automatically

Step 2: Choose Apply Script

For Operations/DevOps roles: ./apply.sh JS-131214.txtFor AI/ML roles: ./apply_ai.sh JS-AI-ENGINEER.txtFor AI/ML with GPT-4.5: ./apply_ai_gpt45.sh JS-AI-ENGINEER.txtFor Ops with custom prompt: ./apply_v2.sh my-prompt.txt JS-131214.txtFor AI with custom prompt: ./apply_ai.sh my-prompt.txt JS-AI-ENGINEER.txt

Step 3: What Happens Automatically

The apply script runs a complete pipeline:1. Calls ask_with_files_structured.py with: - ~/CV/cv_llm_optimized.md (your authoritative CV) - The job description file - System prompt (inline or from prompt-*.txt) - ../schema.json for structured output - --no-document-references for clean JSON - -o job_application_<ref>.json to save output - Model: gpt-4o (apply.sh) or as configured2. If JSON generation succeeds, calls: python3 document_generator.py job_application_<ref>.json3. Generates DOCX files with filenames from JSON

Output Files

After successful run:• job_application_<ref>.json - Structured JSON (intermediate, inspectable)• <Name>_CV_<Role>.docx - Generated CV• <Name>_Cover_Letter_<Role>.docx - Generated cover letterFilenames are generated by the LLM based on schema; they typically include your name and the role.

Positioning Strategy

Two distinct positioning approaches:Operations/DevOps (apply.sh, apply_v2.sh, prompt-ops.txt):• Lead with 20+ years production operations in financial markets• Python framed as automation/tooling (6+ years)• AI/ML training mentioned as enhancement, not primaryAI/ML (apply_ai.sh, apply_ai_gpt45.sh, prompt-ai.txt):• Lead with AI/ML postgrad qualification (UT Austin, distinction)• Frame as transitioning INTO AI/ML roles• Operations background as unique differentiatorNo-SC variants (prompt-*_no-SC.txt) omit security clearance mentions.

Anti-Hallucination Rules

All apply scripts enforce strict truth constraints:• NEVER fabricate skills not in CV• NEVER invent version numbers (e.g., 'Windows Server 2016/2019')• NEVER upgrade 'basic' to 'experienced'• If job requires missing skill: omit or acknowledge gap honestly• Cross-check every technical claim against source CV

version2