Auto-bid on Freelancer.com with OpenAI proposals and Telegram approval
Go to WorkflowDescription
Quick overview
Four ready-to-import n8n workflows that auto-bid on Freelancer.com: they search keywords, filter junk listings score every project with AI, send a one-tap Telegram approval card, write tailored proposal, place the bid, and track the award until you win — no more refreshing the feed all day.
How it works
You message the bot on Telegram with a search keyword, or let the 6-hour schedule run your default keyword automatically.
It searches Freelancer.com and drops projects that are no longer active or already have more bids than your threshold.
The remaining projects are checked against your real Freelancer bid history through the API, so nothing already bid on is shown twice.
Every project left is scored 0-10 for relevance in a single batched AI call, along with a one-line reason for the score.
You get one Telegram card per project — budget, average bid, bid count, skills, AI score and reason, and the bot's proposed bid amount — with a single approve or decline button.
Approve it and an AI agent writes a tailored proposal, places the bid through the Freelancer API, and sends you a confirmation with the exact text that was submitted.
Decline it and that project is marked as skipped for good; ignore the card instead and it simply reappears in your next search.
A separate tracker workflow checks your pending bids every 30 minutes and prompts you in Telegram to accept any awards with one tap.
Setup
Get three free API credentials: a Freelancer.com OAuth token (freelancer.com, Developers, My Apps), a Telegram bot token from @BotFather, and an OpenAI API key.
Add them as credentials inside n8n: one Header Auth credential for Freelancer, one Telegram API credential, and one OpenAI credential.
Create two Data Tables, "seen projects" and "bids", by importing the included CSV files so the columns and types are already correct.
Import the four workflow JSON files in this exact order: SendError, freelancer bot, bidTracker, then freelancerMain, since later ones reference earlier ones.
Re-link each workflow's credential, Data Table, and sub-workflow fields, which ship blank because they are specific to your own n8n instance.
Open the single Setup node inside freelancerMain, enter your Telegram chat ID and default search filters, then repeat the chat ID in bidTracker's Setup node.
Activate and publish all four workflows, then message the bot /help in Telegram to confirm it replies within a couple of seconds.
Requirements
n8n 1.90+ (Cloud or self-hosted) with Data Tables enabled
A Freelancer.com account with an API OAuth token
A Telegram bot token from @BotFather
An OpenAI API key with billing enabled (a few cents per run)
Customization
Edit the AI Agent node's system prompt to change the proposal's tone, length, and specialty focus
Change the 0.9 multiplier in the ComputeBid node to bid more or less aggressively against the average
Tune max_bid_count, min_budget/max_budget, and default_query in the Setup node to match your niche
Turn on auto_bid to skip the approval step entirely — set your filters carefully first
Additional info
No client/employer filtering: Freelancer's project search API doesn't return reviewer rating, review count, or payment-verified status, so any tool claiming that filter on search results is guessing
Built and tested on n8n Cloud; self-hosted works too as long as Data Tables are available and a public HTTPS webhook URL is set for Telegram callbacks
Includes free updates to the workflow files; support via Gumroad
Not affiliated with or endorsed by Freelancer.com, Telegram, OpenAI, or n8n — use in accordance with Freelancer.com's API terms