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.
| Compare | Open source | Hosted |
|---|---|---|
| Price | Free software. You pay your own OpenAI usage and hosting | Pro $15/month or Agency $25/month, 14-day free trial, no card to start |
| Time to first proposal | An afternoon of setup, plus Upwork's review of your developer app | Sign up and start |
| AI usage | Your own OpenAI key, with Anthropic optional, billed to you | AI credits included with your plan |
| Teams | Separate accounts only, nothing shared | Agency plan: shared workspace and pooled credits |
| Where your data lives | Entirely in your own Supabase project | ProposalLift's managed infrastructure |
| Updates | Pull, rebuild, and apply new migrations yourself | Arrive automatically |
| Telemetry | None: no analytics, session recording, or error reporting | Analytics 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.
Create a Supabase project
The free tier is enough for a single user. Wait for provisioning to finish before moving on.
Apply the database schema
Paste the baseline migration into the Supabase SQL editor and run the whole file in one go.
Configure your environment
Clone the repository, copy .env.example, and set six values, including two encryption keys you generate once and keep.
Start the app with Docker
Run docker compose up --build. The first build takes a few minutes, then the app opens on localhost.
Register your Upwork developer app
Create a key with the five required permissions. Upwork's review can take a few days.
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
Keep reading
- For developersUsing ProposalLift to win development work, hosted or self-hosted.
- Self-hosting setup guideEvery step, setting, and trade-off, from Supabase to your first proposal.
- PricingCompare the free open-source edition with the hosted Pro and Agency plans.
- How drafting worksWhat goes into every proposal ProposalLift writes, and what stays in your hands.
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.
