Skip to content

almasumdev/bid-pilot

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

18 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Bid Pilot

Bid Pilot

An AI copilot for freelance proposals — on Upwork & Freelancer, powered by your local Claude CLI.

Drafts tailored cover letters, suggests a bid amount and delivery time in the project's own currency, and fills the form for you to review. It never submits.

License: MIT Manifest V3 No API key PRs welcome

Bid Pilot generating a proposal on a job page

Why

Writing a strong, tailored proposal for every job is slow. Bid Pilot reads the job post, drafts a proposal in your voice, and one-click fills the form — while keeping you in control of every word and the submit button.

It runs entirely through your Claude Code CLI, so there is no API key and no per-token billing — generations are covered by your existing Claude subscription.

Features

  • Auto-detects Upwork & Freelancer job/bid pages and shows a floating action button
  • One-click draft in three styles — Short, Professional, Persuasive
  • Currency-aware bidding — suggests a bid + delivery time in the project's currency, within the client's budget
  • Your voice — feed a profile, custom standing instructions, and past winning proposals
  • Edit-then-insert — review and tweak in an editable panel; fills the form, never submits
  • Zero secrets — auth lives in your local claude login; the extension stores no keys and makes no network calls

How it works

Bid Pilot data flow: the browser extension detects and scrapes a job page, the background worker builds a prompt, a local native host spawns the Claude CLI, and the draft returns to a panel you edit and insert.
  1. A content script detects a job page and injects the Generate Proposal button.
  2. On click it scrapes the title, description, skills, budget and currency — only on demand.
  3. The background worker builds a prompt (profile, style, custom instructions, currency rules).
  4. A Native Messaging host runs claude -p --output-format json locally and returns the draft.
  5. You review/edit the proposal + bid + days in the panel, then Insert to fill the form.

Requirements

  • Google Chrome, Chromium, or Brave (Linux)
  • Node.js on your PATH
  • Claude Code CLI installed and logged in (echo hi | claude -p should print a reply)

Install

1 · Load the extension

  1. Open chrome://extensions (or brave://extensions)
  2. Enable Developer mode
  3. Load unpacked → select the extension/ folder

2 · Run the guided setup (mostly in the browser)

A setup page opens automatically on install (or reopen it from the popup → "Setup / fix connection"). It:

  1. Download installer — one file, pre-filled with this extension's ID
  2. Run it once — paste bash ~/Downloads/bidpilot-install.sh into a terminal
  3. The page turns green automatically when connected

Browsers don't allow an extension to install a native-messaging bridge itself (security), so that single downloaded command is the one unavoidable step. It drops a small Node host into ~/.bidpilot and registers it with every Chromium-based browser it finds — no repo, no manual IDs, safe to re-run.

Advanced / scripted: the repo also ships native-host/install.sh <EXTENSION_ID> [chrome|chromium|brave] if you prefer to install from the source tree directly.

3 · Configure

Open the toolbar icon → fill in your profile, pick a default style and model, add any custom instructions → Test connection should report the host is reachable.

Usage

  1. Open an Upwork or Freelancer job / bid page
  2. Click the floating ✦ Generate Proposal button
  3. Switch styles, Regenerate, or edit the draft directly; adjust the bid / days
  4. Click Insert into form — then review and submit it yourself

Settings

Setting Purpose
Profile Name, title, skills, experience — grounds the proposal
Default style Short / Professional / Persuasive
Model claude model (or CLI default)
Tone Optional tone hint
Custom instructions Standing rules applied to every proposal
Past winning proposals Few-shot examples to match your voice

Project structure

extension/
  manifest.json
  assets/                 icons + logo
  src/
    content/              page detect, scrape, insert, floating UI
      platforms/          per-site adapters (Upwork, Freelancer)
      ui/                 button + proposal panel
    background/           service worker + native messaging client
    popup/                settings UI
    shared/               storage + prompt building
  setup/                  in-browser guided installer (auto-opens on install)
native-host/
  host.js                 reads stdin frames, runs the claude CLI
  com.bidpilot.host.json  native messaging manifest (template)
  install.sh              registers the host for a browser
  integration-test.mjs    end-to-end smoke test (no browser)

Development

Run the end-to-end pipeline test (prompt → native host → real claude → parse) with no browser:

node native-host/integration-test.mjs

Contributing

Contributions are welcome — fixing platform selectors when Upwork/Freelancer change their markup, adding new platforms, or improving the prompt. The extension loads unpacked with no build step. See CONTRIBUTING.md for setup, architecture, and how to add a platform adapter.

Safety

  • No auto-submit — Bid Pilot only fills fields; you click submit.
  • No background scraping — the page is read only when you click Generate.
  • No bulk / automation — one job, one proposal, one click.
  • No secrets stored — authentication is your local claude login.

Limitations

  • Platform DOM selectors are best-effort and may need patching when Upwork/Freelancer change their markup — they are isolated in extension/src/content/platforms/.
  • Per-machine setup: requires the claude CLI installed and logged in locally.
  • Each generation spawns the CLI (a few seconds of latency).

License

MIT

About

AI copilot for freelance proposals on Upwork & Freelancer, powered by your local Claude CLI (no API key).

Topics

Resources

License

Contributing

Stars

Watchers

Forks

Packages

 
 
 

Contributors