{"meta":{"instanceId":"1c7d07da94594ba2f94dbfcfe84b40cd3e99ac5aa392077ef5d0193a71a4945c","templateCredsSetupCompleted":true},"nodes":[{"id":"22475581-4fe3-43b1-be5a-a50814a4498e","name":"create a bid","type":"n8n-nodes-base.httpRequest","position":[2076,740],"parameters":{"url":"https://www.freelancer.com/api/projects/0.1/bids","method":"POST","options":{},"sendBody":true,"authentication":"genericCredentialType","bodyParameters":{"parameters":[{"name":"project_id","value":"={{ $('ExtractDate').item.json['Project Id']}}"},{"name":"bidder_id","value":"={{ $('SetInputs').item.json.My_ID.toNumber()}}"},{"name":"amount","value":"={{ $('ExtractDate').item.json.Bid_avg }}"},{"name":"period","value":"={{ 3 }}"},{"name":"description","value":"={{ $json.output }}"},{"name":"profile_id","value":"={{ 1 }}"},{"name":"milestone_percentage","value":"={{ 50 }}"}]},"genericAuthType":"httpHeaderAuth"},"credentials":{"httpHeaderAuth":{"id":"Z2XfSxbaSWiJRZPY","name":"MyFreelancerAPi"}},"typeVersion":4.2},{"id":"52f10d69-9718-4dd8-b7d9-afea23edae29","name":"If","type":"n8n-nodes-base.if","position":[-500,1190],"parameters":{"options":{},"conditions":{"options":{"version":2,"leftValue":"","caseSensitive":true,"typeValidation":"strict"},"combinator":"and","conditions":[{"id":"7e0422e1-4884-4c4b-a68a-b14a548d2416","operator":{"name":"filter.operator.equals","type":"string","operation":"equals"},"leftValue":"={{ $json['result.projects'].status }}","rightValue":"active"}]}},"typeVersion":2.2},{"id":"9fcaf2a0-4b32-477b-8553-92c359bf121b","name":"AI Agent","type":"@n8n/n8n-nodes-langchain.agent","position":[1700,640],"parameters":{"text":"=project title: {{ $json.Title }}.\nProject Description: {{ $json.Description }}","options":{"systemMessage":"=You are a professional freelancer whose goal is to win jobs on Freelancer.com.\n\nWhen provided with a job description and a list of relevant skills, generate a concise, compelling, and professionally written proposal of approximately 100 words. The proposal should:\n\nBegin with \"Hi there\"\n\nClearly demonstrate your ability to complete the project based on the given skills\n\nUse formal, confident, and persuasive language appropriate for a freelance job application\n\nConclude with:\n\nBest Regards  \nMohamed\n\n\nYour objective is to convince potential clients of your capability and reliability while remaining succinct and tailored to each job posting.\ngive the output in markdown language."},"promptType":"define"},"typeVersion":2},{"id":"83b2fd91-da82-4ab4-916f-8c5852b30d68","name":"OpenAI Chat Model","type":"@n8n/n8n-nodes-langchain.lmChatOpenAi","position":[1788,860],"parameters":{"model":{"__rl":true,"mode":"list","value":"gpt-4.1-nano-2025-04-14","cachedResultName":"gpt-4.1-nano-2025-04-14"},"options":{}},"credentials":{"openAiApi":{"id":"QHEc65I8RI5Ifeeh","name":"OpenAi account-13-7-2025"}},"typeVersion":1.2},{"id":"5d94b88a-16e0-4d94-aebb-45e5d020eb7b","name":"ExtractDate","type":"n8n-nodes-base.set","position":[-280,1190],"parameters":{"options":{},"assignments":{"assignments":[{"id":"631369c8-7f30-421f-b674-14437ca79080","name":"Title","type":"string","value":"={{ $json['result.projects'].title }}"},{"id":"6f01140f-b31f-4c7f-9eaf-0ed999aea0dd","name":"seo_url","type":"string","value":"={{ \"https://www.freelancer.com/projects/\"+$json['result.projects'].seo_url}}"},{"id":"645a6cdd-3054-4d36-87cd-00c2f1b5fb6f","name":"Description","type":"string","value":"={{ $json['result.projects'].description }}"},{"id":"7eadce75-deee-4220-b7c6-1b552e914ff4","name":"Type","type":"string","value":"={{ $json['result.projects'].type }}"},{"id":"9db53cd4-71bb-4959-aa3f-1ec56f4422a4","name":"budget_minimum","type":"number","value":"={{ $json['result.projects'].budget.minimum }}"},{"id":"8c282c46-2974-42a2-9351-dc6f9ac44f77","name":"Budget_maximum","type":"number","value":"={{ $json['result.projects'].budget.maximum }}"},{"id":"d37f87ef-1118-4200-9d47-0463f5040f7f","name":"Bid_count","type":"number","value":"={{ $json['result.projects'].bid_stats.bid_count }}"},{"id":"75fb01ad-3c73-4c7a-b439-a573b57d41dc","name":"Bid_avg","type":"number","value":"={{ $json['result.projects'].bid_stats.bid_avg }}"},{"id":"af1f4893-077b-4f6f-b3fe-b951c554af78","name":"result.projects[0].currency.code","type":"string","value":"={{ $json[\"result.projects\"].currency.code }} / {{ $json[\"result.projects\"].currency.code }} / {{ $json[\"result.projects\"].currency.name }}"},{"id":"7fccd569-48d1-4aa6-b7cb-90a523aae112","name":"Project Id","type":"number","value":"={{ $json[\"result.projects\"].id }}"},{"id":"605af89d-0642-4e7c-a18f-c00b51654c67","name":"short_description","type":"string","value":"={{ $json[\"result.projects\"].preview_description }}"}]}},"typeVersion":3.4},{"id":"36523231-3d88-49af-9788-42d07443db23","name":"SetInputs","type":"n8n-nodes-base.set","position":[-1160,1190],"parameters":{"options":{},"assignments":{"assignments":[{"id":"c9c0ae7c-4aa2-4680-a017-025c2283ecdf","name":"search","type":"string","value":"={{ $json.query }}"},{"id":"72216c0f-9707-41bd-9603-75aef05e2202","name":"My_ID","type":"string","value":"={{1234}}"},{"id":"365c65cf-a949-42a2-ad2d-526bfa3b7f02","name":"ChatID","type":"number","value":"=1073915195"}]}},"typeVersion":3.4},{"id":"ea363838-4496-4d42-9c37-0b09a59f9326","name":"If1","type":"n8n-nodes-base.if","position":[1480,890],"parameters":{"options":{},"conditions":{"options":{"version":2,"leftValue":"","caseSensitive":true,"typeValidation":"strict"},"combinator":"and","conditions":[{"id":"62bf2c07-15bd-45b4-913b-34fbfbee7fc5","operator":{"type":"boolean","operation":"true","singleValue":true},"leftValue":"={{ $json.data.approved }}","rightValue":""}]}},"typeVersion":2.2},{"id":"f7a313d2-0d44-4657-97c9-f33a85211131","name":"Send Succuss","type":"n8n-nodes-base.telegram","position":[2296,965],"webhookId":"bbdaeb2c-e979-4fdd-9533-a5dc4c423b8d","parameters":{"text":"=The bid is:   {{ $json.status }}.\n\nProposal: \n\n{{ $json.result.description }}\n\nJob Link: {{ $('ExtractDate').item.json.seo_url }}","chatId":"={{ $('SetInputs').item.json.ChatID }}","additionalFields":{"appendAttribution":false}},"credentials":{"telegramApi":{"id":"09UndWCC1OKgLOrR","name":"@n8nAswanbot"}},"typeVersion":1.2},{"id":"6bd163b8-a7df-4e7d-b971-5232828b6616","name":"Search","type":"n8n-nodes-base.httpRequest","position":[-940,1190],"parameters":{"url":"https://www.freelancer.com/api/projects/0.1/projects/active","options":{},"sendQuery":true,"authentication":"genericCredentialType","genericAuthType":"httpHeaderAuth","queryParameters":{"parameters":[{"name":"full_description","value":"={{ 1}}"},{"name":"limit","value":"10"},{"name":"query","value":"={{ $json.search }}"},{"name":"user_status","value":"={{ 0 }}"}]}},"credentials":{"httpHeaderAuth":{"id":"Z2XfSxbaSWiJRZPY","name":"MyFreelancerAPi"}},"typeVersion":4.2},{"id":"f125cff0-4253-480f-a21f-f63f34181cf5","name":"GetProjects","type":"n8n-nodes-base.splitOut","position":[-720,1190],"parameters":{"include":"=","options":{},"fieldToSplitOut":"result.projects"},"typeVersion":1},{"id":"2528b65f-1a78-4337-a98a-c2a15d5c36c0","name":"Loop Over Items","type":"n8n-nodes-base.splitInBatches","position":[-60,1190],"parameters":{"options":{}},"typeVersion":3},{"id":"5ee5cce6-22ab-42fe-b562-8722c56ffbe6","name":"checkBidding","type":"n8n-nodes-base.httpRequest","position":[160,890],"parameters":{"url":"=https://www.freelancer.com/api/projects/0.1/projects/{{ $json[\"Project Id\"] }}/bids/","options":{},"authentication":"genericCredentialType","genericAuthType":"httpHeaderAuth"},"credentials":{"httpHeaderAuth":{"id":"Z2XfSxbaSWiJRZPY","name":"MyFreelancerAPi"}},"typeVersion":4.2},{"id":"ec2743dd-479b-4ab3-bce7-0c91917d07d2","name":"Split Out","type":"n8n-nodes-base.splitOut","position":[380,890],"parameters":{"options":{},"fieldToSplitOut":"result.bids"},"typeVersion":1},{"id":"20de4c07-3cda-4e41-829c-9f40dc3cbbe4","name":"Edit Fields","type":"n8n-nodes-base.set","position":[600,890],"parameters":{"options":{},"assignments":{"assignments":[{"id":"0a8c2fd3-ec1f-42ab-b417-fe99d3b8d1c6","name":"Bidder_id","type":"number","value":"={{ $json.bidder_id }}"}]}},"typeVersion":3.4},{"id":"c8c37f4c-1d0d-4dd2-8a2a-e7274e7d2f0e","name":"Aggregate","type":"n8n-nodes-base.aggregate","position":[820,890],"parameters":{"options":{},"fieldsToAggregate":{"fieldToAggregate":[{"fieldToAggregate":"Bidder_id"}]}},"typeVersion":1},{"id":"f832b603-8779-4dcb-bed6-c96085bae2d8","name":"If2","type":"n8n-nodes-base.if","position":[1040,890],"parameters":{"options":{},"conditions":{"options":{"version":2,"leftValue":"","caseSensitive":true,"typeValidation":"strict"},"combinator":"and","conditions":[{"id":"4bb5ddb6-d648-4058-9fbd-a63a9a073f55","operator":{"type":"array","operation":"contains","rightType":"any"},"leftValue":"={{ $json.Bidder_id }}","rightValue":"={{ $('SetInputs').item.json.My_ID.toNumber() }}"}]}},"typeVersion":2.2},{"id":"ce85a323-6bb0-49de-9006-1b409b68dfa7","name":"GetApproval","type":"n8n-nodes-base.telegram","position":[1260,890],"webhookId":"8a408e11-f0b9-43ce-9bc2-dd8887883950","parameters":{"chatId":"={{ $('SetInputs').item.json.ChatID }}","message":"=# Project Title: {{ $('Loop Over Items').item.json.Title }}\n\n# Link: {{ $('Loop Over Items').item.json.seo_url }}\n\n# Description: \n{{ $('ExtractDate').item.json.short_description }}\n-------------\nBid: {{ $('Loop Over Items').item.json.budget_minimum }} - {{ $('Loop Over Items').item.json.Bid_avg }} - {{ $('Loop Over Items').item.json.Budget_maximum }} \n\nCurrency: {{ $('Loop Over Items').item.json.result.projects[0].currency.code }}\n\nBid Count: {{ $('Loop Over Items').item.json.Bid_count }}","options":{"appendAttribution":false},"operation":"sendAndWait","approvalOptions":{"values":{"approvalType":"double"}}},"credentials":{"telegramApi":{"id":"09UndWCC1OKgLOrR","name":"@n8nAswanbot"}},"typeVersion":1.2},{"id":"63cbff98-f6cf-4d2e-a62e-e28aa64686ac","name":"Canceled ","type":"n8n-nodes-base.telegram","position":[1778,1040],"webhookId":"8a408e11-f0b9-43ce-9bc2-dd8887883950","parameters":{"text":"OK, I canceled it.","chatId":"={{ $('SetInputs').item.json.ChatID }}","additionalFields":{}},"credentials":{"telegramApi":{"id":"09UndWCC1OKgLOrR","name":"@n8nAswanbot"}},"typeVersion":1.2},{"id":"0c987b01-79d6-4654-b960-e87e0ec43bbb","name":"When Executed by Another Workflow","type":"n8n-nodes-base.executeWorkflowTrigger","position":[-1440,1200],"parameters":{"workflowInputs":{"values":[{"name":"query"}]}},"typeVersion":1.1},{"id":"5dddbdd9-6169-4a99-a8df-279ce1ab6072","name":"AlreadyBid","type":"n8n-nodes-base.set","position":[1260,660],"parameters":{"options":{},"assignments":{"assignments":[{"id":"3622f872-99d8-4e41-b8c5-94db7574e395","name":"Message","type":"string","value":"\"You have already bid on this project\""}]}},"typeVersion":3.4},{"id":"4d688cbd-3d60-4d20-879f-89be0f0d9d0d","name":"When clicking ‘Execute workflow’","type":"n8n-nodes-base.manualTrigger","position":[400,1520],"parameters":{},"typeVersion":1},{"id":"986124f2-57c6-4a59-8c53-1890a1b9cab3","name":"Execute Workflow","type":"n8n-nodes-base.executeWorkflow","position":[1060,1620],"parameters":{"mode":"each","options":{},"workflowId":{"__rl":true,"mode":"list","value":"RmnQvNfC3PESEASk","cachedResultName":"freelancerAgent"},"workflowInputs":{"value":{"query":"={{ $json.skills }}"},"schema":[{"id":"query","type":"string","display":true,"removed":false,"required":false,"displayName":"query","defaultMatch":false,"canBeUsedToMatch":true}],"mappingMode":"defineBelow","matchingColumns":["query"],"attemptToConvertTypes":false,"convertFieldsToString":true}},"typeVersion":1.2},{"id":"3be9a027-bbf5-4b85-8083-4334faf5c5b2","name":"Schedule Trigger","type":"n8n-nodes-base.scheduleTrigger","position":[400,1720],"parameters":{"rule":{"interval":[{"field":"hours"}]}},"typeVersion":1.2},{"id":"1742dee9-6a8d-449d-bfa5-45d9af413dcd","name":"Edit Fields1","type":"n8n-nodes-base.set","position":[620,1620],"parameters":{"options":{},"assignments":{"assignments":[{"id":"0ce62b40-60df-4ff3-b13a-2c740b3d9890","name":"skills","type":"array","value":"[\"n8n\", \"python\"]"}]}},"typeVersion":3.4},{"id":"44b0525d-0b72-401d-a07d-710d1e39beb6","name":"Split Out1","type":"n8n-nodes-base.splitOut","position":[840,1620],"parameters":{"options":{},"fieldToSplitOut":"skills"},"typeVersion":1},{"id":"1b8d45ea-6971-4a45-b926-ce1fa48da402","name":"Sticky Note","type":"n8n-nodes-base.stickyNote","position":[-1480,-180],"parameters":{"width":1360,"height":1100,"content":"# 🔁 Auto-Bidder for Freelancer.com with Telegram Approval and AI Proposals\n\nThis **n8n template** automates your freelance bidding workflow on [Freelancer.com](https://freelancer.com), combining API calls, Telegram interactions, and AI-generated proposals. Ideal for freelancers who want to bid smarter, faster, and hands-free.\n\n## ✨ Features\n\n- 🔍 **Skill-Based Project Search**  \n  Searches for active projects on Freelancer.com using your chosen skill keywords (e.g., `n8n`, `Python`, `Django`).\n\n- 🚫 **Duplicate Bid Prevention**  \n  Automatically checks if you’ve already bid on a project and skips it.\n\n- 🤖 **AI Proposal Generation**  \n  Generates short, persuasive, and customized proposals using an AI agent.\n\n- 📬 **Telegram Notifications**  \n  Sends project summaries to Telegram with inline buttons to **Bid** or **Cancel**.\n\n- ✅ **Auto-Bid Submission**  \n  When you approve a project via Telegram, the bid is submitted with predefined values (amount, period, milestone).\n\n- ⏱️ **Manual or Scheduled Execution**  \n  Supports both on-demand and scheduled workflows (hourly, daily, etc.).\n\n## 📌 Requirements\n\n- Freelancer.com API token (OAuth)\n- Telegram Bot API token\n- OpenAI API key (for proposal generation)\n\n## 📎 Use Cases\n\n- Freelancers automating repetitive bidding tasks\n- Agencies managing client profiles\n- Developers experimenting with AI + API + chat integration\n\n## 🔗 Included Workflows\n\n- `freelancerMain` – Kicks off execution with skill input\n- `freelancerAgent` – Performs project search, bidding logic, Telegram prompts, and AI proposal generation\n\n---\n\n> 💡 Tip: You can easily customize the skill query list, bid amount logic, or prompt format in the workflow settings.\n"},"typeVersion":1}],"pinData":{"When Executed by Another Workflow":[{"query":"n8n"}]},"connections":{"If":{"main":[[{"node":"ExtractDate","type":"main","index":0}]]},"If1":{"main":[[{"node":"AI Agent","type":"main","index":0}],[{"node":"Canceled ","type":"main","index":0}]]},"If2":{"main":[[{"node":"AlreadyBid","type":"main","index":0}],[{"node":"GetApproval","type":"main","index":0}]]},"Search":{"main":[[{"node":"GetProjects","type":"main","index":0}]]},"AI Agent":{"main":[[{"node":"create a bid","type":"main","index":0}]]},"Aggregate":{"main":[[{"node":"If2","type":"main","index":0}]]},"Canceled ":{"main":[[{"node":"Loop Over Items","type":"main","index":0}]]},"SetInputs":{"main":[[{"node":"Search","type":"main","index":0}]]},"Split Out":{"main":[[{"node":"Edit Fields","type":"main","index":0}]]},"Split Out1":{"main":[[{"node":"Execute Workflow","type":"main","index":0}]]},"Edit Fields":{"main":[[{"node":"Aggregate","type":"main","index":0}]]},"ExtractDate":{"main":[[{"node":"Loop Over Items","type":"main","index":0}]]},"GetApproval":{"main":[[{"node":"If1","type":"main","index":0}]]},"GetProjects":{"main":[[{"node":"If","type":"main","index":0}]]},"Edit Fields1":{"main":[[{"node":"Split Out1","type":"main","index":0}]]},"Send Succuss":{"main":[[{"node":"Loop Over Items","type":"main","index":0}]]},"checkBidding":{"main":[[{"node":"Split Out","type":"main","index":0}]]},"create a bid":{"main":[[{"node":"Send Succuss","type":"main","index":0}]]},"Loop Over Items":{"main":[[],[{"node":"checkBidding","type":"main","index":0}]]},"Schedule Trigger":{"main":[[{"node":"Edit Fields1","type":"main","index":0}]]},"OpenAI Chat Model":{"ai_languageModel":[[{"node":"AI Agent","type":"ai_languageModel","index":0}]]},"When Executed by Another Workflow":{"main":[[{"node":"SetInputs","type":"main","index":0}]]},"When clicking ‘Execute workflow’":{"main":[[{"node":"Edit Fields1","type":"main","index":0}]]}}}