diff --git a/general-market-intelligence/README.md b/general-market-intelligence/README.md
new file mode 100644
index 00000000..b3aadcc7
--- /dev/null
+++ b/general-market-intelligence/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/1hqAT_ZEgFV0rmyyCHSDAQMucb_tpEWUp
+
+## 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/general-market-intelligence/metadata.json b/general-market-intelligence/metadata.json
new file mode 100644
index 00000000..7fd6c53f
--- /dev/null
+++ b/general-market-intelligence/metadata.json
@@ -0,0 +1,5 @@
+{
+ "name": "General Market Intelligence",
+ "description": "A B2B sales intelligence agent helping SDRs identify leads and analyze competitor technology stacks using AI-powered search.",
+ "requestFramePermissions": []
+}
\ No newline at end of file
diff --git a/general-market-intelligence/package.json b/general-market-intelligence/package.json
new file mode 100644
index 00000000..f0b447c5
--- /dev/null
+++ b/general-market-intelligence/package.json
@@ -0,0 +1,27 @@
+{
+ "name": "general-market-intelligence",
+ "private": true,
+ "version": "0.0.0",
+ "type": "module",
+ "scripts": {
+ "dev": "vite",
+ "build": "vite build",
+ "preview": "vite preview"
+ },
+ "dependencies": {
+ "react": "^19.2.0",
+ "react-dom": "^19.2.0",
+ "@google/genai": "^1.29.0",
+ "lucide-react": "^0.554.0",
+ "uuid": "^13.0.0",
+ "nanoid": "^5.1.6",
+ "jspdf": "^2.5.1",
+ "jspdf-autotable": "^3.8.1"
+ },
+ "devDependencies": {
+ "@types/node": "^22.14.0",
+ "@vitejs/plugin-react": "^5.0.0",
+ "typescript": "~5.8.2",
+ "vite": "^6.2.0"
+ }
+}
diff --git a/general-market-intelligence/types.ts b/general-market-intelligence/types.ts
new file mode 100644
index 00000000..5b725a8a
--- /dev/null
+++ b/general-market-intelligence/types.ts
@@ -0,0 +1,87 @@
+
+export enum AppStep {
+ INPUT = 0,
+ STRATEGY = 1,
+ REVIEW_LIST = 2,
+ ANALYSIS = 3,
+ REPORT = 4,
+ OUTREACH = 5,
+}
+
+export type Language = 'en' | 'de' | 'fr';
+
+export interface Competitor {
+ id: string;
+ name: string;
+ url?: string;
+ description?: string;
+}
+
+export enum LeadStatus {
+ CUSTOMER = 'Bestandskunde',
+ COMPETITOR = 'Nutzt Wettbewerber',
+ POTENTIAL = 'Greenfield / Potenzial',
+ UNKNOWN = 'Unklar / Manuelle Prüfung'
+}
+
+export enum Tier {
+ TIER_1 = 'Tier 1', // Enterprise
+ TIER_2 = 'Tier 2', // Mid-Market
+ TIER_3 = 'Tier 3' // SMB
+}
+
+// NEW: Flexible Signal Definition
+export interface SearchSignal {
+ id: string;
+ name: string; // e.g. "ISO Certification" or "Return Policy"
+ description: string; // e.g. "Check for ISO 27001 badge"
+ targetPageKeywords: string[]; // e.g. ["compliance", "about", "legal"]
+}
+
+export interface SearchStrategy {
+ productContext: string; // What are we selling?
+ idealCustomerProfile: string;
+ signals: SearchSignal[];
+}
+
+export interface AnalysisResult {
+ companyName: string;
+ status: LeadStatus;
+
+ // Core Data
+ revenue: string;
+ employees: string;
+ tier: Tier;
+ dataSource: string; // "Wikipedia", "Web Search", etc.
+
+ // Dynamic Data based on Signals
+ dynamicAnalysis: Record;
+
+ recommendation: string;
+ sources?: string[];
+
+ // Meta
+ processingChecks: {
+ wiki: boolean;
+ revenue: boolean;
+ signalsChecked: boolean;
+ };
+}
+
+export interface AnalysisState {
+ currentCompany: string;
+ progress: number;
+ total: number;
+ completed: number;
+}
+
+export interface EmailDraft {
+ persona: string;
+ subject: string;
+ body: string;
+ keyPoints: string[];
+}