Free and open source, AGPL-3.0

Free, open-source AI proposal generator for Upwork

Yes, there is a free, open-source Upwork proposal generator: ProposalLift Open Source, released under the AGPL-3.0 license. It runs the same core workflow as hosted ProposalLift (a live Upwork job feed, AI job qualification, and proposal drafts written from your own personas and portfolio) on your own server, with your own Supabase project, OpenAI key, and Upwork developer app. The software costs nothing. You pay only for your own AI usage and hosting.

Last reviewed

What the open-source edition includes

The self-hosted build keeps the full loop: find the right jobs, qualify them, and write proposals grounded in your real experience.

  • Live Upwork job feed

    Saved filters for skills, budget, client country, and experience level, read live from the Upwork API through your own developer app.

  • Filters Upwork search cannot express

    Competition level from applicant counts, the client's freelancer location preference, and excluded keywords, applied after each fetch.

  • AI job qualification

    Describe the work you want in plain language, and each job in the feed is marked qualified or disqualified against it.

  • Portfolio-grounded drafts

    Proposals stream from the job, your persona, an opening hook, and the portfolio projects that best match the job by vector similarity.

  • Targeted edits

    Refine a highlighted passage or regenerate just the hook without starting over. In the extension, screening questions are answered with the proposal.

  • Chrome extension

    Drafts on Upwork's apply page, fills the proposal box, and answers screening questions. It never clicks submit.

Free open-source edition vs hosted ProposalLift

Both editions are built around the same workflow. The real difference is who runs the servers.

CompareOpen sourceHosted
PriceFree software. You pay your own OpenAI usage and hostingPro $15/month or Agency $25/month, 14-day free trial, no card to start
Time to first proposalAn afternoon of setup, plus Upwork's review of your developer appSign up and start
AI usageYour own OpenAI key, with Anthropic optional, billed to youAI credits included with your plan
TeamsSeparate accounts only, nothing sharedAgency plan: shared workspace and pooled credits
Where your data livesEntirely in your own Supabase projectProposalLift's managed infrastructure
UpdatesPull, rebuild, and apply new migrations yourselfArrive automatically
TelemetryNone: no analytics, session recording, or error reportingAnalytics and error reporting, as described in the Privacy Policy

Hosted prices as of the last-reviewed date. Yearly plans are $150 (Pro) and $250 (Agency).

Why self-host your proposal generator

Self-hosting is for people who want to own every layer. Your personas, portfolio, knowledge base, and saved proposals live in a Supabase project you control, with row-level security on every table. Upwork job data is read live on each load and is never stored.

Your Upwork client secret and AI keys are encrypted at rest under two separate keys that only you hold, and your instance talks to Upwork as your own application, under your own API quota. Nothing phones home.

  • Audit exactly what the app sends to Upwork and to OpenAI.
  • Tune prompts and qualification for your niche.
  • Keep costs to what you actually generate.
  • Build features the hosted product does not have.

How to set it up

The condensed version. The full walkthrough, with every setting and the mistakes that catch most people, is in the setup guide and the README on GitHub.

  1. Create a Supabase project

    The free tier is enough for a single user. Wait for provisioning to finish before moving on.

  2. Apply the database schema

    Paste the baseline migration into the Supabase SQL editor and run the whole file in one go.

  3. Configure your environment

    Clone the repository, copy .env.example, and set six values, including two encryption keys you generate once and keep.

  4. Start the app with Docker

    Run docker compose up --build. The first build takes a few minutes, then the app opens on localhost.

  5. Register your Upwork developer app

    Create a key with the five required permissions. Upwork's review can take a few days.

  6. Connect and generate

    Add your OpenAI key and Upwork credentials, connect your Upwork account, add a persona and portfolio, and generate your first proposal.

What the open-source edition does and does not do

What it does

  • Runs the full job feed, qualification, and drafting loop on your own server.
  • Keeps every record in your own Supabase project.
  • Lets you read, change, and redistribute the code under AGPL-3.0.
  • Works with OpenAI, with Claude available as an optional writing model.

What it does not do

  • Submit proposals or spend your Connects. You review and send every draft yourself.
  • Share personas or a library between accounts. It is built for solo use.
  • Schedule job alerts out of the box. You add a scheduler on a publicly reachable deployment.
  • Update itself. You pull the latest code, rebuild, and apply new migrations.

AGPL-3.0 in plain English

You can run, study, modify, and redistribute ProposalLift Open Source for free, including for commercial work such as winning your own Upwork contracts.

The license adds one obligation for network software: if you run a modified version as a service that other people use, you must offer those users the source code of your version under the same license. Running it for yourself, changed or not, does not require you to publish anything.

Frequently asked questions

Is ProposalLift open source?

Yes. ProposalLift has an open-source edition under the AGPL-3.0 license, with the full source code on GitHub. The hosted app is the managed version, with AI credits, team workspaces, and no setup.

What does the open-source edition cost to run?

The software is free. Your costs are your own OpenAI usage for what you generate and wherever you run the Docker container. Supabase's free tier comfortably covers a single user.

Is the self-hosted edition the same as hosted ProposalLift?

It runs the same core workflow: job feed, AI qualification, portfolio-grounded drafts, screening answers, and the Chrome extension. It leaves out everything that exists to run a paid service, such as billing, credits, and team workspaces.

Does the open-source edition send my data anywhere?

Only where the workflow needs it: job searches go to the Upwork API as your own app, and generation requests go to the AI provider whose key you added. There is no analytics, session recording, or error reporting.

Can I use Claude instead of OpenAI?

An OpenAI key is required, because it also creates the portfolio embeddings used to match projects to jobs. You can add an Anthropic key to use Claude as an alternative writing model.

Sources

Write your next Upwork proposal from your real work

Use the hosted app with a 14-day free trial and no card to start, or self-host the free, open-source edition on your own server.