AI Agents.
Engineered, not
cobbled together.
loaded. from Zurich builds custom AI agents with Python and Node.js for Swiss businesses. No low-code platforms, no pre-built modules — every agent is engineered from the ground up.
Our agents research, analyze, decide, and act autonomously — around the clock. Project-based, for select clients in Switzerland.
AI Agents Are Not Chatbots
A chatbot waits for your question. An AI agent works independently. It researches data across the web, analyzes websites, tracks prices over months, generates reports, sends emails — all around the clock, without manual intervention. It makes decisions based on the data it finds: Which prospect is most promising? Which page needs a content update? Which competitor price has changed?
AI Agent Platforms Compared
The AI agent market is growing fast. From visual workflow tools to autonomous agent systems — the approaches differ fundamentally. Here is how the major platforms compare and where custom code agents fit in.
Quick setup, hundreds of connectors, visual logic. Great for simple automations with clearly defined if-then rules.
No real reasoning, no dynamic decision logic. No sandbox execution.
Anthropic's agent framework: tool use, computer use, code execution. Strong reasoning.
Tied to Claude models. Managed agents are generalist. No persistent data storage without your own infrastructure.
Local, 100+ skills, connects LLMs with apps and browser. 247,000+ GitHub stars.
Personal assistant — not for business processes. No CRM/ERP integration. Vulnerable to prompt injection.
Executes complex tasks autonomously: web research, document creation, data analysis.
Black box — no control over logic or data flow. No business system integration.
Code Interpreter, File Search, Function Calling. Large ecosystem, simple API.
GPTs lack true agency — they only react to input. No scheduling, no system integration.
Full control over logic, prompts, data flow, LLM selection. Multi-model. Own sandboxes, own database, own API integrations. No platform dependency.
Higher initial investment. Requires experienced developers. Not for simple if-then automations.
Every platform has its place. n8n and Make.com are excellent for rapid prototyping. OpenClaw impressively demonstrates what a local agent can do on your own machine. Claude and OpenAI provide strong foundations for developers. For Swiss businesses that need an agent deeply integrated into their systems, reliably running around the clock, and improving with every new LLM generation — that is where custom code comes in.
What Our AI Agents Deliver in Practice
6 use cases for Swiss businesses.
Research & Outreach Agent
Automatically finds prospects in a specific industry and region, technically analyzes their websites — performance, tech stack, weaknesses — and generates personalized audit pages. Sends tailored outreach emails via Resend with SPF/DKIM authentication. We use this agent ourselves — for loaded.'s client acquisition in Switzerland.
Discuss Your Project →SEO & Content Intelligence
Analyzes competitor pages live — word count, headings, schema markup, rankings. Automatically detects content gaps, prioritizes keywords by search volume and competition, and suggests specific changes or applies them directly. Uses Google Gemini with search grounding for real-time SERP analysis. We use this agent ourselves for loaded.ch.
Discuss Your Project →Price Intelligence Agent
Monitors competitor prices automatically — today and three months from now. Ideal for Swiss hotels, e-commerce, and any industry with dynamic pricing. Crawls multiple sources in parallel, normalizes data in Supabase (Postgres), and generates time-based comparison reports with trend analysis. Spots competitor price changes before your revenue team finds them manually.
Discuss Your Project →Dynamic Page Creation
Creates pages programmatically based on database content, API responses, or user input. Full control over structure, schema markup, URL slugs, and meta data — deployed on Vercel with SSR or ISR. No CMS limitations, no templates. Perfect for Swiss SMEs with hundreds of product pages or location-specific landing pages.
Discuss Your Project →Email Automation
Complete email pipelines with Resend — transactional and marketing. Trigger-based, API-driven, with personalized content per recipient. SPF/DKIM authenticated so emails land in the inbox, not spam. No Mailchimp, no monthly subscription — pure API logic, infinitely scalable.
Discuss Your Project →WebMCP & OpenHermit
Our own MCP implementation (Model Context Protocol) gives AI agents direct access to website content, forms, and APIs. Agents can do more than read — they can act: book appointments, submit inquiries, update data. OpenHermit is our open-source contribution to the agent ecosystem — built in Zurich.
Discuss Your Project →In Practice: Our Research & Outreach Agent
We use this agent ourselves. It finds potential clients, automatically analyzes their websites, and generates personalized audit pages — entirely without manual effort. Here is how it works.
The Result for the Prospect
Prospect receives an email
Personally written, based on a real analysis of their website. No template, no mass mailing — every email is unique.
Clicks their personal audit link
A custom-generated page shows: screenshot of their website, performance score, technical weaknesses, comparison with two competitors from the same city.
Can submit a request directly
A CTA form on the audit page. The request is saved in real time, the prospect receives a confirmation, and we are notified immediately.
What the Agent Does Behind the Scenes
Scout: Find prospects
Gemini with Google Search grounding searches for businesses in a specific industry and region. For each website found, a tech debt score is calculated: WordPress, jQuery 1.x, Bootstrap 3, IE polyfills — the higher the score, the greater the need for action.
Analyze: Measure performance + AI vision
Two parallel Google PageSpeed Insights calls (mobile + desktop). The desktop screenshot is sent to Gemini Vision — the model sees the website and produces a structured analysis: weaknesses, potential, a tailored initial outreach message.
Outreach: Find contact + send email
Four-layer contact search: mailto links, regex in HTML, obfuscation decoder, crawl of /kontakt, /impressum, /about — and as a last resort, a Gemini web search. Audit data is saved via API, an SSR page is rendered live, and the email is sent via Resend.
Controls the entire process: Scout → Analysis → Outreach. Communicates with Gemini, Google PSI, and the website API.
Receives audit data via API, renders personalized audit pages with SSR. Tracks views and requests in real time.
Postgres with Row Level Security. Stores all audit data as JSONB: analysis, PSI scores, screenshots, competitor comparison.
The Complete Data Flow
Technical Blueprint — Pipeline in Detail
Scout — Find Prospects
scout.jsGemini with Google Search grounding searches for businesses in a specific industry and region. A tech debt score is calculated for each website found.
const prompt = `Finde 10 ${branche} in ${city}
mit eigener Website. Gib URLs zurück.`;
const results = await gemini.generate({
model: 'gemini-2.0-flash',
tools: [{ googleSearch: {} }],
prompt
});
// Calculate tech debt score
for (const url of results.urls) {
const html = await fetchHTML(url);
const score = calcTechDebt(html);
// WordPress=3, jQuery 1.x=2, Bootstrap 3=2
} Fetch + PageSpeed Insights
outreach.jsParallel requests: HTML fetch with redirect handling (5 hops), self-signed cert bypass. Two PSI calls (mobile + desktop) via Promise.allSettled.
const [mobile, desktop] = await Promise.allSettled([
psiCall(url, 'MOBILE'),
psiCall(url, 'DESKTOP')
]);
const screenshot = desktop.value
?.lighthouseResult?.audits
?.['final-screenshot']
?.details?.data; // base64 JPEG
const perfScore = mobile.value
?.lighthouseResult?.categories
?.performance?.score * 100; Find Contact Email
outreach.js — findEmailFour-layer search: mailto links → regex in HTML → obfuscation decoder (info[at]domain.ch) → crawl of /kontakt, /impressum, /about → as fallback: Gemini web search.
async function findEmail(html, domain) {
// Layer 1: mailto links
let email = html.match(/mailto:([^"]+)/)?.[1];
if (email) return email;
// Layer 2: regex in raw HTML
email = html.match(/[\w.-]+@[\w.-]+\.\w+/)?.[0];
if (email) return email;
// Layer 3: obfuscation decoder
email = decodeObfuscated(html);
// info[at]domain.ch → info@domain.ch
// Layer 4: crawl subpages
for (const p of ['/kontakt','/impressum'])
email ??= await scrape(domain + p);
} Gemini Vision Analysis
outreach.js — deepAnalyzeScreenshot (base64 JPEG) + tech signals as a multimodal request to Gemini 2.0 Flash. Returns structured JSON: business type, weaknesses, potential, personalized email subject and intro.
const analysis = await gemini.generate({
model: 'gemini-2.0-flash',
contents: [{
parts: [
{ inlineData: { mimeType: 'image/jpeg',
data: screenshot } },
{ text: `Analysiere diese Website.
Rückgabe als JSON:
{ businessType, weaknesses[],
potential, emailSubject,
emailIntro }` }
]
}]
});
// Post-processing
analysis.emailIntro = analysis.emailIntro
.replace(/cookie|banner/gi, '')
.split('.').slice(0, 3).join('.'); Competitor Benchmark
outreach.js — getCompetitorsPSIGemini suggests two competitors from the same city. HEAD requests validate each URL, followed by parallel PSI calls. Result: comparison bars on the audit page.
const competitors = await gemini.generate({
prompt: `Nenne 2 Konkurrenten für
${businessType} in ${city}`
});
// Validate URLs exist
const valid = await Promise.all(
competitors.map(async (c) => {
const res = await fetch(c.url, {method:'HEAD'});
return res.ok ? c : null;
})
);
// Parallel PSI for each competitor
const scores = await Promise.allSettled(
valid.filter(Boolean).map(c => psiCall(c.url))
); Save + Generate Audit Page
outreach.js — saveToAPIPOST to the website API with Bearer token auth. Upsert in Supabase (view_count and redesign_requested are preserved across re-runs). The audit page is rendered via SSR.
await fetch('https://loaded.ch/api/audit/save', {
method: 'POST',
headers: {
'Authorization': `Bearer ${AUDIT_SECRET}`,
'Content-Type': 'application/json'
},
body: JSON.stringify({
slug, url, perfScore, analysis,
screenshot, competitors, email
})
});
// Supabase upsert (preserves view_count)
// SSR page: loaded.ch/audit/[slug]
// view_count++ on each visit Send Email
outreach.js — sendEmailResend API with SPF/DKIM authentication. Intentionally plain HTML — designed to look like a real Gmail message, not a marketing template. HTML and text versions for maximum deliverability.
import { Resend } from 'resend';
const resend = new Resend(RESEND_API_KEY);
await resend.emails.send({
from: 'Benjamin <hello@loaded.ch>',
to: contactEmail,
subject: analysis.emailSubject,
html: buildGmailStyleHTML({
intro: analysis.emailIntro,
auditUrl: `https://loaded.ch/audit/${slug}`,
perfScore,
businessName
}),
text: buildPlainText({ /* ... */ })
}); Output — Audit Data in Supabase
{
"slug": "restaurant-bellevue-zuerich",
"url": "https://restaurant-bellevue.ch",
"perf_mobile": 34,
"perf_desktop": 61,
"tech_debt_score": 7,
"analysis": {
"businessType": "Restaurant",
"weaknesses": [
{ "issue": "Render-blocking CSS", "severity": "high" },
{ "issue": "No image optimization", "severity": "high" },
{ "issue": "jQuery 1.12.4", "severity": "medium" }
]
},
"competitors": [
{ "name": "Kronenhalle", "score": 72 },
{ "name": "Zeughauskeller", "score": 58 }
],
"view_count": 0,
"redesign_requested": false
} Our Tech Stack for AI Agents
The tools and frameworks behind our agents.
Python · Node.js / TypeScript — depending on the use case. Python for data processing and ML integration. Node.js for web scraping, API communication, and real-time systems.
Anthropic Claude · OpenAI · Google Gemini · LangChain · LangGraph — we select the model per task: vision, reasoning, speed, cost.
Supabase (Postgres) · Vercel · Docker · Daytona sandbox environments for secure code execution. Swiss hosting available for nDSG-compliant projects.
Resend (email) · WebMCP / OpenHermit (agent-website interaction) · Any REST or GraphQL API · Webhooks · CRM · ERP · Direct database access.
Sandboxes: Why Security Is a Prerequisite for AI Agents
AI agents execute code, call APIs, and process data — they need controlled environments. We use Daytona sandboxes: isolated environments where each agent process only has access to the resources it needs. No uncontrolled access to production systems, no open network connections. For Swiss companies with nDSG requirements, the entire infrastructure can run on Swiss servers.
How Your AI Agent Is Built
Discovery
Which process should be automated? What data sources exist? Which systems need to be connected? We define the scope together — and verify whether an agent is the right solution.
Architecture
Which LLM for which task? What pipeline steps? How should error handling work? We design the agent architecture before a single line of code is written.
Build & Test
Iterative development with real data. Prototype in 1-2 weeks, production version in 4-8 weeks. Prompt engineering, edge-case handling, performance optimization — until the agent delivers reliably.
Operations & Evolution
An agent is not built once and forgotten. New LLM models bring better reasoning, lower costs, and new capabilities — almost weekly. We continuously test, optimize, and extend.
Project-based — for select clients
AI agents require intensive collaboration and ongoing support. We work with a small number of clients to guarantee maximum quality.
Discuss Your Project →Frequently Asked Questions
What exactly is an AI agent?
Why does loaded. build agents from scratch?
Which industries benefit from AI agents?
How long does it take to develop an AI agent?
How much does an AI agent cost?
Why does loaded. only work with select clients?
How is my agent hosted and operated?
What happens after launch?
Can an agent communicate with my existing systems?
How secure are the agents?
Book your free strategy call.
30 minutes — no obligation, no sales pitch. We analyse your situation and show you what's possible.
Could not load available times. Please email us directly.
hello@loaded.ch