Upwork Auto Applier
Pricing
$50.00/month + usage
Upwork Auto Applier
Automatically apply to multiple Upwork jobs with customized cover letters and intelligent preferences.
Pricing
$50.00/month + usage
Rating
0.0
(0)
Developer

Philemon Berhane
Actor stats
0
Bookmarked
3
Total users
3
Monthly active users
5 days ago
Last modified
Categories
Share
π Upwork Auto Applier
Automatically apply to multiple Upwork jobs with customized cover letters and intelligent preferences
β¨ Features
- π― Batch Job Applications - Apply to 1-100 jobs in one run
- π€ Smart Profile Selection - Auto-detect best profile based on job keywords
- π Custom Cover Letters - Personalized cover letter for each job
- βοΈ Configurable Preferences - Set contract duration, raise frequency, etc.
- π Bidding Job Handling - Skip or auto-bid on bidding-only jobs
- π Detailed Tracking - Success/error/skipped status for each job
- π Browser Extension - Real browser interaction for manual login and Cloudflare
- πΎ Session Persistence - Save login sessions between job batches
π Quick Start
Step 1: Install Chrome Extension
- Installation: Get the extension from https://chromewebstore.google.com/detail/upwork-auto-applier/dgidjghmeggbiligmcnpoagieagmlfhj?hl=en-US&utm_source=ext_sidebar
Step 2: Prepare Your Jobs
- Collect Upwork job URLs (e.g.,
https://www.upwork.com/nx/proposals/job/~abc123/apply/) - Write personalized cover letters for each job
- Configure your application preferences
Step 3: Run the Actor
- Actor will automatically create a session
- Look for the session ID in the console output
Step 4: Connect Extension
- Open the extension popup and enter the Session ID
- Click "Connect to Service"
- Navigate to Upwork and log into your account
- Handle any Cloudflare challenges or 2FA
- Open the extension popup and click "I'm logged into Upwork"
Step 5: Watch It Work
- The extension automatically applies to all your jobs
- Monitor progress in real-time
- View results in the Apify dataset
Local Testing:
- Extension Installed - Browser extension loaded and ready
- Manual Login - Navigate to Upwork.com and login manually
- Auto Processing - Extension applies to all jobs automatically
π Input Configuration
Required Fields
{"jobs": [{"jobUrl": "https://www.upwork.com/nx/proposals/job/~abc123/apply/","coverLetter": "Your personalized cover letter..."}],"applicationPreferences": {"profileMapping": [...],"fixedPricePreferences": {...}}}
Application Preferences
Profile Mapping
Map job keywords to your specialized profile indices:
"profileMapping": [{"tokenKeywords": ["full stack", "backend", "frontend"],"profileIndex": 1},{"tokenKeywords": ["mobile", "ios", "android"],"profileIndex": 2}]
Fixed-Price Preferences
Configure contract settings:
"fixedPricePreferences": {"projectDuration": "1 to 3 months","raiseFrequency": "Never","raiseAmount": "10%"}
Browser Persistence
Configure session management to avoid repeated logins:
"browserPersistence": {"enabled": true, // Enable/disable persistence"sessionTimeout": 24, // Session validity in hours"autoSave": true, // Automatically save sessions"fallbackToManual": true // Fall back to manual login if restoration fails}
Other Settings
{"skipBiddingOnly": true,"genericScreeningResponse": "I'd be happy to discuss this in detail...","delayBetweenJobs": 30,"cfTimeoutSec": 600,"manualLoginTime": 120}
π Output Results
The actor outputs detailed results for each job:
Success
{"jobNumber": 1,"jobUrl": "https://www.upwork.com/nx/proposals/job/~abc123/apply/","status": "submitted","submittedAt": "2024-01-15T10:30:00.000Z"}
Skipped
{"jobNumber": 2,"jobUrl": "https://www.upwork.com/nx/proposals/job/~def456/apply/","status": "skipped","reason": "bidding_only","skippedAt": "2024-01-15T10:35:00.000Z"}
Error
{"jobNumber": 3,"jobUrl": "https://www.upwork.com/nx/proposals/job/~ghi789/apply/","status": "error","error": "Submit button not found","failedAt": "2024-01-15T10:40:00.000Z"}
π Input Configuration
Required Fields
{"jobs": [{"jobUrl": "https://www.upwork.com/nx/proposals/job/~abc123/apply/","coverLetter": "Your personalized cover letter..."}],"applicationPreferences": {"profileMapping": [...],"fixedPricePreferences": {...}}}
Optional Fields
{"loginTimeout": 5, // Minutes to wait for login"delayBetweenJobs": 30, // Seconds between jobs"keepAlive": true, // Keep browser open between batches"reuseSessionId": "abc123-def456" // Reuse existing session}
βοΈ Configuration Examples
Basic Setup (Minimal)
{"jobs": [{"jobUrl": "https://www.upwork.com/nx/proposals/job/~abc123/apply/","coverLetter": "Hi! I'm excited about this React project..."}],"applicationPreferences": {"defaultProfileIndex": 0,"fixedPricePreferences": {"projectDuration": "1 to 3 months","raiseFrequency": "Never"}}}
Advanced Setup (Full Features)
{"jobs": [{"jobUrl": "https://www.upwork.com/nx/proposals/job/~job1/apply/","coverLetter": "Custom cover letter for job 1..."}],"applicationPreferences": {"profileMapping": [{"tokenKeywords": ["react", "javascript", "frontend"],"profileIndex": 1}],"defaultProfileIndex": 0,"fixedPricePreferences": {"projectDuration": "1 to 3 months","raiseFrequency": "Never","raiseAmount": "10%"}},"loginTimeout": 5,"delayBetweenJobs": 30,"keepAlive": true}
π Output Results
The actor outputs detailed results for each job:
Success
{"jobNumber": 1,"jobUrl": "https://www.upwork.com/nx/proposals/job/~abc123/apply/","status": "submitted","submittedAt": "2024-01-15T10:30:00.000Z"}
Skipped
{"jobNumber": 2,"jobUrl": "https://www.upwork.com/nx/proposals/job/~def456/apply/","status": "skipped","reason": "bidding_only","skippedAt": "2024-01-15T10:35:00.000Z"}
Error
{"jobNumber": 3,"jobUrl": "https://www.upwork.com/nx/proposals/job/~ghi789/apply/","status": "error","error": "Submit button not found","failedAt": "2024-01-15T10:40:00.000Z"}
π§ Troubleshooting
Common Issues
Browser doesn't open
- Check Apify actor memory settings (minimum 2GB)
- Ensure
headless: falsefor local testing (automatically set totrueon Apify platform) - On Apify platform, the browser runs in headless mode (no visible window)
Login timeout
- Increase
manualLoginTimeif you need more time to navigate and login - Default is 120 seconds (2 minutes)
Profile not found
- Verify your
profileIndexmatches your Upwork profile order - Check that
tokenKeywordsmatch job descriptions
Skipped jobs
- Check
skipBiddingOnlysetting - Verify job URLs are valid application pages
π Tips for Success
- Test with 2-3 jobs first before running large batches
- Use realistic delays (30+ seconds) between jobs
- Monitor logs for any issues during automation
- Keep cover letters personalized for better response rates
- Update profile mapping based on your actual Upwork profiles
π Integration
Make.com (Integromat)
- Use Apify webhook to trigger from Make.com
- Set up scheduled runs for regular job applications
- Connect to CRM for lead management
Zapier
- Create Zap with Apify trigger
- Automate job application workflows
- Sync results to Google Sheets
π License
MIT License - feel free to modify and use for your projects!
π€ Support
For issues or questions:
- Check the troubleshooting section
- Review Apify actor logs
- Ensure input configuration is valid
Happy freelancing! π