π How to Apply to Jobs with Timothy's AI Agent
python job_application_runner.pyThis will show you test URLs to choose from or let you enter a custom URL.
# Dry run (analyze only, don't fill forms)
python job_application_runner.py "https://company.com/careers/software-engineer"
# Live mode (actually fill the form)
python job_application_runner.py "https://company.com/careers/apply" --live
# Auto-submit after filling
python job_application_runner.py "https://company.com/careers/apply" --live --auto-submitpython job_application_runner.py "https://company.com/careers/apply" --api-key "your-deepseek-key"When you provide a job application URL, Timothy's AI agent will:
- Navigate to the URL
- Detect job application forms
- Extract all form fields and their context
- Analyze each field with DeepSeek AI
- Determine filling strategy for each field
- Extract questions from essay fields
- Identify fields to skip (assessments)
- Map Timothy's profile data to simple fields
- Generate personalized essay responses
- Select appropriate dropdown options
- Prepare file uploads
- Fill all classified fields
- Validate completion
- Optionally auto-submit
π Timothy's AI Job Application Agent
============================================================
π― Target URL: https://techcorp.com/careers/software-engineer
π€ Auto-submit: False
π§ͺ Dry run mode: True
============================================================
π Starting browser...
β
Browser ready
π Navigating to: https://techcorp.com/careers/software-engineer
β
Page loaded: Career Opportunities
π Analyzing page for job application forms...
π Found job application form with 22 fields
π§ AI Field Classification
ββββββββββββββββββββββββββββββββββββββββ
1. #firstName [personal]
Label: First Name
Required: True
π€ AI Analysis:
Strategy: simple_mapping
Confidence: 0.99
Time: 1.2s
Value: "Timothy"
2. #email [personal]
Label: Email Address
Required: True
π€ AI Analysis:
Strategy: simple_mapping
Confidence: 0.98
Time: 0.8s
Value: "tlweave2@asu.edu"
[... continues for all fields ...]
π Execution Plan & Results
============================================================
π Analysis Summary:
Total Fields: 22
Successfully Classified: 22
Auto-Fillable: 19
Requires RAG Generation: 3
AI Processing Time: 18.4s
π Strategy Distribution:
simple_mapping : 15 fields (68.2%)
rag_generation : 4 fields (18.2%)
option_selection : 2 fields ( 9.1%)
skip_field : 1 fields ( 4.5%)
π Sample Filled Form Preview:
ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
π·οΈ PERSONAL SECTION:
β
First Name : Timothy
β
Last Name : Weaver
β
Email Address : tlweave2@asu.edu
π·οΈ EDUCATION SECTION:
β
University/College : Arizona State University
β
Degree Level : Master's Degree
β
Major/Field of Study : Computer Science
π·οΈ ESSAYS SECTION:
β
Cover Letter : I am excited about this oppor...
β
Why Our Company : I'm particularly drawn to Tec...
β
Technical Project : Through my VidlyAI project, I...
β±οΈ Completion Estimate:
Automation Rate: 86.4%
Estimated Total Time: 28.4 seconds
Ready for Auto-Submit: β
π§ͺ Dry run completed - no actual form filling performed
| Flag | Description | Example |
|---|---|---|
url |
Job application URL (required) | "https://company.com/apply" |
--live |
Actually fill the form (default: dry run) | --live |
--auto-submit |
Submit after filling | --auto-submit |
--api-key |
Custom DeepSeek API key | --api-key "sk-..." |
Always test with dry run mode first to see what the AI will do:
python job_application_runner.py "https://company.com/careers/apply"Review the AI's field classification and strategy before going live:
- β Simple mapping fields should have correct values
- β RAG generation fields should have appropriate questions extracted
- β Skip field should identify assessments correctly
Only use --live mode when you're confident in the analysis:
python job_application_runner.py "https://company.com/careers/apply" --liveEven with --live, avoid --auto-submit until you've tested several applications:
# Good: Fill form but don't submit
python job_application_runner.py "url" --live
# Careful: Auto-submit (only when confident)
python job_application_runner.py "url" --live --auto-submit| Strategy | Description | Example Fields |
|---|---|---|
| simple_mapping | Direct data from Timothy's profile | Name, email, phone, GPA |
| rag_generation | AI-generated personalized content | Cover letters, essays, motivation |
| option_selection | Choose from dropdown/radio options | Degree level, experience years |
| skip_field | Don't fill (assessments, tests) | Coding challenges, personality tests |
| Confidence | Meaning | Action |
|---|---|---|
| 0.9 - 1.0 | Very confident | Proceed automatically |
| 0.8 - 0.9 | Confident | Proceed with validation |
| 0.6 - 0.8 | Moderate | Proceed with caution |
| < 0.6 | Low confidence | Review recommended |
# DON'T do this immediately
python job_application_runner.py "unknown-site.com/apply" --live --auto-submitAlways check the analysis first before using --live
The agent is designed for job applications - using it on other forms may not work correctly
- The URL may not contain a job application form
- Try navigating to the specific application page
- Some sites require login before showing the form
- Check your internet connection
- Verify the DeepSeek API key is valid
- The page may have unusual form structure
- Some fields may require manual attention
- Complex custom fields may not be recognized
- Technical assessments are intentionally skipped
- Test on known job sites first (LinkedIn, Indeed, company career pages)
- Review the generated content before submitting
- Keep the dry run logs to compare with actual applications
- Start with smaller companies that have simpler forms
- Use the confidence scores to gauge reliability
- Simple forms (10-15 fields): 85-95% automation rate
- Complex forms (20+ fields): 75-85% automation rate
- Processing time: 1-2 seconds per field
- Essay generation: High-quality, personalized responses
- Error handling: Graceful fallbacks for edge cases
The AI agent will continuously improve as it encounters more form types and learns from the patterns it sees! π