This is a submission for the Hacktoberfest Open-Source AI Challenge Week 2: Side Hustle
What I Built
GigPitch AI is a fast, responsive web application engineered to help freelancers write winning gig proposals in under 3 seconds.
Freelancing on platforms like Upwork, Fiverr, or Contra is a numbers game where personalization wins. But spending 20 minutes writing custom proposals for 10 jobs every day is exhausting, and generic copy-pasted templates get ignored.
GigPitch AI takes any client job description, maps it against your actual skills and background, and streams a structured, conversational pitch that proves you understand the client's problem from the very first sentence.
- Zero setup friction: No accounts, no paywalls.
- Fast: Powered by open-weight AI running on high-speed inference LPUs.
- Local-first data: Your job pitches and client details stay in your browser.
👉 Live Demo: https://gigpitch-ai.onrender.com
📂 Source Code (GitHub): https://github.com/PremPathak03/gigpitch-ai
Demo & Interface
Here is a real example generated by GigPitch AI for a React dashboard posting:
[Client Job Posting]
"Looking for a Senior React/Next.js developer to rebuild our B2B SaaS dashboard.
Convert complex Figma designs into responsive Tailwind components, connect to 5+ REST API
endpoints with real-time data refreshes. Budget: $1,500. Timeline: 2 weeks."
[GigPitch AI Generated Proposal (Professional Tone)]
"A clunky dashboard kills user engagement faster than missing features.
Building your SaaS analytics so it renders instantly while cleanly orchestrating
five live REST endpoints without blocking the UI thread is the exact problem
I specialize in.
Over the past three years, I've shipped 12+ production dashboards using React,
Next.js, and Tailwind CSS. I prioritize clean state management, modular component
hierarchies, and sub-100ms UI response times so your team can extend features
long after launch.
I can have your core layout and initial API wiring ready for review within 4 days.
Are you open to a quick 10-minute sync tomorrow to walk through your Figma specs?"
The app features adaptive tone controls (Professional, Friendly, High-Impact), instant 1-click clipboard copy, and a browser-backed history drawer to save your winning pitches.
Who Would Pay For This
Target Audience: Independent freelancers, agency contractors, and solo developers bidding on competitive freelance marketplaces (Upwork, Fiverr, Freelancer.com, Contra).
The Value Proposition:
- An active freelancer applies to 50–100 jobs a month.
- Winning just one additional $1,000 gig per month makes a $5–$10/month tool an instant 100x ROI.
- Freelancers would readily pay for a tool that saves them 10+ hours of unpaid proposal writing each month while noticeably boosting their client response rate.
Why Open Innovation Matters
Commercial AI SaaS tools typically wrap proprietary models behind expensive subscriptions ($20/month per seat), lock developers into proprietary ecosystems, and harvest client prompts.
Building GigPitch AI with open-weight models changes the equation completely:
- $0 Operational Margins: Using open-weight models (like Qwen and Gemma) on free-tier inference keeps operating costs at zero. This means the service can remain accessible to freelancers worldwide regardless of their budget.
- Zero Vendor Lock-In: Because the model weights are open, the app is not married to a single API. It runs seamlessly on Groq today, can point to local Ollama on a laptop tomorrow, or deploy to private cloud hardware without rewriting prompt logic.
- Privacy First: Client job briefs often contain confidential product specs, private budgets, and unreleased feature roadmaps. Open-weight, local-friendly architectures ensure client data isn't siphoned into training third-party proprietary foundation models.
How It Works & Architecture
GigPitch AI is engineered as an async, single-page application with streaming Server-Sent Events (SSE):
flowchart LR
A["Freelancer (Browser)\nHTML5 + Tailwind + Vanilla JS"] -->|POST /api/generate| B["FastAPI Backend\n(Python 3.12)"]
B -->|Streaming SSE| C["Groq LPU Engine\nQwen 3.8 / Gemma (Open-Weight)"]
C -->|Token Chunks| B
B -->|Server-Sent Events| A
A -->|Store History| D["Local Storage\n(Zero Remote Storage)"]
The System Prompt Architecture
To ensure proposals don't sound like generic corporate fluff, the prompt enforces strict constraints:
- Rule 1: Open with an analytical hook addressing the client's core bottleneck.
- Rule 2: Map specific technical tools to job requirements.
- Rule 3: Forbid cliches like "I am writing to express my interest" or "I am confident that I am the best fit."
- Rule 4: Keep word count under 180 words so clients actually finish reading.
SYSTEM_PROMPT = """You are GigPitch AI — an elite freelance proposal strategist.
Core Rules:
1. Open directly with insight into the client's problem.
2. Connect 2-3 specific requirements to the freelancer's actual skills.
3. Highlight a concise, realistic achievement or past project pattern.
4. Close with a low-friction, confident next step.
5. Keep the proposal between 120 and 180 words.
6. Forbid filler phrases ("I am writing to apply...", "Dear Hiring Manager").
"""
Tech Stack
- Model: Open-weight LLMs (Qwen 3.8 / Gemma family) via Groq LPUs
- Backend: Python 3.12 + FastAPI (async Server-Sent Events streaming)
- Frontend: Responsive Glassmorphism UI (Tailwind CSS, Google Fonts, Vanilla JS)
-
Deployment: Render (
render.yaml) — Live at https://gigpitch-ai.onrender.com - Image Generation: Python Pillow (automated 1000x420 cover graphics)
-
Storage: Client-side
localStoragefor privacy and offline persistence
What I'd Build Next
- Browser Extension: One-click "Draft Proposal" button injected directly into Upwork and Fiverr job posting pages.
- Client Tone Matcher: Automatically detect if a job posting is casual or enterprise and auto-tune proposal vocabulary accordingly.
- Outcome Tracking: Allow freelancers to mark proposals as "Hired", "Interviewed", or "No Response" to fine-tune future pitch generation.
Built for Hacktoberfest 2026 — AI belongs to everyone. 🎃

Top comments (0)