{
  "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
    }
  }
}