{ "id": "1951654706703074268", "hourlyBudgetMin": { "rawValue": "25.0", "currency": "USD", "displayValue": "25.0" }, "hourlyBudgetMax": { "rawValue": "47.0", "currency": "USD", "displayValue": "47.0" }, "ciphertext": "~021951654706703074268", "title": "Scalable White-Label RAG Chatbot with GDPR-Compliant Hosting and Custom Interface", "description": "Project Description:\nWe are looking for an experienced developer or development team to build a scalable, white-label-ready RAG (Retrieval-Augmented Generation) chatbot system with the following key features:\n\nProject Goals:\n- Develop a multi-tenant chatbot platform (SaaS-style)\n- Deploy the solution in a GDPR-compliant EU-based hosting environment\n- Integrate a LLM model (e.g., OpenAI, Claude, Mistral) with RAG capabilities\n- Build a custom web interface that allows each client to:\n-- Log into their own dashboard\n-- Upload their own documents (PDF, DOCX, etc.)\n-- Use those documents as a private data source for the chatbot\n-- Access and view their own chat history\n-- See the original document source for each chatbot response (with citation or link to the file section)\n\nTechnical Requirements:\nBackend: Node.js or Python (LangChain, LlamaIndex, or Haystack preferred)\nVector Database: Weaviate, Qdrant, or Chroma (self-hosted or EU-based)\nLLM Integration: OpenAI via Azure EU, Claude via AWS Frankfurt, or local models (e.g., Mistral, Llama 3)\nHosting: Hetzner, IONOS, or any GDPR-compliant EU-based provider\nFrontend: Next.js or React with login, file upload, chat component, and tenant-specific views\nAuthentication: JWT or OAuth\nOptional: Admin panel for managing tenants\n\nNice to Have:\nProven experience with RAG and vector search systems\nKnowledge of GDPR compliance and data protection\nExperience in multi-tenant SaaS architecture\nClean, maintainable code with documentation and containerization (e.g., Docker)\n\nDeliverables:\nFully functional prototype including:\nMulti-tenant login system\nSecure file upload and indexing per client\nRAG-enabled chatbot interface with source citation for every answer\nGDPR-compliant deployment setup\nTechnical documentation and deployment instructions\n\nWe are planning for long-term collaboration and ongoing development for additional client projects.\nWe look forward to your application!", "createdDateTime": "2025-08-02T14:41:56+0000", "duration": "MONTH", "durationLabel": "1 to 3 months", "engagement": "30+ hrs/week", "amount": { "rawValue": "0.0", "currency": "USD", "displayValue": "0.0" }, "recordNumber": "1021048391", "experienceLevel": "EXPERT", "category": "web_mobile_software_dev", "subcategory": "web_development", "freelancersToHire": 1, "relevance": { "id": "0", "effectiveCandidates": 0, "recommendedEffectiveCandidates": 0, "uniqueImpressions": 0, "publishTime": null, "hoursInactive": 0 }, "enterprise": false, "relevanceEncoded": "{\"position\":\"4764\"}", "totalApplicants": 53, "preferredFreelancerLocation": null, "preferredFreelancerLocationMandatory": false, "premium": false, "clientNotSureFields": null, "clientPrivateFields": null, "applied": false, "publishedDateTime": "2025-08-02T14:41:57+0000", "renewedDateTime": null, "occupations": { "category": { "id": "531770282580668418", "prefLabel": "Web, Mobile & Software Dev" }, "subCategories": null, "occupationService": null }, "job": { "id": "1951654706703074268", "workFlowState": { "closeResult": null, "status": "ACTIVE" }, "activityStat": { "applicationsBidStats": { "avgRateBid": { "rawValue": "37.16910447761194", "currency": "USD", "displayValue": "37.16910447761194" }, "minRateBid": { "rawValue": "15.0", "currency": "USD", "displayValue": "15.0" }, "maxRateBid": { "rawValue": "85.0", "currency": "USD", "displayValue": "85.0" }, "avgInterviewedRateBid": { "rawValue": "21.666666666666668", "currency": "USD", "displayValue": "21.666666666666668" } }, "jobActivity": { "lastClientActivity": "2025-08-03T09:20:13.402Z", "totalRecommended": 10, "invitesSent": 3, "totalInvitedToInterview": 3, "totalHired": 0, "totalUnansweredInvites": 0, "totalOffered": 0 } }, "classification": { "category": { "id": "531770282580668418", "ontologyId": "upworkOccupation:webmobileandsoftwaredev", "type": [ "OCCUPATION" ], "entityStatus": "ACTIVE", "preferredLabel": "Web, Mobile & Software Dev", "definition": null, "createdDateTime": "2018-08-20T19:39:33+0000", "modifiedDateTime": "2023-12-19T19:18:21+0000" }, "subCategory": { "id": "531770282584862733", "ontologyId": "upworkOccupation:webdevelopmentsubcategory", "type": [ "OCCUPATION" ], "entityStatus": "ACTIVE", "preferredLabel": "Web Development", "definition": null, "createdDateTime": "2018-09-24T11:14:40+0000", "modifiedDateTime": "2023-07-10T17:01:25+0000" } } }, "client": { "memberSinceDateTime": null, "totalHires": 16, "totalPostedJobs": 12, "totalSpent": { "rawValue": "7228.74", "currency": "USD", "displayValue": "7228.74" }, "verificationStatus": "VERIFIED", "location": { "city": "Graz", "country": "Austria", "timezone": "Europe/Berlin", "state": "", "offsetToUTC": "Europe" }, "totalReviews": 9, "totalFeedback": 5.0, "companyRid": "0", "companyName": null, "edcUserId": "0", "lastContractPlatform": null, "lastContractRid": "0", "lastContractTitle": null, "hasFinancialPrivacy": false }, "activityStat": { "jobActivity": { "lastClientActivity": "2025-08-04T05:19:35.711Z", "invitesSent": 3, "totalInvitedToInterview": 4, "totalHired": 0, "totalUnansweredInvites": 0, "totalOffered": 0, "totalRecommended": 10 } } }