Skip to content

Add Freelance Auto Bot with Upwork monitoring and Telegram notifications#3

Draft
Copilot wants to merge 4 commits intocopilot/add-terraform-environment-setupfrom
copilot/add-freelance-auto-bot
Draft

Add Freelance Auto Bot with Upwork monitoring and Telegram notifications#3
Copilot wants to merge 4 commits intocopilot/add-terraform-environment-setupfrom
copilot/add-freelance-auto-bot

Conversation

Copy link

Copilot AI commented Feb 3, 2026

Implements automated Upwork job monitoring with Telegram notifications, scheduled to run every 10 minutes via GitHub Actions.

Changes

Workflow (.github/workflows/freelance-auto-bot.yml)

  • Cron schedule: */10 * * * *
  • Triggers: schedule, workflow_dispatch, push
  • Python 3.10 + Selenium + ChromeDriver setup
  • Secrets: TELEGRAM_TOKEN, TELEGRAM_CHAT_ID, UPWORK_USERNAME, UPWORK_PASSWORD
  • Uploads logs as artifacts on all runs
  • Explicit permissions: contents: read

Bot (main.py)

  • Selenium-based Upwork monitoring with headless Chrome
  • Telegram API integration for status/error notifications
  • Smart chromedriver path detection (supports /usr/bin/chromedriver, /usr/bin/chromium-chromedriver, PATH)
  • Test mode (TEST_MODE=true) for CI/development environments
  • Timestamped log files in logs/ directory

Dependencies (requirements.txt)

selenium>=4.15.0
beautifulsoup4>=4.12.0
requests>=2.31.0

Logging

  • .gitignore updated to exclude logs/* except .gitkeep
  • Dual output: timestamped file + console

Configuration Required

Repository secrets must be set before first scheduled run:

  • Telegram bot token and chat ID
  • Upwork credentials

Warning

Firewall rules blocked me from connecting to one or more addresses (expand for details)

I tried to connect to the following addresses, but was blocked by firewall rules:

  • accounts.google.com
    • Triggering command: /proc/self/exe /proc/self/exe --type=utility --utility-sub-type=network.mojom.NetworkService --lang=en-US --service-sandbox-type=none --no-sandbox --disable-dev-shm-usage --use-angle=swiftshader-webgl --crashpad-handler-pid=3892 --enable-crash-reporter=, --noerrdialogs --user-data-dir=/tmp/org.chromium.Chromium.scoped_dir.4kolgN --change-stack-guard-on-fork=enable --shared-files=v8_context_snapshot_data:100 --field-trial-handle=3,i,13209197051226373010,7400874189920466815,262144 --disable-features=IgnoreDuplicateNavs,PaintHolding,Prewarm --variations-seed-version --trace-process-track-uuid=3190708989122997041 --enable-logging=stderr --log-level=0 (dns block)
    • Triggering command: /opt/google/chrome/chrome /opt/google/chrome/chrome --allow-pre-commit-input --disable-REDACTED-networking --disable-REDACTED-timer-throttling --disable-REDACTEDing-occluded-windows --disable-client-side-phishing-detection --disable-default-apps --disable-dev-shm-usage --disable-features=IgnoreDuplicateNavs,Prewarm --disable-gpu --disable-hang-monitor --disable-popup-blocking --disable-prompt-on-repost --disable-sync --enable-automation --enable-logging=stderr --headless --log-level=0 --no-first-run --no-sandbox (dns block)
  • clients2.google.com
    • Triggering command: /proc/self/exe /proc/self/exe --type=utility --utility-sub-type=network.mojom.NetworkService --lang=en-US --service-sandbox-type=none --no-sandbox --disable-dev-shm-usage --use-angle=swiftshader-webgl --crashpad-handler-pid=3892 --enable-crash-reporter=, --noerrdialogs --user-data-dir=/tmp/org.chromium.Chromium.scoped_dir.4kolgN --change-stack-guard-on-fork=enable --shared-files=v8_context_snapshot_data:100 --field-trial-handle=3,i,13209197051226373010,7400874189920466815,262144 --disable-features=IgnoreDuplicateNavs,PaintHolding,Prewarm --variations-seed-version --trace-process-track-uuid=3190708989122997041 --enable-logging=stderr --log-level=0 (dns block)
    • Triggering command: /opt/google/chrome/chrome /opt/google/chrome/chrome --allow-pre-commit-input --disable-REDACTED-networking --disable-REDACTED-timer-throttling --disable-REDACTEDing-occluded-windows --disable-client-side-phishing-detection --disable-default-apps --disable-dev-shm-usage --disable-features=IgnoreDuplicateNavs,Prewarm --disable-gpu --disable-hang-monitor --disable-popup-blocking --disable-prompt-on-repost --disable-sync --enable-automation --enable-logging=stderr --headless --log-level=0 --no-first-run --no-sandbox (dns block)
  • google.com
    • Triggering command: /proc/self/exe /proc/self/exe --type=utility --utility-sub-type=network.mojom.NetworkService --lang=en-US --service-sandbox-type=none --no-sandbox --disable-dev-shm-usage --use-angle=swiftshader-webgl --crashpad-handler-pid=3892 --enable-crash-reporter=, --noerrdialogs --user-data-dir=/tmp/org.chromium.Chromium.scoped_dir.4kolgN --change-stack-guard-on-fork=enable --shared-files=v8_context_snapshot_data:100 --field-trial-handle=3,i,13209197051226373010,7400874189920466815,262144 --disable-features=IgnoreDuplicateNavs,PaintHolding,Prewarm --variations-seed-version --trace-process-track-uuid=3190708989122997041 --enable-logging=stderr --log-level=0 (dns block)
  • www.google.com
    • Triggering command: /proc/self/exe /proc/self/exe --type=utility --utility-sub-type=network.mojom.NetworkService --lang=en-US --service-sandbox-type=none --no-sandbox --disable-dev-shm-usage --use-angle=swiftshader-webgl --crashpad-handler-pid=3892 --enable-crash-reporter=, --noerrdialogs --user-data-dir=/tmp/org.chromium.Chromium.scoped_dir.4kolgN --change-stack-guard-on-fork=enable --shared-files=v8_context_snapshot_data:100 --field-trial-handle=3,i,13209197051226373010,7400874189920466815,262144 --disable-features=IgnoreDuplicateNavs,PaintHolding,Prewarm --variations-seed-version --trace-process-track-uuid=3190708989122997041 --enable-logging=stderr --log-level=0 (dns block)
    • Triggering command: /opt/google/chrome/chrome /opt/google/chrome/chrome --allow-pre-commit-input --disable-REDACTED-networking --disable-REDACTED-timer-throttling --disable-REDACTEDing-occluded-windows --disable-client-side-phishing-detection --disable-default-apps --disable-dev-shm-usage --disable-features=IgnoreDuplicateNavs,Prewarm --disable-gpu --disable-hang-monitor --disable-popup-blocking --disable-prompt-on-repost --disable-sync --enable-automation --enable-logging=stderr --headless --log-level=0 --no-first-run --no-sandbox (dns block)
  • www.upwork.com
    • Triggering command: /proc/self/exe /proc/self/exe --type=utility --utility-sub-type=network.mojom.NetworkService --lang=en-US --service-sandbox-type=none --no-sandbox --disable-dev-shm-usage --use-angle=swiftshader-webgl --crashpad-handler-pid=3892 --enable-crash-reporter=, --noerrdialogs --user-data-dir=/tmp/org.chromium.Chromium.scoped_dir.4kolgN --change-stack-guard-on-fork=enable --shared-files=v8_context_snapshot_data:100 --field-trial-handle=3,i,13209197051226373010,7400874189920466815,262144 --disable-features=IgnoreDuplicateNavs,PaintHolding,Prewarm --variations-seed-version --trace-process-track-uuid=3190708989122997041 --enable-logging=stderr --log-level=0 (dns block)
    • Triggering command: /opt/google/chrome/chrome /opt/google/chrome/chrome --allow-pre-commit-input --disable-REDACTED-networking --disable-REDACTED-timer-throttling --disable-REDACTEDing-occluded-windows --disable-client-side-phishing-detection --disable-default-apps --disable-dev-shm-usage --disable-features=IgnoreDuplicateNavs,Prewarm --disable-gpu --disable-hang-monitor --disable-popup-blocking --disable-prompt-on-repost --disable-sync --enable-automation --enable-logging=stderr --headless --log-level=0 --no-first-run --no-sandbox (dns block)

If you need me to access, download, or install something from one of these locations, you can either:

Original prompt

name: Freelance Auto Bot

on:
schedule:
# Běží každých 10 minut (limity: max 1x za 5 min)
- cron: '*/10 * * * *'
workflow_dispatch: # Možnost spustit manuálně
push: # Spustí se při změně kódu

jobs:
monitor-freelance:
runs-on: ubuntu-latest

steps:
- name: Checkout code
  uses: actions/checkout@v3
  
- name: Set up Python
  uses: actions/setup-python@v4
  with:
    python-version: '3.10'
    
- name: Install dependencies
  run: |
    python -m pip install --upgrade pip
    pip install -r requirements.txt
    pip install selenium beautifulsoup4 requests
    
- name: Install Chrome for Selenium
  run: |
    sudo apt-get update
    sudo apt-get install -y chromium-browser chromium-chromedriver
    
- name: Run bot
  env:
    TELEGRAM_TOKEN: ${{ secrets.TELEGRAM_TOKEN }}
    TELEGRAM_CHAT_ID: ${{ secrets.TELEGRAM_CHAT_ID }}
    UPWORK_USERNAME: ${{ secrets.UPWORK_USERNAME }}
    UPWORK_PASSWORD: ${{ secrets.UPWORK_PASSWORD }}
  run: python main.py
  
- name: Upload logs
  if: always()
  uses: actions/upload-artifact@v3
  with:
    name: bot-logs
    path: logs/

💬 We'd love your input! Share your thoughts on Copilot coding agent in our 2 minute survey.

Copilot AI and others added 3 commits February 3, 2026 11:10
Co-authored-by: paseka10jaroslav-coder <252813980+paseka10jaroslav-coder@users.noreply.github.com>
… clean requirements.txt

Co-authored-by: paseka10jaroslav-coder <252813980+paseka10jaroslav-coder@users.noreply.github.com>
Co-authored-by: paseka10jaroslav-coder <252813980+paseka10jaroslav-coder@users.noreply.github.com>
Copilot AI changed the title [WIP] Add freelance auto bot with scheduled monitoring Add Freelance Auto Bot with Upwork monitoring and Telegram notifications Feb 3, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants

Comments