How omarhussien2/open-freelance-agent works
Open Freelance Agent monitors freelance listings, filters them for fit, drafts proposals from approved facts, and pauses for human approval in Telegram before browser-based submission. Google Sheets and Apps Script provide memory and approval-email support; daily reporting is another documented capability. The sampled code shows the browser-agent loop and Telegram send, watch, and collect scripts. Monitoring, filtering, drafting, humanization, submission orchestration, and reporting are documented but not implemented in the excerpts, so their links are based on the README rather than inspected source.
Main entry points: agent Offer submission · agent_loop.py Browser agent loop · Code.gs Apps Script · send_proposal_tg.py Send proposal
Components 18
Opportunity discovery
- Listing monitor
agent - Fit filter
agent
Proposal preparation
- Approved facts
agent - Proposal drafting
agent - Humanizer
agent
Human approval
- Send proposal
agent/send_proposal_tg.py - Approval watcher
agent/watch_approval.py - Decision collector
agent/collect_approval.py
Submission and memory
- Offer submission
agent - Browser agent loop
agent/agent_loop.py - Google Sheet
- Apps Script
apps-script/Code.gs - Daily report
agent
Other components
- Freelancer
- Job platforms
- Telegram bot
- Cua Driver
- OpenRouter models
Connections 19
- Job platforms → Listing monitor: listings
README.md - Listing monitor → Fit filter: filters listings
README.md - Fit filter → Proposal drafting: matched projects
README.md - Approved facts → Proposal drafting: informs drafts
README.md - Proposal drafting → Humanizer: humanizes draft
README.md - Humanizer → Send proposal: sends draft
README.md - Send proposal → Telegram bot: sends proposal
agent/send_proposal_tg.py - Telegram bot → Freelancer: requests review
README.md - Telegram bot → Approval watcher: updates
agent/watch_approval.py - Telegram bot → Decision collector: decisions
agent/collect_approval.py - Decision collector → Offer submission: approved text
README.md - Offer submission → Browser agent loop: runs submission
README.md - Browser agent loop → OpenRouter models: requests tool calls
agent/agent_loop.py - Browser agent loop → Cua Driver: drives browser
agent/agent_loop.py - Offer submission → Google Sheet: logs offer
README.md - Apps Script → Google Sheet: records approvals
README.md - Apps Script → Freelancer: emails approvals
README.md - Google Sheet → Daily report: supports report
- Daily report → Freelancer: reports actions
README.md