Spaces:
Running
Running
metadata
title: Upwork Proposal Strategist
emoji: 🧭
colorFrom: indigo
colorTo: purple
sdk: docker
app_port: 8501
tags:
- streamlit
pinned: false
short_description: Analyze Upwork job fit and draft grounded proposals.
Upwork Proposal Strategist
A web app that helps you write better Upwork proposals, faster.
It looks at an Upwork job, compares it to your own work files, tells you whether it's worth applying, and writes a first draft of your proposal — using only true facts from your files.
How it works
The app walks you through five steps in the left sidebar:
- Setup — choose your AI provider and paste your API key.
- Dossier — upload your work files (portfolio, résumé, testimonials, past proposals).
- Job Screenshot — upload or paste a picture of the Upwork job.
- Analysis — see the verdict (🟢 Apply / 🟡 Caution / 🔴 Do Not Proceed), strengths, and concerns.
- Proposal — get a ready-to-copy proposal draft.
Your API key & privacy
- Bring your own key. Each visitor enters their own provider API key (OpenAI, Anthropic, Gemini, or Groq) on the Setup page.
- Your key is stored encrypted, remembered on your device. So you don't re-enter it each visit, the key is saved encrypted (Fernet) using a secret derived from a random, invisible per-browser tag. The storage backend (Supabase) only ever holds ciphertext; the tag is never sent to it, so one visitor's key can't be read with another's tag, and the key is never put in the server environment. Use Clear Credentials to remove it. If key storage isn't configured, the app falls back to session-only (re-enter each visit).
- Your files are session-only. Uploaded dossier files are processed in a temporary, per-session location and are not persisted on the server.
- Only a small, relevance-filtered slice of your text is ever sent to the AI provider you chose.
⚠️ The Job Screenshot step needs a vision-capable provider — use OpenAI, Anthropic, or Gemini. Groq cannot read images.
Step-by-step user guide
A complete, click-by-click walkthrough is included in this repo: UpworkProposalStrategistGuide.pdf.
Running locally
pip install -r requirements.txt
streamlit run streamlit_app.py