diff --git a/b2b-marketing-assistant/README.md b/b2b-marketing-assistant/README.md
new file mode 100644
index 00000000..4cc79dc2
--- /dev/null
+++ b/b2b-marketing-assistant/README.md
@@ -0,0 +1,20 @@
+
+

+
+
+# Run and deploy your AI Studio app
+
+This contains everything you need to run your app locally.
+
+View your app in AI Studio: https://ai.studio/apps/drive/1ZPnGbhaEnyhIyqs2rYhcPXHg8VACWeq0
+
+## Run Locally
+
+**Prerequisites:** Node.js
+
+
+1. Install dependencies:
+ `npm install`
+2. Set the `GEMINI_API_KEY` in [.env.local](.env.local) to your Gemini API key
+3. Run the app:
+ `npm run dev`
diff --git a/b2b-marketing-assistant/metadata.json b/b2b-marketing-assistant/metadata.json
new file mode 100644
index 00000000..ff7a6228
--- /dev/null
+++ b/b2b-marketing-assistant/metadata.json
@@ -0,0 +1,5 @@
+{
+ "name": "B2B Marketing Assistant",
+ "description": "An intelligent assistant that analyzes a company's website to generate targeted B2B marketing strategies, personas, pain points, and messaging across various channels.",
+ "requestFramePermissions": []
+}
\ No newline at end of file
diff --git a/b2b-marketing-assistant/package.json b/b2b-marketing-assistant/package.json
new file mode 100644
index 00000000..b6ff47f0
--- /dev/null
+++ b/b2b-marketing-assistant/package.json
@@ -0,0 +1,22 @@
+{
+ "name": "b2b-marketing-assistant",
+ "private": true,
+ "version": "0.0.0",
+ "type": "module",
+ "scripts": {
+ "dev": "vite",
+ "build": "vite build",
+ "preview": "vite preview"
+ },
+ "dependencies": {
+ "react-dom": "^19.2.0",
+ "@google/genai": "^1.28.0",
+ "react": "^19.2.0"
+ },
+ "devDependencies": {
+ "@types/node": "^22.14.0",
+ "@vitejs/plugin-react": "^5.0.0",
+ "typescript": "~5.8.2",
+ "vite": "^6.2.0"
+ }
+}
diff --git a/b2b-marketing-assistant/tsconfig.json b/b2b-marketing-assistant/tsconfig.json
new file mode 100644
index 00000000..2c6eed55
--- /dev/null
+++ b/b2b-marketing-assistant/tsconfig.json
@@ -0,0 +1,29 @@
+{
+ "compilerOptions": {
+ "target": "ES2022",
+ "experimentalDecorators": true,
+ "useDefineForClassFields": false,
+ "module": "ESNext",
+ "lib": [
+ "ES2022",
+ "DOM",
+ "DOM.Iterable"
+ ],
+ "skipLibCheck": true,
+ "types": [
+ "node"
+ ],
+ "moduleResolution": "bundler",
+ "isolatedModules": true,
+ "moduleDetection": "force",
+ "allowJs": true,
+ "jsx": "react-jsx",
+ "paths": {
+ "@/*": [
+ "./*"
+ ]
+ },
+ "allowImportingTsExtensions": true,
+ "noEmit": true
+ }
+}
\ No newline at end of file
diff --git a/b2b-marketing-assistant/types.ts b/b2b-marketing-assistant/types.ts
new file mode 100644
index 00000000..fe900238
--- /dev/null
+++ b/b2b-marketing-assistant/types.ts
@@ -0,0 +1,23 @@
+
+export interface InputData {
+ companyUrl: string;
+ language: 'de' | 'en';
+ regions: string;
+ focus: string;
+ channels: string[];
+}
+
+export interface AnalysisStep {
+ headers: string[];
+ rows: string[][];
+ summary?: string[];
+}
+
+export interface AnalysisData {
+ offer: AnalysisStep;
+ targetGroups: AnalysisStep;
+ personas: AnalysisStep;
+ painPoints: AnalysisStep;
+ gains: AnalysisStep;
+ messages: AnalysisStep;
+}