Privacy policy
Last updated October 21, 2026.
This policy describes BidWriter, a Chrome extension and the server that drafts proposals for it. Replace the contact email before you publish. It is not a substitute for advice from your own lawyer.
Who we are
BidWriter is operated by the business named on the Chrome Web Store listing. Contact: the email in NEXT_PUBLIC_CONTACT_EMAIL, or the email on that listing if the variable is empty.
What the extension stores on your device
Profile name, summary, skills, hourly rate, minimum fixed budget, three portfolio items, and the preferred template.
An install id, the license key you activate, the BidWriter server address, and the last job you chose to score.
Fit scores are calculated on your device. They are not uploaded by themselves.
What is sent to the BidWriter server
Only when you click Draft: the profile you saved and the job text you are drafting from (title, description, budget, client stats you extracted or pasted, and screening questions).
When you start checkout: the install id, the plan, the payment method, and an email if you typed one.
When you activate a license: the install id and the license key.
The extension does not send your Upwork password, your card number, or a crypto wallet key. It does not read tabs you have not opened it on, and it does not crawl Upwork in the background.
Payments
Card and USDC checkouts are created by Stripe. If Managed Payments is enabled, Stripe is the merchant of record for that card checkout and handles tax, fraud, and disputes under Stripe’s terms. USDC uses Stripe’s stablecoin (crypto) payment method unless you explicitly fold it into Managed Payments. Stripe settles stablecoin payments in USD. BidWriter does not see your card or wallet.
Bitcoin invoices are created by your BTCPay Server. BTCPay is self-hosted and non-custodial. The webhook tells BidWriter that an invoice settled so it can issue a license key. BidWriter does not custody Bitcoin.
Ethereum and Solana are not offered.
Model providers
If you set an OpenAI or Anthropic key on the server, the draft prompt (profile and job text) is sent to that provider. If no key is set, the server uses a local template and does not call a model.
What we do not do
We do not sell personal information. We do not use it for advertising. We do not put a model API key in the extension.
How long it is kept
The server stores install ids, draft counts, checkout records, and license keys in its data file until you delete that file or revoke a license. Job text is sent to generate a draft and is not written into a separate archive by this MVP. Your browser copy remains until you clear extension storage.
Chrome Web Store
The extension’s single purpose is to help you draft a proposal for the Upwork job you are viewing. Permissions are limited to storage, the side panel, the active tab, scripting (so the reader can be injected when you ask), and content scripts on specific Upwork job URLs.
Contact
Write to the email on the Chrome Web Store listing to ask for a copy of the license record tied to a key, or to ask us to revoke it.