Kwork Auto Responder
Watches the Kwork exchange, rates projects with AI, writes and sends proposals. Managed from Telegram.
0–100AI score for every project
6AI providers to choose from
5–15 minexchange scan interval
21models with known per-reply pricing
The task
A freelancer on Kwork gets about 30 proposals a month. They can't be wasted, and watching the exchange by hand takes forever. The goal was a bot that finds suitable projects on its own and prepares proposals for them.
What I built
- an exchange scanner with Kwork filters and custom ones: keywords and stop words, budget, hire rate, proposal count, blacklist
- an AI score from 0 to 100 with reasoning and red flags
- the proposal itself: text, title, price and deadline; edits in free form or with presets, inserting a relevant case
- a knowledge base: profile and cases, learning from proposals that led to an order
- a proposal tracker and funnel: how many were sent, accepted, and what the AI cost
- an autopilot with safeguards and a dry-run mode; digest or instant notifications, quiet hours
Under the hood
- Any OpenAI-compatible provider: OpenRouter, DeepSeek, OpenAI, Gemini, Groq or a custom endpoint. The client adapts parameters to the model, retries on failures and tracks the cost of every reply.
- No duplicate proposals: a per-project lock plus a unique index in the database.
- The Kwork session is refreshed ahead of time rather than after an error, and parallel requests don't step on each other.
- The tracker matches proposals to orders by a chain of signals, and statuses only move forward — no false "accepted!".
stack:Pythonaiogram 3aiohttpSQLiteOpenAI-compatible APIs
The code belongs to the clients, so the case pages only describe the work.