# Intentface

Base URL: https://www.intentface.com

Intentface is a Finnish agentic experience company. We build agentic experiences for SaaS products and teach client teams the practice while we ship together.

## Case studies

### AI-powered recruitment campaigns in minutes

URL: https://www.intentface.com/work/jobilla

import { FeatureCard } from "@/components/case-study/feature-card";
import { ApproachCard, CaseIntro, IntroBlock } from "@/components/case-study/intro";
import { MediaImage, MediaSplit } from "@/components/case-study/media";
import { Checklist } from "@/components/case-study/checklist";
import { Row } from "@/components/ui/row";
import VideoLoop from "@/components/interactive/case-study/video-loop";
import BrandingAssistantDemo from "@/components/interactive/case-study/branding-assistant-demo";

<CaseIntro>
  <IntroBlock label="The client">
    Jobilla is an AI-powered recruitment platform with campaign-based digital recruiting and a comprehensive Talent Acquisition suite. They help companies find and hire the right talent through intelligent, data-driven recruitment campaigns.
  </IntroBlock>
  <IntroBlock label="The challenge">
    Transform Jobilla's scattered best practices and internal silent knowledge into an intelligent system that makes their expertise consistently accessible — enabling faster iterations, better scalability, and better campaign quality across the board.
  </IntroBlock>
</CaseIntro>

<ApproachCard>
  Together with Jobilla, we started by creating a multi-agent system orchestrating image generation, copywriting, page creation, and surveys into complete campaigns in minutes, wrapped in a user-friendly interface. Users can iterate on a campaign naturally through agentive AI conversation or fine-tune with direct editing — combining the speed of AI with the control of traditional tools.
</ApproachCard>

<VideoLoop
  src="/work/jobilla/image-editing.mp4"
  alt="Natural-language image editing inside the campaign tool"
  caption="We started with an internal editing tool. Natural language editing makes refinement effortless for Jobillans creating the campaigns."
/>

<MediaSplit align="center">
  <div>
    <h2 id="agentive-campaign-generation-with-fine-tuned-control" className="font-(family-name:--font-display) text-[1.75rem] leading-[1.2] tracking-[-0.01em] text-(--on-surface)">Agentive campaign generation with fine-tuned control</h2>
    <div className="mt-5 text-(--on-surface-muted) [&>p]:m-0 [&>p+p]:mt-6">
      We combine agentive campaign creation with direct editing capabilities — the best of both worlds. AI handles large-scale thematic edits and image generation, while precise editing tools enable quick tweaks when needed.

      Though campaigns are ready to launch as generated, users have full control to refine every detail.
    </div>
    <Checklist
      items={[
        "Ideal candidate reasoning",
        "Feed ad",
        "Story ad",
        "Landing page",
        "Pre-screening form",
        "Targeting recommendations",
      ]}
    />
  </div>
  <VideoLoop
    src="/work/jobilla/artifacts-preview.mp4"
    alt="Preview of the internal editor tool"
    caption="Preview of the internal editor tool that serves as the basis for Jobilla's next-gen campaign creation experience."
  />
</MediaSplit>

<MediaSplit>
  <BrandingAssistantDemo />
  <div>
    <h2 id="from-job-posting-to-optimized-on-brand-campaigns" className="font-(family-name:--font-display) text-[1.75rem] leading-[1.2] tracking-[-0.01em] text-(--on-surface)">From job posting to optimized on-brand campaigns</h2>
    <div className="mt-5 text-(--on-surface-muted) [&>p]:m-0 [&>p+p]:mt-6">
      Jobibot onboards new brands by analyzing their website for colors, tone of voice, and visual guidance. Users can customize their reusable brand profile based on this analysis — every campaign feels authentically on-brand with custom visuals matching brand guidelines.

      Existing job postings turn into complete campaign briefs, or users can create new briefs from scratch. Multiple language models are optimized for different content types to create cohesive campaigns for the specific target markets.
    </div>
  </div>
</MediaSplit>

## Unlocking competitive advantage

<Row cols={2}>
  <FeatureCard
    title="A/B testing at speed"
    description="Testing different messaging, visuals, and targeting strategies no longer requires weeks of production work. Jobilla can now explore multiple directions simultaneously and learn what resonates."
  />
  <FeatureCard
    title="Campaigns at scale"
    description="Where manual creation limited throughput, AI enables hundreds of tailored campaigns across roles, locations, and audiences — all maintaining brand consistency and quality."
  />
  <FeatureCard
    title="Data flywheel"
    description="Every campaign becomes a learning opportunity. Performance data and user feedback continuously refine the generation logic, turning Jobilla's growing campaign portfolio into a compounding competitive advantage."
  />
  <FeatureCard
    title="Modular AI architecture"
    description="As new models and capabilities emerge, Jobilla can integrate them without rebuilding the system. This ensures they stay ahead of competitors still locked into static tools."
  />
</Row>

---

### Building the future of medical knowledge search

URL: https://www.intentface.com/work/duodecim

import { FeatureCard } from "@/components/case-study/feature-card";
import { ApproachCard, CaseIntro, IntroBlock } from "@/components/case-study/intro";
import { MediaSplit } from "@/components/case-study/media";
import { Row } from "@/components/ui/row";
import VideoLoop from "@/components/interactive/case-study/video-loop";

<CaseIntro>
  <IntroBlock label="The client">
    Duodecim is the leading medical knowledge provider and publisher in Finland, serving over 15 million search queries yearly for medical professionals. Their services are used daily in virtually all Finnish healthcare institutions. Duodecim has always been at the forefront of medical technology innovation, pioneering electronic databases and clinical decision support systems.
  </IntroBlock>
  <IntroBlock label="The challenge">
    As AI technologies rapidly evolve, Duodecim needed a safe way to experiment with and apply them while keeping Finnish healthcare connected to a trusted knowledge provider. This required reimagining access to 100,000+ medical documents, building trust in Finnish-language AI answers, and strengthening the team's ability to responsibly evaluate emerging AI.
  </IntroBlock>
</CaseIntro>

<ApproachCard>
  We partnered with Duodecim to build D-Haku (D-Search), a proprietary hybrid search engine combining traditional keyword search with modern semantic search. Our focus was understanding medical professionals' unique needs and translating them into an intuitive, fast, and reliable interface.
</ApproachCard>

<VideoLoop
  src="/work/duodecim/d-haku-experimental.mp4"
  alt="D-Haku search interface demonstration"
  caption="Early test version of AI-powered hybrid search combining keyword and semantic search across 1.3M+ document chunks"
/>

## What D-Haku does

<Row cols={2}>
  <FeatureCard
    title="Finnish language optimization"
    description="Custom chunking strategy that preserves medical context while handling the complexities of Finnish grammar and terminology across 100,000+ documents, creating 1.3M+ searchable chunks."
  />
  <FeatureCard
    title="Agentive search"
    description="Multi-step search that allows the AI to autonomously build context using Duodecim's proprietary knowledge, intelligently combining multiple search strategies to answer complex clinical questions."
  />
  <FeatureCard
    title="Generative AI summaries"
    description="Creates contextual search summaries and snippet answers for QA-style questions, helping healthcare professionals quickly find relevant parts of the information."
  />
  <FeatureCard
    title="Reference system"
    description="Built-in citation and reference tracking maintains trust and verification. Every AI-generated answer includes clear source attribution for medical professionals to verify against original documents."
  />
</Row>

## Trust between medical professionals and AI

<MediaSplit>
  <div>
    <h3 className="text-2xl tracking-tight text-(--on-surface)">
      Clarity, trust, and easy verification
    </h3>
    <div className="mt-4 text-(--on-surface-muted) [&_p]:m-0">
      We're designing D-Haku's user experience to prioritize clarity, trust, and ease of
      verification for medical professionals. That means making it easy to distinguish between
      AI-generated summaries and direct quotes from verified sources, while ensuring that
      AI-generated content can be quickly validated against trusted medical documents.
    </div>
  </div>
  <VideoLoop
    src="/work/duodecim/d-haku-citations.mp4"
    alt="Reference popup interaction"
    caption="Hover interactions showing source documents and verification"
  />
</MediaSplit>

---

### Making professional services automation truly intelligent

URL: https://www.intentface.com/work/agileday

import { FeatureCard } from "@/components/case-study/feature-card";
import { ApproachCard, CaseIntro, IntroBlock } from "@/components/case-study/intro";
import { MediaImage, MediaSplit } from "@/components/case-study/media";
import { Row } from "@/components/ui/row";
import { Sparkles, Brain, GitBranch, Sliders } from "lucide-react";

<CaseIntro>
  <IntroBlock label="The client">
    Agileday is an AI-powered operating platform for professional services firms. With 70+ clients and 3× YoY growth across Europe and North America, they handle staffing, allocations, timesheets, and project financials — helping firms optimize utilization and improve margins.
  </IntroBlock>
  <IntroBlock label="The challenge">
    Professional services firms face fragmented systems with sales, projects, and financials in silos. With generative AI reshaping the industry, Agileday is uniquely positioned to deliver proactive intelligence that unifies data and enables better decisions — built on a platform and data foundation designed for AI from the start.
  </IntroBlock>
</CaseIntro>

<ApproachCard>
  As a professional services firm with deep generative AI expertise, we understand the operational challenges firsthand. We partner with Agileday's core team to shape and execute their AI roadmap, helping them win competitive evaluations and expand internationally while building the foundation for intelligent, agentive operations.
</ApproachCard>

<MediaSplit align="start">
  <div>
    <h3 className="text-2xl tracking-tight text-(--on-surface)">
      AI-powered staffing decisions in seconds
    </h3>
    <div className="mt-4 text-(--on-surface-muted) [&_p]:m-0">
      Candidate Insights delivers instant AI-generated summaries of strengths, risks, and fit
      for each opportunity. The AI analyzes skills, experience, performance, availability, and
      career interests — providing contextual recommendations that balance project needs with
      individual growth.
    </div>
  </div>
  <MediaImage
    src="/work/agileday/ai-powered-staffing.png"
    alt="Candidate insights panel"
    caption="Quick overview of pros, cons, and fit for each candidate"
  />
</MediaSplit>

<MediaSplit reverse align="start">
  <div>
    <h3 className="text-2xl tracking-tight text-(--on-surface)">
      Context-aware workflows that work with your data
    </h3>
    <div className="mt-4 text-(--on-surface-muted) [&_p]:m-0">
      AI agents intelligently process unstructured documents to understand business context,
      enabling workflows that augment decision-making across sales, delivery, and staffing.
      Data coherence across the platform ensures information flows seamlessly between teams,
      reducing manual overhead while improving decision quality.
    </div>
  </div>
  <MediaImage
    src="/work/agileday/context-aware-workflows.png"
    alt="Context-aware workflows"
    caption="Drag-and-drop RFPs, emails, or files to build project context"
  />
</MediaSplit>

<MediaSplit align="start">
  <div>
    <h3 className="text-2xl tracking-tight text-(--on-surface)">
      Personalized career development at scale
    </h3>
    <div className="mt-4 text-(--on-surface-muted) [&_p]:m-0">
      Growth Plans use AI to create personalized development paths, considering career
      aspirations, skill levels, organizational needs, and opportunities. Combined with
      automated CV generation that stays current with latest projects, managers can scale
      career development across the organization without manual overhead.
    </div>
  </div>
  <MediaImage
    src="/work/agileday/growth-plans.png"
    alt="AI-assisted growth plan creation"
    caption="Personalized development paths that respect organizational preferences"
  />
</MediaSplit>

## From software as a service to expert as a service

<Row cols={2}>
  <FeatureCard
    icon={<Sparkles className="size-5" aria-hidden />}
    title="Proactive intelligence"
    description="AI that actively surfaces insights, recommends actions, and identifies opportunities before users ask. The platform becomes a proactive expert, not just a record keeper."
  />
  <FeatureCard
    icon={<Brain className="size-5" aria-hidden />}
    title="Embedded expertise"
    description="Best practices from professional services experts encoded directly into the platform. Every user benefits from institutional knowledge that previously lived only in the heads of top performers."
  />
  <FeatureCard
    icon={<GitBranch className="size-5" aria-hidden />}
    title="Agentive workflows"
    description="AI agents that reason, plan, and execute multi-step workflows autonomously — handling complex tasks like opportunity enrichment and growth plan generation that previously required hours of manual work."
  />
  <FeatureCard
    icon={<Sliders className="size-5" aria-hidden />}
    title="AI controls"
    description="Tenant-level AI rules let organizations customize tone, naming conventions, and domain requirements to match their preferences and internal processes."
  />
</Row>

## Winning major clients through AI leadership

> "We were looking for a partner that shares our ambition and understands how AI is reshaping operations. Agileday stood out from the start."
>
> — Teemu Pesonen, VP of Operations, Siili Solutions ([source](https://www.agileday.com/blog/siili-solutions-selects-agiledays-ai-powered-psa-platform-after-global-search))

---

### Bringing AI to business intelligence that drives real decisions

URL: https://www.intentface.com/work/real-world-analytics

import { FeatureCard } from "@/components/case-study/feature-card";
import { ApproachCard, CaseIntro, IntroBlock } from "@/components/case-study/intro";
import { Row } from "@/components/ui/row";

<CaseIntro>
  <IntroBlock label="The client">
    Real World Analytics (RWA) is a data analytics company that empowers businesses in Pharmacy, Automotive, and Wholesale to make better decisions. Processing over 1.4 million automated reports yearly across thousands of locations, RWA turns complex, siloed data into real-time actionable insights. As generative AI began reshaping what's possible in data interaction, RWA saw an opportunity to fundamentally change how their clients access and act on insights.
  </IntroBlock>
  <IntroBlock label="The challenge">
    RWA's clients deal with vast amounts of data from multiple sources across complex industries. Making those insights truly accessible — not just visible, but intuitive and actionable — requires rethinking the user experience through an AI lens. RWA needed a strategic partner with deep generative AI and product expertise to help them evaluate the right technologies, prioritize what to build, and concept how agentic experiences could make their platform smarter.
  </IntroBlock>
</CaseIntro>

<ApproachCard>
  We serve as RWA's strategic AI partner, helping them navigate what generative AI means for business intelligence. Together we evaluate technologies, review development approaches, concept agentic experiences, and shape their AI roadmap — ensuring RWA invests in the capabilities that will make the biggest difference for their clients across all sectors.
</ApproachCard>

## What we deliver together

<Row cols={3}>
  <FeatureCard
    title="Technology evaluation"
    description="Hands-on assessment of AI tools, models, and platforms — helping RWA cut through the hype and choose the right technologies for their data-intensive platform."
  />
  <FeatureCard
    title="Solution concepting"
    description="Concepting agentic experiences and AI-powered interactions that make complex business data across Pharmacy, Automotive, and Wholesale genuinely accessible and actionable."
  />
  <FeatureCard
    title="Strategic guidance"
    description="Ongoing advisory on AI roadmap priorities, build-vs-buy decisions, and development approaches that help RWA move fast without losing focus."
  />
</Row>

---

## Stream

### McDonald's Magic Stories wins a Webby and Grand One

URL: https://www.intentface.com/stream/mcdonalds-magic-stories-grand-one-webby

Magic Stories, a generative storytelling experience we built for McDonald's, won two awards this spring: the **Webby People's Voice Award** and **Grand One**, Finland's largest digital industry competition, where it took Best Content Marketing.

## A story that builds with every visit

Magic Stories lives inside the Family Mode of the McDonald's app. Each visit becomes a new chapter in a personalized, animated story that casts the family as the heroes. Kids and parents create their own avatars, those avatars go on adventures, and the story reacts to the choices they make along the way, so no two families ever get the same tale and every visit unlocks the next one.

## Building an AI composer

The hard part was the technical implementation: balancing genuine AI creative capability against the safety guarantees a family brand requires. We built an AI composer that orchestrates multiple elements together, including language models, custom-trained image generation, the user-created avatars, and the story logic, into a single experience that produces a fresh, personalized, on-brand story every time, reliably and autonomously.

## Two awards, weeks apart

That combination of creative range and dependable safety is what landed the recognition. The Webby People's Voice Award is decided by public vote and Grand One by an industry jury, and within weeks of each other an international audience and a Finnish jury picked out the same project. You can see the work and the full credits on the [Webby winners page](https://winners.webbyawards.com/2026/advertising-media-pr/branded-content/food-beverage/373033/mcdonalds-magic-stories), the [Grand One entry](https://grandone.fi/kilpailutyo/?entry=mcdonald-s-magic-stories), and the [campaign case site](https://mcd-casesite.vercel.app/).

---

### What is Context Engineering

URL: https://www.intentface.com/stream/what-is-context-engineering

import TextCompletionDemo from "@/components/interactive/article/text-completion-demo";
import TokenPredictionDemo from "@/components/interactive/article/token-prediction-demo";
import StructuredCompletionDemo from "@/components/interactive/article/structured-completion-demo";
import ToolUseDemo from "@/components/interactive/article/tool-use-demo";
import RagDemo from "@/components/interactive/article/rag-demo";

Large language models are text completion engines at their core. They continue from whatever context you give them, predicting the most likely next tokens. Context is everything the model sees before it answers: system prompts, chat history, tool results, documents, UI metadata.

**Context engineering is designing everything the model sees before it generates a response.** In other words, effective AI implementations focus on building high-quality context that leads to high-quality outputs.

## Text in, text out

The first GPT models were simple text-in text-out systems. You gave them a text and the model generated a continuation of that text.

<TextCompletionDemo
  systemPrompt="You are a poet that creates short poems."
  userText="Write a poem about autumn."
  completedText="The leaves fall gently to the ground,
Painting the earth in hues profound.
The crisp air whispers through the trees,
A symphony of nature's ease."
/>

In the early days, people built clever prompt templates to guide the model's output. But fundamentally, you tried to build a chain of text that led the model to produce the desired result. This principle still holds true with modern LLMs.

LLMs are probabilistic text generators at their core that predict the next token based on the preceding context. It means each token or word you give as input or in system prompt can affect what comes next.

<span className="text-muted-foreground">
  Note: below is a simplified demo of how token prediction works. In real life
  tokens are pieces of words, punctuation, or spaces, but here we use whole
  words for clarity. [Watch this](https://www.youtube.com/watch?v=wjZofJX0v4M)
  for a more in-depth dive in transformers.
</span>

<TokenPredictionDemo
  examples={[
    {
      input: 'I love to eat',
      steps: [
        {
          predictions: [
            { token: 'pizza', probability: 0.28 },
            { token: 'chocolate', probability: 0.22 },
            { token: 'healthy', probability: 0.2 },
            { token: 'pasta', probability: 0.18 },
            { token: 'vegetables', probability: 0.12 },
          ],
          selected: 'pizza',
        },
        {
          predictions: [
            { token: 'with', probability: 0.35 },
            { token: 'and', probability: 0.25 },
            { token: 'for', probability: 0.2 },
            { token: 'on', probability: 0.12 },
            { token: 'at', probability: 0.08 },
          ],
          selected: 'with',
        },
        {
          predictions: [
            { token: 'friends', probability: 0.42 },
            { token: 'my', probability: 0.28 },
            { token: 'family', probability: 0.18 },
            { token: 'extra', probability: 0.07 },
            { token: 'cheese', probability: 0.05 },
          ],
          selected: 'friends',
        },
      ],
    },
    {
      input: 'I love to code',
      steps: [
        {
          predictions: [
            { token: 'in', probability: 0.35 },
            { token: 'Python', probability: 0.25 },
            { token: 'with', probability: 0.18 },
            { token: 'and', probability: 0.12 },
            { token: 'every', probability: 0.1 },
          ],
          selected: 'in',
        },
        {
          predictions: [
            { token: 'Python', probability: 0.38 },
            { token: 'JavaScript', probability: 0.22 },
            { token: 'TypeScript', probability: 0.18 },
            { token: 'React', probability: 0.12 },
            { token: 'my', probability: 0.1 },
          ],
          selected: 'Python',
        },
        {
          predictions: [
            { token: 'because', probability: 0.32 },
            { token: 'and', probability: 0.28 },
            { token: 'for', probability: 0.18 },
            { token: 'every', probability: 0.12 },
            { token: 'with', probability: 0.1 },
          ],
          selected: 'because',
        },
      ],
    },
    {
      input: 'I love to travel',
      steps: [
        {
          predictions: [
            { token: 'to', probability: 0.42 },
            { token: 'around', probability: 0.28 },
            { token: 'and', probability: 0.15 },
            { token: 'with', probability: 0.1 },
            { token: 'during', probability: 0.05 },
          ],
          selected: 'to',
        },
        {
          predictions: [
            { token: 'new', probability: 0.35 },
            { token: 'different', probability: 0.28 },
            { token: 'Europe', probability: 0.15 },
            { token: 'Asia', probability: 0.12 },
            { token: 'places', probability: 0.1 },
          ],
          selected: 'new',
        },
        {
          predictions: [
            { token: 'places', probability: 0.48 },
            { token: 'countries', probability: 0.32 },
            { token: 'cities', probability: 0.12 },
            { token: 'destinations', probability: 0.05 },
            { token: 'cultures', probability: 0.03 },
          ],
          selected: 'places',
        },
      ],
    },
  ]}
/>

## How chat models work

Most LLMs are trained to understand [chat templates](https://huggingface.co/docs/transformers/v4.57.1/chat_templating) that use system tokens like `<|system|>`, `<|user|>`, `<|assistant|>`, `<|tool|>`, `</s>`, which create better structure for multi-turn chats, tool use, reasoning etc.

The key point: under the hood it's still text-in text-out. We still want to build a chain of context that leads the model to produce the desired output.

<StructuredCompletionDemo
  messages={[
    {
      role: 'system',
      content: 'You are a helpful assistant that writes poetry.',
    },
    {
      role: 'user',
      content: 'Write a poem about autumn.',
    },
    {
      role: 'assistant',
      content:
        "The leaves fall gently to the ground,\nPainting the earth in hues profound.\nThe crisp air whispers through the trees,\nA symphony of nature's ease.",
    },
  ]}
/>

## Tools, MCP, and the application layer

Tool use (function calling) is the big shift that made LLMs far more useful beyond raw text generation. When an LLM uses tools like web search, code execution, APIs, it is not directly browsing the web or calling APIs.

Instead, the model generates text commands that the application layer interprets, executes and feeds back into the model as more context.

<div className="my-8 grid grid-cols-1 gap-2 not-prose md:grid-cols-4">
  <div className="relative p-4 rounded-lg bg-card flex max-lg:items-center lg:flex-col gap-4">
    <div className="w-8 h-8 shrink-0 rounded-full bg-foreground/50 text-background flex items-center justify-center text-sm font-bold">
      1
    </div>
    <div className="text-sm">
      The model generates a text command that matches a schema you define.
    </div> 
  </div>

{' '}

<div className="relative p-4 rounded-lg bg-card flex max-lg:items-center lg:flex-col gap-4">
  <div className="w-8 h-8 shrink-0 rounded-full bg-foreground/50 text-background flex items-center justify-center text-sm font-bold">
    2
  </div>
  <div className="text-sm">
    Your application parses that command, runs the real tool / API request.
  </div>
</div>

{' '}

<div className="relative p-4 rounded-lg bg-card flex max-lg:items-center lg:flex-col gap-4">
  <div className="w-8 h-8 shrink-0 rounded-full bg-foreground/50 text-background flex items-center justify-center text-sm font-bold">
    3
  </div>
  <div className="text-sm">
    You feed the result back into the model as more context.
  </div>
</div>

  <div className="relative p-4 rounded-lg bg-card max-lg:items-center flex lg:flex-col gap-4">
    <div className="w-8 h-8 shrink-0 rounded-full bg-foreground/50 text-background flex items-center justify-center text-sm font-bold">
      4
    </div>
    <div className="text-sm">
      The model continues the completion with this new information.
    </div> 
  </div>
</div>

**Tools**: These are structured definitions of what external capabilities the model can invoke. Each tool has a name, description, input schema, and output schema. An LLM might have multiple tools available, like "web_search", "get_current_temperature", or "execute_code" and choose which one to call based on the user's request.

**Application Layer**: This is the app where you call the LLM API, manage context, parse model outputs, execute tool calls, and handle the overall workflow. The application layer interprets the model's text commands, runs the actual tools or APIs, and feeds results back into the model. This is the part you are most likely building.

**Model Context Protocol (MCP)** turns application APIs into tool definitions. You can think of [MCP](https://modelcontextprotocol.io/docs/getting-started/intro) as the UI of apps for LLMs: instructions that let models reliably talk to external systems. For example a project management app might expose tools like "create_task", "list_tasks", and "update_task_status" with clear schemas the LLM can use. This is also how you build the upcoming [ChatGPT Apps](https://www.youtube.com/watch?v=2C4Cs6503gw) that let's ChatGPT use third party apps directly from the chat interface.

<ToolUseDemo
  messages={[
    {
      role: 'system',
      content: 'You are a helpful assistant with access to web search.',
    },
    {
      role: 'user',
      content: 'What is the weather in Helsinki today?',
    },
    {
      role: 'assistant',
      content: '{"tool": "web_search", "query": "weather Helsinki today"}',
    },
    {
      role: 'tool',
      content:
        '{"result": "Current weather in Helsinki: 2°C, light snow, wind 15 km/h"}',
    },
    {
      role: 'assistant',
      content:
        'The current weather in Helsinki is 2°C with light snow and winds at 15 km/h.',
    },
  ]}
/>

---

## So again, what is Context Engineering?

It's about assembling the right information, tools, and constraints at the right moment.
Every time the model runs, you're building a temporary workspace that includes:

- **System prompt**: role, rules, examples
- **User message**: the current request
- **Chat history**: recent conversation
- **Retrieved information**: relevant documents or data
- **Available tools**: what actions the model can take
- **Output format**: schemas guiding the response structure

> Building powerful and reliable AI Agents is becoming less about finding a magic prompt or model updates. It is about the engineering of context and providing the right information and tools, in the right format, at the right time. It's a cross-functional challenge that involves understanding your business use case, defining your outputs, and structuring all the necessary information so that an LLM can "accomplish the task."
>
> — [Phil Schmid / "The New Skill in AI is Not Prompting, It's Context Engineering"](https://www.philschmid.de/context-engineering)


Most AI failures aren't model failures. They're context failures. The model didn't have the right information, constraints, or tools available when it needed them.

**Context windows are limited.** It means the maximum number of tokens a model can process at once. Each time you send a message to a chat model, the entire context (system prompt, chat history, tool results, documents) is included and counts against that limit.

**Even large context windows suffer from "attention dilution"**, meaning that if you pack in too much information, the model loses focus. **Good context engineering means including only what's needed**, using compressed summaries over raw data, and retrieving information just-in-time rather than loading everything upfront.

## High-quality context leads into high-quality output

LLMs don't remember, don't learn on the fly, and don't run code by themselves. Every time you send data to an LLM, it's a fresh temporary workspace that requires all necessary information to be included in the context. Effective context engineering involves:

- **Selecting what goes into context**: Prompts, history, documents, tool results—everything the model needs to generate accurate responses.
- **Structuring it clearly**: Organize context so the model can follow the logic and produce coherent outputs.
- **Constraining outputs**: Use schemas and tools to guide the model toward producing reliable, structured results.

## On Retrieval Augmented Generation (RAG)

When you're working with large information sources like a knowledge base or documentation set, you can't include all the information in each request (because of the context window and well, costs). RAG initially became relevant to augment the model's original training data and to ground it's answers in this retrieved data.

Old RAG implementations retrieved context for every user query but these days most implementations are agentic: the model uses search as a tool and decides when it needs more information and what to search for.

<RagDemo />

The challenge is building an effective search system that finds relevant information across different query types. If your project relies heavily on knowledge retrieval, start by building a solid search infrastructure with AI agents as a primary consumer. AI agents can query data in multiple ways: keyword search, semantic search, filtered queries, or even executing code to compute results.

## AI implementations needs good user experience (UX)

**Consider a scenario:** you are using an AI assistant to get medical advice. The model provides an answer that seems plausible, but you have no idea where that information came from. Is it based on current medical guidelines, outdated information, or fabricated text?

Good AI UX builds trust through transparency and verifiability. LLMs can produce incorrect or misleading information even when functioning as intended, so design interfaces that help users verify outputs and recover from errors.

- **Be transparent**: show the process/context that lead to an answer.
- **Make it easy to verify citations**: ideally in-line, not just tiny footnote links that require reading a 20 page document.
- **Use friction wisely**: for example on critical actions, require user confirmation before execution.
- **Use streaming outputs** to let users see what is happening in real-time and being able to interrupt if something seems off.

Not everything needs to be a chat interface either. There are much to be explored in terms of intentfaces and different patterns of interaction that suit different use cases better than chat.

---

## How to build intuition about LLMs and context engineering

Getting hands-on experience is the best way to understand how LLMs work and how to design effective context. Here are some steps to get started:

- **Learn the basics**: Understand what structured outputs and tool calling are. They're the backbone of robust AI products.
  - If you have any development skills, you can try our basic [tool calling template](https://github.com/Intentface/tool-calling-template) to build a chatbot using [Vercel AI SDK](https://ai-sdk.dev). It's very bare bones but shows the core principles. We use it as an assignment in our recruitment process.
- **Learn context engineering**: Learn how to shape prompts, chain tools, and design flows that produce stable results. Start from guides like [Anthropic's context engineering article](https://www.anthropic.com/engineering/effective-context-engineering-for-ai-agents) or [OpenAI's prompt engineering guide](https://platform.openai.com/docs/guides/prompt-engineering). There's also [Google's prompt engineering guide](https://cloud.google.com/discover/what-is-prompt-engineering).
  - Nothing beats direct experience, so apply prompt engineering techniques in real projects.
  - You can also use LLMs to help you learn prompt engineering. For example, ask an LLM to critique and improve your prompts.
- **Try as many different GenAI products as you can**: Spot patterns in how they structure context and workflows. Direct experience builds intuition.
  - Try different chat apps like [ChatGPT](https://chat.openai.com/), [Claude](https://claude.ai/) and [Gemini](https://gemini.google.com/). Try to solve something for yourself and see how they manage web search, memory, deep research, and tool use in general.
  - AI app builders like [Lovable](https://lovable.dev/), [V0](https://v0.dev/), [Figma Make](https://www.figma.com/make/).
  - If you are code-curious or already have development chops: look at [Github Copilot](https://github.com/features/copilot), [Claude Code](https://www.claude.com/product/claude-code) and [ChatGPT Codex](https://chatgpt.com/codex).

For more in-depth LLM insights see [Andrej Karpathy's lectures](https://youtube.com/@andrejkarpathy) or watch [3Blue1Brown's Transformers, the tech behind LLMs](https://youtu.be/wjZofJX0v4M). You don't need to understand all the math behind LLMs, but having a mental model of how they work under the hood helps you design better context and prompts.

Over time you'll see that **everything is context building**: your prompt, the app's hidden prompts, the tools it calls, and the data you feed it. Use that understanding to form your own opinion, rather than echoing hype or skepticism. For more practical insights on building AI products, [Simon Willison's writing](https://simonwillison.net/) offers excellent real-world perspectives.

---

## To sum it up

**Context makes or breaks the AI implementations, and you only really understand how context works (prompts, structures, tools) by actually using and building with them.**

The gap between reading about AI and working with it directly is enormous. Theory gives you vocabulary, but practice gives you intuition about what works, what fails, and why. You also get a sense of different models' strengths and weaknesses, and how to design around those. So start experimenting today. Build small things. Break them. Fix them. Build for yourself. Solve a problem you have.

Build your own context.

---

### Agents, Workflows, and Tools: Navigating Through the Hype

URL: https://www.intentface.com/stream/agents-workflows-and-tools-navigating-through-the-hype

## The Core Distinction That Matters
> Workflows are recipes. Agents are chefs.

We think of workflows as deterministic, graph-based execution paths versus agents as goal-oriented systems with decision-making capabilities. But as you will see, the boundaries blur quickly.

Here's an analogy that might help: Think of workflows like a recipe and agents like a chef.

**A recipe (workflow) has:**
- Fixed steps in sequence
- Predictable outputs given the same inputs
- No decision-making beyond simple conditionals ("if dough is too dry, add water")
- Clear start and end points

**A chef (agent) has:**
- A goal ("make dinner for 6 people")
- Access to tools (knives, ovens, recipes)
- Ability to make decisions ("the market is out of salmon, I'll use chicken instead")
- Can invoke sub-tasks including following recipes

But here's where it gets interesting - and mirrors your observation about recursive complexity:
- Tools as Workflows: A chef might use a bread machine (a tool that executes a workflow). The chef decides when to use it, but the machine follows its program.
- Workflows with Agent Steps: A restaurant might have a workflow where "Step 3: Sous chef prepares sauce" - embedding an agent within a deterministic flow.
- Agents Using Agents: A head chef might delegate to sous chefs (other agents), who might delegate further.

The key insight is that these aren't really different categories but different levels of autonomy on a spectrum:

```mermaid
Fixed Script → Parameterized Workflow → Conditional Workflow → Goal-Directed Agent → Autonomous Agent
```

## Tool Calling: Where the Magic Actually Happens

Here's the key insight: **the agentic behavior you're seeing doesn't come from agent frameworks—it comes from the LLMs themselves.**

Modern LLMs like GPT, Claude, and Gemini have native tool-calling capabilities. When you see an "agent" that can search the web, analyze data, and write code, you're witnessing the LLM's inherent ability to reason about and orchestrate tool usage.

**Automatic Tool Chaining**
The real magic happens when LLMs chain tools based on previous results. For "I need to book a flight to the cheapest European city with good weather next week," the LLM will:

1. Search cheapest European flights → Find Budapest, Prague, Lisbon
2. Check weather for each → Budapest (rainy), Prague (cloudy), Lisbon (sunny)
3. Focus on Lisbon based on weather
4. Search specific Lisbon flights
5. Present recommendation combining price and weather data

This is genuine agentic behavior: goal-oriented reasoning, dynamic planning, and adaptive execution. But it's the LLM's native capability, not framework innovation.

**What Frameworks Actually Provide**
Most "agent frameworks" essentially offer:

- Tool Integration: Simplified APIs for connecting business systems
- Conversation/State/History Management: Handling multi-turn interactions and context
- Error Handling: Managing failed operations and retries
- UI Components: Pre-built chat interfaces and dashboards

**The intelligence isn't in the framework—it's in the LLM's ability to reason about tool usage.** Understanding this has important implications for your build vs. buy decisions and vendor independence.

### Agents as Abstraction Layers
Ultimately, agents are abstraction layers that package LLM reasoning, tool orchestration, and workflow management into reusable components—valuable for operational consistency, but the core intelligence still comes from the underlying LLM.

### The Value of Prompt Transparency
Many frameworks provide a "black box" approach—you define roles, goals, and tools, but the actual prompts sent to the LLM are hidden. While this offers excellent prompt engineering out of the box, you lose transparency and it becomes difficult to reverse engineer what actually got sent to the model when debugging or optimizing performance.

For example, in OpenAI's Agents SDK and Google's ADK, the popular "handoff" feature that routes conversations between specialist agents is simply a tool call with built-in system prompts that you can figure out only by reading the code.

By treating prompts as first-class code (inspired by the [12-Factor](https://github.com/humanlayer/12-factor-agents) Agents methodology), we maintain full control over what's sent to the LLM and can optimize precisely for our specific use cases.

### Summary: Navigating Through the Hype
The AI industry is full of marketing buzzwords, but understanding the fundamentals helps you make better strategic decisions:

**The Reality Check:** Whether you call it an agent, workflow, or tool—the intelligence comes from the LLM itself. Modern LLMs like GPT-4 and Claude have native tool-calling capabilities that enable sophisticated, goal-oriented behavior without any framework magic.

**The Spectrum**: Rather than distinct categories, think of a spectrum from fixed scripts to autonomous agents. Most practical AI applications combine deterministic workflows with LLM decision-making at key points.

**The Trade-off**: Agent frameworks offer operational convenience but reduce transparency. The choice isn't whether frameworks are good or bad—it's whether their benefits outweigh the loss of control for your specific use case.

**The Strategic Insight**: Your competitive advantage doesn't come from the agent wrapper—it comes from your domain expertise, proprietary data, and the quality of your prompts and tools. The LLM provides the intelligence; everything else is implementation detail.

Understanding these fundamentals helps you evaluate vendors more effectively, make better build-vs-buy decisions, and avoid paying enterprise premiums for capabilities you could integrate directly.

---

### Thoughts on the Model Context Protocol Part 2

URL: https://www.intentface.com/stream/thoughts-on-the-model-context-protocol-part-2

{' '}


# Thoughts about MCP Part 2

Since Anthropic first open-sourced the Model Context Protocol (MCP) in late 2024, the community has raised concerns about its transport, security, metadata and adoption. The **2025-03-26 MCP spec update** addresses most of these—but real-world implementations and host support remain in flux. Below is a concise, critical rundown.

---

## 1. Adoption Is No Longer in Doubt

**Then:** Would OpenAI or Google ever back MCP?  
**Now:** OpenAI’s Agents SDK, ChatGPT Desktop and API support MCP[^1], and Google’s Claude team has signaled compatibility[^2].

> **Note:** It’s still hard to know exactly which host apps fully implement the new spec changes; we expect major clients to publish detailed support matrices soon.

---

## 2. Transport Is Cloud-Friendly

**Then:** MCP’s HTTP + SSE transport forced stateful, long-lived streams—hard to scale on serverless platforms.  
**Now:** A **Streamable HTTP** transport lets each request stand alone or upgrade to a short-lived stream, making MCP servers deployable as standard HTTP functions on AWS Lambda, Azure Functions, etc., without wrestling with SSE.

---

## 3. Built-In Security via OAuth 2.1

**Then:** No standard auth—each server rolled its own, risking inconsistent or weak security.  
**Now:** The spec mandates an **OAuth 2.1** flow for remote MCP servers, so users explicitly grant scopes and tokens before any tool call.

> **Reality check:** As of May 2025, few production implementations exist—how OAuth will look in practice will become clear once servers and host clients roll out support.  
> **Local stdio plugins** remain outside this flow, so they still rely on OS-level safeguards.

---

## 4. Tool Safety Metadata

**Then:** Tools lacked formal labels—no way to flag “read-only” vs. “destructive,” risking accidental data loss.  
**Now:** Every tool can declare metadata such as `readOnly` or `destructive` in its description (spec changelog PR [#185](https://github.com/microsoft/model-context-protocol/pull/185)). Hosts can warn users or agents before running high-impact actions.

---

## 5. Easier Setup & Deployment

**Then:** MCP servers were mainly local subprocesses; remote deployment was tricky.  
**Now:** Streamable HTTP plus official SDKs (Python, JavaScript, Java, .NET, Swift, etc.) and reference servers (e.g. Playwright) make both local and cloud-hosted MCP servers straightforward to launch. One-click demos on AWS Lambda abound.

---

**Bottom line:** The **2025-03-26 MCP spec** has plugged most major gaps—transport, auth, metadata and adoption are all moving forward. Remaining work lies in proper implementation: securing local plugins, enforcing user consent, polishing UIs and tracking which hosts support the new features. MCP’s rapid evolution and heavyweight backing suggest it might become a sound investment for AI-tool interoperability.

[^1]: https://x.com/OpenAIDevs/status/1904957755829481737
[^2]: https://x.com/sundarpichai/status/1910082615975313788

---

### Thoughts on the Model Context Protocol

URL: https://www.intentface.com/stream/thoughts-on-the-model-context-protocol

<img src="/stream/thoughts-on-the-model-context-protocol/mcp-chart.png" className="max-w-full w-full" alt="Model Context Protocol architecture: a Host AI application contains an MCP Client that holds a 1:1 connection to an MCP Server, which exposes tools, files, and data sources to the language model." />

## Key Concepts: Host, Server, and Client

MCP is built around three main concepts:

### Host

The Host is an AI application that has implemented support for the protocol. For example, Claude Desktop was the first to support MCP. In contrast, ChatGPT does not currently support MCP, though time will tell if they eventually adopt it or develop their own standard.

### Server

The Server is what developers build to expose tools, files, or other capabilities for use by large language models (LLMs). If you’re developing custom features, you’re typically creating an MCP Server for existing applications to leverage.

### Client

The Client is the 1:1 connection with the server. Essentially, this is the component implemented by host applications (like those from Anthropic) that manages the dedicated connection to an MCP Server.

In most cases, unless you’re building your own chat client, you’re focused on developing custom MCP Servers for integration with existing hosts.

## MCP Server Overview

MCP provides SDKs for Python, TypeScript, Java, and Kotlin, making it straightforward to add custom capabilities. There are three main types of capabilities:

- Resources: Files or data that clients can read.
- Tools: Functions that can be called by LLMs.
- Prompts: Pre-written templates that help users accomplish specific tasks.

If you’re already familiar with LLM function calling, you’ll find that tool usage is quite intuitive.

Example: Adding a Weather Tool with the TypeScript SDK

Below is an example of how to add a custom weather tool using the TypeScript SDK:

```typescript

// Create an MCP server
const server = new McpServer({
  name: 'Demo',
  version: '1.0.0',
})

// Add a weather tool
server.tool(
  'get_weather',
  { city: z.string().describe('City you want the weather for') },
  async ({ city }) => {
    const res = await fetch(`https://some-weather-api.com/${city}`)
    const data = await res.json()
    return {
      content: [{ type: 'text', text: data.forecast }],
    }
  },
)

// Start receiving messages on stdin and sending messages on stdout
const transport = new StdioServerTransport()
await server.connect(transport)
```

For more details on resources and prompt templates, check out the Resources Documentation and the Prompts Documentation.

## How Does MCP Differ from Function Calling?

At first glance, you might wonder why MCP is needed when you can simply use function calling and prompt injection to add files or data to an LLM’s context. The key difference is that MCP is designed to integrate third-party capabilities into existing AI applications. If you’re building your own chat interface, you can handle context and function calling yourself, retaining full control.

However, if your application grows and users begin requesting additional features, supporting MCP allows third-party developers to add new functionalities to your application. For instance, imagine if Claude could seamlessly integrate your tools—for fetching sports scores or nearby bus schedules—without requiring you to build a new chat interface from scratch. That’s where an MCP Server comes in.

## Concerns and Areas for Improvement

There are a few points that could be improved:

### UI Control over Tool Calls

When you add custom tools to your MCP Server, you have no control over how tool calls are rendered in the host application’s UI. The host will display the tool calls in its own predetermined style.

### User Prompts for Tool Execution

Most applications prompt the user for permission before executing a tool. While this is a good safety measure, it would be beneficial if the MCP allowed you to specify the operation type:

- Read Operations: These could run automatically.
- Mutating Operations: These should continue to prompt the user for confirmation.

### Uncertain Future of the Standard

Since MCP is still new, it remains to be seen whether it will become the de facto standard. There’s also the possibility that other major players like OpenAI may develop their own protocols, leading to a fragmented ecosystem.

### Ease of Use and Deployment

Currently, installing MCP Servers on a host application isn’t very user-friendly for non-technical users. While this may improve in the future, it remains a barrier to adoption. Moreover, most MCP Servers are local at the moment, though development is underway to support remote MCP Servers.

### Statefulness Challenges and Compatibility Issues

The Model Context Protocol (MCP) has been critiqued for its reliance on stateful, long-lived connections between clients and servers. This design supports features like bidirectional notifications and server-initiated actions but poses challenges for serverless environments that favor short-lived, stateless interactions. Such environments often auto-scale and limit request durations, making MCP's statefulness less compatible with modern deployment practices.

Update: But this might change in near future, a [RFC](https://github.com/modelcontextprotocol/specification/discussions/102) (request for comments) was made that suggests that the HTTP+SSE transport should be replaced with “Streamable HTTP” transport. This would make it easier to host MCP servers in serverless enviroments due to its stateless nature.

### Lack of Built-in Authentication and Security Concerns

Additionally, MCP currently lacks built-in authentication and authorization mechanisms, leaving these responsibilities to individual implementations. This omission can lead to inconsistent security practices and complicate the integration process, as developers must devise custom solutions to safeguard interactions between clients and servers.

## What does this mean for SaaS-companies

If your SaaS provides valuable data or functionality that AI assistants or external tools might need, you should consider hosting an MCP server to expose controlled access. If your SaaS includes built-in AI features that require contextual data from external sources (e.g., pulling documents, CRM records, or logs), you should implement an MCP client to fetch that information.

You should build an MCP server when your product is a data source or a tool provider (e.g., project management platforms, databases, or ticketing systems) and external AI agents need structured access to your data. Conversely, use MCP client support if your SaaS product consumes external context (e.g., an AI-powered dashboard pulling insights from connected services). For AI-heavy SaaS products, both a host and client approach might be necessary—allowing bidirectional interactions where your AI features can both retrieve and serve data dynamically.

## Useful links

- [Model Context Protocol Documentation](https://modelcontextprotocol.io/introduction)
- [Awesome MCP Servers](https://github.com/punkpeye/awesome-mcp-servers)
- [Awesome MCP Clients](https://github.com/punkpeye/awesome-mcp-clients/)

---

### Synthetic Data in 2025: Revolutionizing GenAI Model Performance

URL: https://www.intentface.com/stream/synthetic-data-in-2025-revolutionizing-genai-model-performance

## Introduction

Synthetic data generation has advanced significantly, with larger language models now being leveraged for knowledge distillation to produce high-quality training examples. It enables the creation of domain-specific datasets that can be used to finetune smaller or specialised models while preserving accuracy, lowering computational costs, and reducing existing data requirements.

For instance, this approach enables efficient finetuning of GPT-4o, Llama etc. for specific use cases with just a few synthetic examples, or training specialized ModernBERT models for classification tasks within your agentic workflow \- achieving better performance on downstream tasks while requiring only a fraction of the computing resources. This is particularly valuable for high-throughput, latency-sensitive applications like LLM routing or real-time classification tasks, especially in agentic workflows where multiple models are used in sequence \- each round of model inference compounds the efficiency benefits and reduces overall latency.

---

 <div className="mb-12">
    ## Early Days of Data Generation Practices: Naive LLM API Querying

    <div className="space-y-10 pl-6 border-l-2 my-2">
      <div className="relative">
        <div className="absolute w-4 h-4 bg-border rounded-full -left-8 top-2"></div>
        <div className="ml-4">
        ### Model Collapse

        Generated samples often lacked diversity, with models falling into repetitive patterns even when prompted differently. This similarity between samples limited the training value of the synthetic datasets.
      </div>


    <div className="relative">
        <div className="absolute w-4 h-4 bg-border rounded-full -left-8 top-2"></div>
        <div className="ml-4">
        ### Structured Output Issues

        Without proper constraints, output formatting was inconsistent across samples, making dataset integration difficult. What worked in one generation would fail in another, creating a constant need for format verification and correction.
      </div>
    </div>

    <div className="relative">
      <div className="absolute w-4 h-4 bg-border rounded-full -left-8 top-2"></div>
      <div className="ml-4">
        ### Reliability Problems

        Large-scale generation jobs were particularly vulnerable to:

        - API timeouts and rate limiting
        - Network connection interruptions
        - Inconsistent response formats
        - Incomplete generations

        These issues often meant paying multiple times for the same data as jobs failed mid-way through hundreds of generations.
      </div>
    </div>

</div>
  </div>
</div>

---

 <div className="mb-12">
    ## The Path to Maturity: From Quick Fixes to Robust Tools

    <div className="space-y-10 pl-6 border-l-2 my-8">
      <div className="relative">
        <div className="absolute w-4 h-4 bg-border rounded-full -left-8 top-2"></div>
        <div className="ml-4">
          ### Custom Scripts Evolution

          Teams developed increasingly sophisticated solutions:

          - Caching mechanisms to prevent redundant API calls and preserve successful generations
          - Smart prompting systems that:
            - Track and avoid duplicate examples
            - Break down complex queries into manageable chunks
            - Enforce parameter ranges for greater control
            - Post-processing pipelines for consistent data cleaning and validation
        </div>
      </div>

      <div className="relative">
        <div className="absolute w-4 h-4 bg-border rounded-full -left-8 top-2"></div>
        <div className="ml-4">
          ### Emergence of Specialized Libraries

          Tools like Instructor ([python.useinstructor.com](http://python.useinstructor.com)) emerged to provide:

          - Structured data generation
          - Type validation
          - Automated error handling
          - Built-in best practices for synthetic data creation
        </div>
      </div>

      <div className="relative">
        <div className="absolute w-4 h-4 bg-border rounded-full -left-8 top-2"></div>
        <div className="ml-4">
          ### Modern Tooling Platforms

          Advanced platforms like [Curator](https://github.com/bespokelabsai/curator/) by Bespoke Labs & [Distilabel](https://distilabel.argilla.io/latest/) by Argilla now offer:

          - End-to-end data generation pipelines
          - Quality control mechanisms
          - Scalable infrastructure
          - Integrated monitoring and validation
        </div>
      </div>
    </div>

  </div>

---

## Building Synthetic Datasets: A Practical Example

We believe that intent recognition is a fundamental component of smart, AI-powered user experiences. That’s why we’re showcasing its potential through synthetic data generation. You can explore a minimal, straightforward example on [Google Colab](https://colab.research.google.com/drive/1xyWggGjK-qy9kdTvAA_4lVAr52uLKX5s?usp=sharing), which demonstrates how synthetic data can be generated for intent recognition.

Tools and libraries make things easier by obfuscating some parts of the execution, but at the same time, they may make it harder to understand what happens behind the scenes. For that reason, we wanted to create the simplest and cleanest example possible, making it accessible even to those with less experience in the synthetic data space.

### In a nutshell, in this code:

1. We install dependencies, [instructor](https://github.com/instructor-ai/instructor) for structured generation, openai to be used as a client for generation, and some other helpers
2. Define the intents or labels we want to create queries for
3. Use Pydantic class to define our output structure
4. Create generate_queries function which takes in intent (str) and outputs 20 queries for intent, also define generate_dataset function which takes list of intents and generates queries for each and outputs list of dicts which contains query, text and some metadata
5. We turn our raw generated dataset into Huggingface Dataset and push it to Huggingface

Output dataset can be found [here](https://huggingface.co/datasets/intentface/intent_recognition)

We challenge you to replicate this using [Curator](https://github.com/bespokelabsai/curator/) or [Distilabel](https://distilabel.argilla.io/latest/) and let us know which one you preferred and why.

---

## Looking Forward: The Promise of Small Language Models

**There seems to be a trend emerging: the shift toward smaller, more efficient and specialized models.** We believe the future lies in using LLM generated data to train smaller focused models that can be deployed efficiently at scale (or even locally).

**In our next article, we'll explore how organizations are successfully replacing large, general-purpose models with smaller, specialized ones trained on synthetic data.** We'll examine real-world cases where this approach has led to significant improvements in both performance and operational efficiency.

**Have you experimented with synthetic data or small language models in your work?** We'd love to hear about your experiences. Share your insights in the comments below or join our community discussion about the future of AI model development.

## Appendix: Can I Use Commercial Models for Synthetic Data?

In short, if you’re using a commercial LLM like Claude, be aware that while you generally own the text it generates, the Terms of Service often prohibit using that output to build a competing language model. Please consult your company's legal team to avoid potential pitfalls. It’s also worth considering an open-source LLM with a more permissive license that explicitly allows you to reuse outputs for training. It’s always better to play by the rules than to find yourself on the wrong side of a TOS.

---

## Further Reading

For a deeper dive into these topics, check out these excellent resources:

1. ["Fine-tune classifier with ModernBERT in 2025"](https://www.philschmid.de/fine-tune-modern-bert-in-2025) \- Comprehensive guide on utilizing ModernBERT for classification tasks
2. ["Finally, a replacement for BERT: Introducing ModernBERT"](https://simonwillison.net/2024/Dec/24/modernbert/) \- Simon Willison's detailed exploration of ModernBERT
3. ["Fine-tune ModernBERT for RAG with Synthetic Data"](https://huggingface.co/blog/sdiazlor/fine-tune-modernbert-for-rag-with-synthetic-data) \- HuggingFace guide on combining RAG and synthetic data
4. ["Synthetic data & Smol models in 2024"](https://docs.google.com/presentation/d/137gGyMRhoKQnKRbAWkkUcwwuJH9Gdwons9U6gv0X0is/edit#slide=id.p11) \- Comprehensive presentation on the evolution of synthetic data and small models
5. ["Synthetic Data Generation with Instructor"](https://python.useinstructor.com/tutorials/7-synthetic-data-generation/) \- Tutorial on using Instructor library for structured synthetic data generation
6. ["Distilabel: Advanced Data Generation Guide"](https://distilabel.argilla.io/latest/sections/how_to_guides/#advanced) \- Detailed guide on scalable data generation with Distilabel

---

### Founder Conversations: A Week of LLM Insights in the Bay Area

URL: https://www.intentface.com/stream/founder-conversations-llm-insights-bay-area

## Introduction

We spent a week talking to founders and builders at Ray Summit, TechCrunch Disrupt, and various Bay Area GenAI meetups to understand the challenges they face when building value-providing LLM-based apps.

---

## Overview

- **RAG is omnipresent.** Retrieval Augmented Generation is the current trend everyone is working on. While it addresses many challenges of deploying LLMs in production, it introduces several others. We'll delve deeper into these later in this post.
- **Fine-tuned smaller models are making an impact.** In certain use cases, a fine-tuned LLama 7B model can outperform GPT-4 at a fraction of the cost.
- The term **"orchestration" seems to be largely replacing "chaining."** As LLM apps become more intricate, orchestration is a challenge that development teams are grappling with.
- Another challenge is **evaluating LLM performance, or "evals"**, which involves determining if your chain/agent is producing accurate answers, or whether the changes you implement improve or degrade the system.
- The essence of **RAG-based system performance lies in chunking strategies** and the subsequent vectorization of data chunks. If the contextual data you retrieve to aid your LLM in answering questions is inaccurate or of poor quality, your LLM will not respond correctly.
- **If the retrieved context is correct, it works.** Open-source LLMs (like Llama 2 models) and Proprietary models (like GPT-3 and GPT-4 models) seem to perform almost equally well at forming answers.
- **Anyscale released reasonably cheap [endpoints](https://app.endpoints.anyscale.com/) for Llama models.** They will add fine-tuning endpoints later this year. Switching from OpenAI models is easy since the API is almost 1-to-1 match with OpenAI API.

---

## Ray Summit 2023 — Highlights

### John Schulman, Co-founder, OpenAI

_Ray Summit Day 1 Keynote_
[Watch the keynote](https://youtu.be/r-NYSeAXCko?t=1789)

Paraphrasing John regarding whether they were surprised by ChatGPT's success: "We were very surprised. We had friends and family using it for a few months beforehand. There were some enthusiastic users, particularly those using it for coding, but overall, the excitement was muted. Not all users kept returning to it. I believe that once it became widely accessible, users taught each other how to use it effectively. The social element was crucial."

&rarr; Sometimes testing with real users is not the whole truth, especially when it comes to new technology that might have use cases beyond the initial imagination.

### Goku Mohandas, ML & Product, Anyscale & Philipp Moritz, Co-founder and CTO, Anyscale

_Ray Summit Day 1 Keynote_
[Watch the keynote](https://youtu.be/r-NYSeAXCko?t=6287)

Discussing the development of a chat co-pilot for Ray documentation:

- The assistant employs a hybrid routing solution based on a fine-tuned LLama2-70B. However, it redirects some of the more intricate queries to OpenAI's GPT-4, merging cost efficiency with superior quality when required.
- To control or minimize hallucinations, they've implemented RAG and evaluations of queries. This in turn aids in routing queries between LLama2 and GPT-4.

### Albert Greenberg, VP of Engineering, Uber & Wei Kong, Engineering Management, Uber

_Ray Summit Day 2 Keynote_
[Watch the keynote](https://youtu.be/CwIvsmuGqk4?t=1067)

- Uber introduced an AI-powered coding assistant into their development tools, trained on their unique codebase, to enhance development speed and the user experience.
- Their AI-driven app testing tool, DragonCrawl, leverages generative AI to replace manual tests and improve app quality.
- Uber integrates both broad and task-specific LLMs in their AI toolkit.
- On Generative AI's impact, they noted: "GenerativeAI democratizes and benefits almost everyone in the company."
- They underscored Generative AI's primary roles in Creation, Summarization, Discovery, and Automation.

### M Waleed Kadous, Chief Scientist, Anyscale

_Open Source LLMs: Viable for Production or a Low-Quality Toy?_
[Read slides](https://www.slideshare.net/WaleedKadous/open-llms-viable-for-production-or-lowquality-toy)

- M Waleed Kadous of Anyscale discussed the distinctions between proprietary and open LLMs, their applications, and current gaps.
- Anyscale's RayAssistant uses both Llama 2 models and GPT-4, with fine-tuned Llama models directing requests to the most suitable model.
- Specialized fine-tuned models can outperform proprietary ones like GPT-3.5 or GPT-4.
- Solely using GPT-4 would have yearly costs of ~$35,000; smart use of open models reduces this to around $900 annually.
- Anyscale offers [endpoints](https://app.endpoints.anyscale.com/) for Llama 2 models at $1/M tokens and plans to release fine-tuning endpoints later this year.

---

## GenAI Collective Meetup — Highlights

We participated in the GenAI Collective meetup on September 18th in San Francisco. Werqwise co-working space was packed with people and the event was sold out. Meetup also had a few interesting product demos.

### Matt Huang, Knowbl & Ryan Reede, MovieBot

_Product demos_

- [Knowbl](https://knowbl.com), a platform that can process your knowledge base and then build on-site search, and agent assistant on top of it. Their copilot keeps the brand message in check by providing only pre-approved answers.
- [Moviebot](https://www.moviebot.io/), an application that lets you prompt a conversation between characters you have created with their editor, and then it uses a game engine to render a video from it.

### Sophie McNaught, Vouch Insurance

_Insuring GenAI Products_

- To drive the adoption of their genAI services, Microsoft and AWS already offer defense to users of their generative AI tools if they're sued for copyright infringement.
- However, there are many use cases that they don't cover.
- Insuring the inherent risks of using generative AI in products is emerging as an area of interest, and it's something founders should monitor closely.

---

### The HARG Truth: AI's Need for the Human Element

URL: https://www.intentface.com/stream/the-harg-truth-ais-need-to-human-element

## Introduction

In the evolving landscape of AI-powered systems, combining human intuition with machine efficiency can create robust and reliable solutions. The Human-Augmented Retrieval Generation (HARG) method builds upon the Retrieval Augmented Generation (RAG) model, integrating a crucial human touch to the pipeline.

To understand HARG, it's essential to first understand **how RAG operates:**

1. **Query:** For example, User asks a question
2. **Retrieval Step:** Question is parsed and relevant documents related to the question are retrieved
3. **Documents and original query:** Documents and the original prompt are fed to the language model
4. **Response:** Answer is generated based on the documents and original query

This is a distilled overview. Each step contains its own intricacies and nuances, but the basic framework is as outlined above.

While RAG boasts numerous promising applications, it sometimes falls short. There are instances where the retrieved documents might be similar to the query but not strictly relevant. For instance, if someone inquires about Manchester United's performance this season, and the system retrieves documents related to the seasons '74-'75, '78-'79, and '87-'88, the response would be imprecise. A human, upon reviewing, would likely notice this discrepancy and adjust the query accordingly (add the current year to it) or pick manually correct documents as context.

## Adding a human step

HARG is designed for knowledge-intensive tasks that not only rely on accurate retrieval of information but also human judgment to select the most appropriate context. Unlike RAG, which automatically concatenates retrieved documents as context, HARG proposes a step where a human reviews the suggestions made by the retrieval component. This ensures that the selected context is both relevant and appropriate, thereby further reducing the chances of “hallucination” or generation of incorrect or irrelevant information.

**Here’s how HARG operates:**

1. **Query:** For example, User asks a question
2. **Retrieval Step:** Just like RAG, HARG retrieves a set of relevant/supporting documents from a source (e.g., Wikipedia) based on the input.
3. **Human Selection Step:** Instead of automatically feeding the retrieved documents to the generator, a human expert reviews and selects the most pertinent context from the suggestions.
4. **Documents and original query:** Documents and the original prompt are fed to the language model
5. **Response:** Answer is generated based on the documents and original query

The inclusion of the human element in HARG serves a dual purpose: enhancing reliability by minimizing machine errors and ensuring the context aligns well with human intuition and understanding.

With the growing emphasis on human-in-the-loop AI systems, HARG bridges the best of both worlds, ensuring efficiency and relevance while maintaining the adaptability of retrieval-based generation models.

This HARG concept provides an additional layer of verification, ensuring more accurate and contextually appropriate responses.

## Optimal use-cases for HARG

HARG might not be the optimal solution for use cases where the user is purely searching for answers to questions. The user might not know which documents are relevant to the query. Prominent use cases for HARG lie in co-pilot-like applications, where the user is generating something, e.g., code or parts of legal documents. In these cases, the user usually has some knowledge of whether the retrieved documents are relevant and contain answers.

One use case would be a helper tool for a tech support operator. The operator might have a traditional chat UI where they have a conversation with users. While chatting with a user, a HARG-enabled agent might analyze the conversation, fetch relevant documents based on user information, questions, etc., and surface them on the UI for the Operator. The Operator, on the other hand, can pick and choose relevant documents and ask the Agent to generate possible answers to users' questions based on human-augmented context.

While doing this, all the generated question/answer pairs can be stored to later improve the agent itself, for example, by fine-tuning. The same logic would apply to numerous co-pilot-like applications.

---

### Intentface: Human-Centric Computing Through Intent-Driven Interactions

URL: https://www.intentface.com/stream/intentface-human-centric-computing

## Introduction

When you think about it, clicking dropdowns, filling input fields and browsing abstract representations of data feels kind of odd. It's not what we should spend our time learning and doing. These are all abstractions we've built out of necessity because computers haven't been able to translate our language and needs into actions. But that has now changed.

> Intentface as a word embodies our vision where technology understands us, not the other way around.

By leveraging advancements in natural language understanding, adaptive learning systems, and data contextuality, intentfaces can directly translate our spoken and unspoken needs into meaningful actions.

The essence of an intentface is to make technology more intuitive and user-centric by allowing users to express their needs most naturally—through language, context and actions.

We envision a future where technology is seamlessly integrated into our lives, becoming an invisible, user-friendly extension of ourselves. A future where we can focus on doing things that make us happier as humans instead of being glued to our screens.

## Examples of intentfaces

An intentface is a service that can be operated with natural language or contextual data, including your actions or voice. Early examples we've already implemented in our daily lives are services like ChatGPT, knowledge-base assistants, development co-pilots, image-, voice- and video-generation services where you can create content via prompts and voice-driven AI assistants like Siri and Alexa.

A common denominator for these is the ability to understand intent to a certain level and generate content or actions based on non-exact natural language. Instead of naming actions to do it, we can state the outcome we want.

## Change Will Not Happen Overnight

Traditional user interfaces will still overlap with intentfaces as a granular way to control software and apps. A fully screenless future is a compelling idea, but screens have their place, especially for tasks requiring focused attention, like viewing and browsing content and precision work.

AI assistants, co-pilots and chatbots are a great new way of interacting and navigating software and knowledge, but a chat-based user interface is not always the optimal solution. But when you start thinking software through intent-driven interactions, you can see many other ways of translating intent into actions.

While we can only partially eliminate traditional UIs, intentfaces can reduce the time we need to spend with them. An intentface-powered service can make it easier to start using any new service, understand new concepts and filter information for us more efficiently, among many other advantages.

## A significant change in human-computer interaction is happening

Phones with multitouch screens and faster mobile connections changed how we interact with technology by bringing a user interface to small devices, making it very convenient to use software on the go. This change also brought years of converting old software and building new mobile-native services. The paradigm shift didn't happen just because companies wanted to build mobile-driven services to use new technologies, but because the users started getting used to the convenience and demanded it.

We believe generative AI is enabling a similar significant paradigm shift with human-computer interaction, where companies need to start thinking about how they can build their generative AI native services and products to stay relevant. Again, it's not about the technology but the user experience and convenience it brings.

The revolution isn't only about making smarter technology but crafting technology that understands us better. And that's the future Intentface is building—one interaction at a time.

---

## Podcast — Building Agentic Experiences

### #4 Jaakko Hartikainen — No Waiting for Better Models

URL: https://www.intentface.com/podcast/04-jaakko-hartikainen-agileday

Jaakko Hartikainen built Agileday AI-native from its 2022 founding, then raised €6.4M on the bet that the models are already good enough and execution is the only thing left. He shares how he rebuilt company strategy in a week with agents iterating overnight, why legacy PSA incumbents are losing competitive evaluations, and how AI is breaking the time-and-materials business model.

The PSA software market is full of legacy platforms bolting AI onto decade-old code. Jaakko Hartikainen built Agileday AI-native from its 2022 founding, then raised €6.4M on the bet that the models are already good enough and execution is the only thing left.

Agileday started as a people-centric alternative to legacy ERPs for consulting firms. When generative AI arrived, Jaakko didn't retrofit — he accelerated. Today the product runs more than 10 agents, including one that reads an RFP and builds an optimal team in 60 seconds, and the company is winning competitive evaluations against global incumbents where AI is the deciding factor.

## What we cover

- **The internal AI transformation.** How Agileday reshaped its entire company strategy in a single week, iterating daily with a dedicated coder and agents running overnight, reviewed at 7am.
- **Automating operations.** Why MCP servers and autonomous agents are becoming a necessity, letting consultants respond to RFPs and build optimal teams in 60 seconds instead of hours.
- **Disrupting legacy giants.** Why incumbents weighed down by technical debt can't move fast enough, and how being AI-native from the data structure up wins evaluations.
- **The end of time-and-materials.** How AI is pushing consulting away from hourly billing toward outcome-based, fixed-price work.
- **An intelligence layer.** The vision for closed context loops, where the company's codified knowledge feeds the work and the executed work updates the context.

---

### #3 Henri Nordström — Betting the Company on Agents

URL: https://www.intentface.com/podcast/03-henri-nordstrom-jobilla

What started as a tech-enabled digital headhunting service is now a true SaaS platform powered by agents. Henri shares how Jobilla transitioned to an AI-first company during a tough market, why 75% of their code is now written by AI, and why he stepped down as CEO to focus entirely on the product's vision.

Jobilla hit a wall in 2023. Henri Nordström bet the entire company on AI and shipped an AI recruiter that revived their hyper-growth — customers went from 42 at year-end to 360 by April.

What started as a tech-enabled digital headhunting service is now a true SaaS platform powered by agents. Henri shares how Jobilla transitioned to an AI-first company during a tough market, why 75% of their code is now written by AI, and why he stepped down as CEO to focus entirely on the product's vision.

## What we cover

- **The tipping point.** How the tight market of 2022 forced Jobilla to abandon their existing software and invest millions into a brand new, AI-driven platform.
- **Codifying best practices.** How Jobilla trained their AI Recruiter on data from over 40,000 manual campaigns to automate candidate sourcing and targeted Meta advertising.
- **Human vs. machine.** The philosophy of "never send a human to do a machine's job," and why AI writing 75% of the codebase makes human software architects more valuable than ever.
- **From CEO to CPO.** Why Henri handed over the CEO reins to focus entirely on the AI transformation, taking a page from Steve Jobs's approach to visionary design.
- **The future of hiring.** Why the entire recruitment screening process should be automated, leaving humans to do what they do best: making the final call on the top few candidates.

---

### #2 Mikko Honkanen — When Your Users Are Agents, Not People

URL: https://www.intentface.com/podcast/02-mikko-honkanen-vainu

Mikko co-founded Vainu in 2014, bootstrapped it past 15M ARR, and built a proprietary data engine covering 50 million pages of Nordic business documents. Now he's watching the product shift from humans browsing a UI to agents pulling data through APIs and MCPs — the interface disappears, and the companies that move first with enterprises win.

What started as a bootstrapped sales prospecting tool has become a platform that ships AI agents digging through millions of pages of public filings for hidden buying signals. Mikko shares how Vainu got there, why Model Context Protocols changed his thinking on product, and what happens to B2B sales when the customer is an agent, not a person.

## What we cover

- **Bootstrapping a data giant.** The early days of Vainu — selling the first customers on nothing but Keynote slides, six months without a salary.
- **The AI aha moment.** How connecting proprietary databases to LLMs (and the arrival of MCP) shifted Mikko's view of what a product is.
- **A warning for founders.** Why executives, board members, and founders can't outsource AI to a committee — they have to get their hands on it themselves.
- **Vainu's agent family.** A look at the Research, Enrichment, and Discovery agents, and how they process 50M+ pages of public data.
- **Does SaaS survive AI?** Whether traditional SaaS moats hold up, and why proprietary data processing is becoming the durable competitive advantage.
- **From pull to push.** How interfaces are moving away from manual list-building toward systems that analyze behavior and surface the right leads automatically.
- **When agents become the buyers.** The frontier of B2B sales — what happens to trust-building when the initial screening is done by an AI agent on the prospect's side.

---

### #1 Tuomas Rinta — Building AI Agents for the Other 99%

URL: https://www.intentface.com/podcast/01-tuomas-rinta-luo

Tuomas spent over a decade in Silicon Valley tech leadership at Unity and Handshake. Now, with Luo, he's building an AI agent platform for knowledge workers who've never written a line of code. His take — the real bottleneck isn't the models, it's the experience.

Most AI discourse is built for engineers and power users. Tuomas Rinta is on a mission to bring agentic experiences to the other 99% — the everyday knowledge workers who see the hype but don't know where to start.

In this episode, Tuomas walks through Luo's philosophy on accessible AI: removing the empty-page problem, building trust through guardrails, and treating autonomous agents as an extension of your own workforce rather than a replacement for it.

## What we cover

- **From assistants to agents.** The critical transition in AI: moving from models that answer questions to agents that actually do the work without constant intervention.
- **Laziness as a virtue.** A 90s programming book that shaped Tuomas's philosophy: AI gives everyone the power to be lazy by automating the repetitive stuff and unlocking time for higher-value work.
- **Why agents need personas.** The psychology behind giving agents names and personalities (like Luo's sales agent, Roy Batty) — and how it makes a new technology feel natural.
- **The empty-page problem.** Why non-engineers struggle to build agents, and how Luo flips the script by having the AI interview the user to gather requirements and establish workflows.
- **Tool guards and the handbrake.** Tuomas's approach to safety: default-block, with human verification required for critical actions.
- **Hours worked by AI.** A new productivity metric for the era — stop measuring personal hours logged, start measuring the hours your agents work for you while you're away from the keyboard.

---

## Team

### CTO, Founder

URL: https://www.intentface.com/team/valtteri-karesto

Valtteri leads engineering at Intentface. He works on the systems side of agentic products — orchestration, retrieval, evals — and writes the bulk of the technical articles on intentface.com. Before Intentface he spent a decade shipping data and ML infrastructure in startups.

---

### CDO, Founder

URL: https://www.intentface.com/team/joni-juup

Joni runs design at Intentface. He's spent the last decade shaping product experiences in SaaS — first at Kollaprompt and adjacent startups, now applying the same craft to agentic interfaces. He writes here about human-centric computing and the interaction conventions LLMs need.

---

### Founder, Partnerships

URL: https://www.intentface.com/team/tuomas-vuori

Tuomas leads partnerships at Intentface — Salesforce, Google Cloud, and the broader ecosystem of platform and infrastructure relationships that shape how we ship to enterprise clients. He owns the conversations that turn a pilot into a programme.


{/* TODO needs Joni input — final bio copy */}

---

### Founding Investor & Advisor

URL: https://www.intentface.com/team/ville-tapani

Ville is a founding investor and advisor at Intentface. A Finnish technology entrepreneur and venture builder, he has founded and scaled multiple technology companies, and operates startups across industries through Nordic Venture Family, where he is founder and chairman. He brings a builder's view of what it takes to turn an early product bet into a company that lasts.

---

### CEO, Founder

URL: https://www.intentface.com/team/klaus-dahlen

Klaus is CEO and a founding engineer at Intentface. He sets the company's direction and stays close to the engineering — building, prototyping, and shipping alongside the team. Background in applied generative AI, with a long tail of full-stack work before that.

---

### Founder, GenAI Engineer

URL: https://www.intentface.com/team/lauri-junkkari

Lauri is a founding engineer at Intentface. He builds the core of our agentic implementations — model routing, tool use, custom retrieval pipelines — and partners closely with clients on the path from prototype to production. Background in full-stack engineering and applied machine learning.

---

### Chief Commercial Officer

URL: https://www.intentface.com/team/tapio-haaja

Tapio leads commercial at Intentface. He runs the conversations that take a generative-AI idea from a sketch on a whiteboard to a signed engagement, and stays involved through delivery to make sure what we ship matches what we sold.


{/* TODO needs Joni input — final bio copy */}

---

### GenAI Engineer

URL: https://www.intentface.com/team/aleksi-raatala

Aleksi is a GenAI engineer at Intentface. He ships the agentic features behind our client work — retrieval pipelines, evals, tool integrations — and treats every prototype as a chance to push the production envelope a little further.

---

### Design Engineer

URL: https://www.intentface.com/team/rasmus-viloma

Rasmus is a design engineer at Intentface — the kind who lives in the gap between a Figma file and a production component. He builds the interactive surfaces of our marketing site and client deliverables, and treats the demo as a first-class part of the design.

---

### GenAI Engineer

URL: https://www.intentface.com/team/joonatan-vanhala

Joonatan is a GenAI engineer at Intentface. He builds the agent loops, evals, and integration plumbing that turn client prototypes into production systems — and treats every shipped feature as a chance to tighten the gap between prompt and product.

---

## Partnerships

### Salesforce

URL: https://www.intentface.com/partnerships/salesforce

## What is Agentforce

Agentforce is Salesforce's AI agent platform. Unlike traditional chatbots, Agentforce agents can reason through complex tasks, take proactive actions, and adapt to new information mid-conversation. The Atlas Reasoning Engine lets them break down requests, plan multi-step work, and execute across systems with minimal human intervention.

## What we do together

Salesforce's Agent Builder makes simple agents easy. Shipping agentive solutions that move the business — and survive contact with production data — is a different skill. Intentface brings practical generative-AI experience from production engagements across healthcare, recruitment, B2B data, and PSA, focused on solutions that deliver measurable impact rather than technology theatre.

## How it works

Our standard engagement runs four phases. Each is short enough to commit to and concrete enough to evaluate.

### 1. Direction

A focused engagement to identify high-impact use cases, assess available data, and define success metrics for your Agentforce implementation. See [how we work](/services) for the full shape.

### 2. Rapid prototyping

Either a sandbox proof-of-concept or a build directly on your Salesforce data, depending on the risk profile. The goal is to validate the approach with the smallest credible artifact.

### 3. Solution development

Once the concept holds up, we develop a production-ready solution — appropriate integrations, real-world data handling, and the user experience considerations that determine whether it gets adopted.

### 4. Deployment and optimization

We support rollout, monitor performance, and iterate based on the feedback that only real users produce.

## Why this partnership

We've specialized in generative AI since the earliest GPT models. That gives us a different point of view from typical Salesforce implementation partners — we bring full-stack capability from backend integrations to AI UX, and we apply it to the use cases where Agentforce actually pays off, not the ones that look good in a demo.

[Get in touch](/contact) to explore how Agentforce can fit your operation.

---

### Google Cloud

URL: https://www.intentface.com/partnerships/google-cloud

## Why Google Cloud for GenAI

Google Cloud offers one of the most comprehensive AI platforms available — cutting-edge models, enterprise-grade infrastructure, and developer tools that hang together. Vertex AI, Gemini, vector search, and the rest of the Google ecosystem give us a strong foundation for building sophisticated generative-AI applications at scale.

## What we do together

The tools are powerful; the strategic choice of *what* to build is where most projects rise or fall. Intentface brings practical AI experience from production engagements across multiple industries, focused on solutions that deliver measurable business impact rather than technology for its own sake.

## What we deliver

- **Strategic implementation.** We identify the high-impact opportunities for GenAI in your organization and develop solutions that deliver measurable results using Google Cloud's AI platform.
- **Custom applications.** Tailored builds leveraging Vertex AI, Gemini, vector search, and the broader Google Cloud surface area to meet your specific business needs.
- **End-to-end delivery.** From concept and prototype to production deployment, monitoring, and continuous optimization — one team across the full lifecycle.

## Google Cloud GenAI capabilities we work with

- **Vertex AI & model deployment.** Deploying and fine-tuning models — Gemini and beyond — with enterprise-grade scalability and performance.
- **Retrieval over enterprise data.** Vector search and grounded generation tuned to the customer's own corpus.
- **Agentic application infrastructure.** Tool-using agents wired to Google Cloud services and the customer's own APIs.
- **Operational rigour.** Logging, evaluation, and rollout patterns that translate prototype success into production stability.

## Working with us

Our typical engagement starts with a short direction phase to map the opportunities and align on what to build first — see [how we work](/services). From there, the path to a production-grade deployment on Google Cloud is short, because the same team that designed the concept builds it.

[Get in touch](/contact) to scope your next GenAI project on Google Cloud.

---
