Interfaze

logo

Beta

pricing

help

docs

blog

sign in

Ask Box: Turn Your Box Account Into a Company Brain

copy markdown

A company brain is a single source of memory of everything your company has written down, recorded or stored, that anyone on the team can ask questions against, use as context for agents, or complete a task with.

Most of that data is unstructured and all over the place in different formats and folders.

We found that most companies already have their data in cloud storage like Box. So we built a layer on top of Box that uses Interfaze to read all that unstructured data, from PDFs, images and scanned contracts to spreadsheets, into a standardized format you can ask questions against.

Meet Ask Box

Install on any Chrome browser

Getting started takes about thirty seconds:

  1. Install it
  2. Click the extension icon and connect your Box
  3. Ask a question in the Chat tab
Ask Box side panel open next to a browser tab

Here is a full walkthrough of it working end to end:

Your files index themselves

You keep using Box exactly as you already do. Drag files into a folder like you always have, and indexing happens on its own.

New uploads get picked up automatically, and deleted files drop out of the index without a cleanup job.

The Files tab mirrors your real Box folder structure and shows the live status of every file, so you can always see exactly what the assistant knows.

Files tab showing Box folder structure with live indexing status per file

Security

Ask Box runs on Box's own permission layer, so a file is only indexed for people who already have access to it. Revoke that access in Box and the file drops out of the index.

Ask a question, get an answer with the source

Once files are indexed, you ask questions in plain English and get answers grounded in your actual documents, along with the file each answer came from.

Ask "what is our Singapore entity name?" and it reads through the company documents and answers. Follow up with "what about the US entity?" and it keeps the context.

Ask Box answering a question with the source file cited

When your documents genuinely do not contain the answer, it says so. Interfaze is trained to refuse rather than brute force a guess, and on a company brain a confident wrong answer about a policy is worse than no answer.

How it works under the hood

Every file goes through Interfaze, which turns unstructured data into standardized structured data. Because the model is natively multimodal, a scanned contract, an angled photo of a receipt, a spreadsheet export, and a voice memo all get normalized the same way.

What comes back is more than text. Every extraction also returns precontext, the deterministic output of the task that ran, with per-line and per-word bounding boxes and confidence scores.

OCR output with bounding boxes and confidence scores overlaid on a document

That makes accuracy measurable instead of assumed. A blurry receipt gets flagged at index time rather than silently poisoning answers weeks later, and a cited fact traces back to a specific region on a specific page instead of just a filename.

Extraction quality sets the ceiling for everything downstream, because an answer can only be as good as the text pulled off the scan. Interfaze ranks number one on OCRBench V2.

Document extraction with Interfaze

Here is the whole indexing step on a real PDF.

OpenAI SDK

Vercel AI SDK

LangChain SDK

import OpenAI from "openai";
import { zodResponseFormat } from "openai/helpers/zod";
import { z } from "zod";

const interfaze = new OpenAI({
  apiKey: process.env.INTERFAZE_API_KEY,
  baseURL: "https://api.interfaze.ai/v1",
});

const DocumentRecord = z.object({
  title: z.string().describe("Title of the document"),
  doc_type: z.string().describe("e.g. research_paper, contract, receipt, invoice, policy"),
  summary: z.string().describe("Two sentence summary of what this document contains"),
  entities: z.array(z.string()).describe("People, companies, and organizations mentioned"),
  dates: z.array(z.string()).describe("Any dates in ISO 8601 format"),
  content_markdown: z.string().describe("Full readable content as clean markdown, preserving tables and headings"),
});

const response = await interfaze.chat.completions.create({
  model: "interfaze-beta",
  messages: [
    {
      role: "user",
      content: [
        { type: "text", text: "Read this document end to end and index it based on the schema." },
        {
          type: "file",
          file: {
            filename: "research-paper.pdf",
            file_data: "https://arxiv.org/pdf/2602.04101",
          },
        },
      ],
    },
  ],
  response_format: zodResponseFormat(DocumentRecord, "document_record"),
});

console.log(response.choices[0].message.content);

//@ts-expect-error precontext is not typed
const precontext = response.precontext;
console.log("OCR result:", precontext[0]?.result);

The structured output is the record that goes straight into the index, with the full document already cleaned up as markdown:

{
  "title": "Interfaze: The Future of AI is built on Task-Specific Small Models",
  "doc_type": "research_paper",
  "summary": "Introduces Interfaze, a system that treats modern LLM applications as a problem of building and acting on context rather than picking one monolithic model. It pairs a stack of task-specific DNNs and small language models with a context-construction layer and an action layer.",
  "entities": ["Harsha Vardhan Khurdula", "Vineet Agarwal", "Yoeven D Khemlani", "JigsawStack, Inc."],
  "dates": ["2026-02"],
  "content_markdown": "# Interfaze: The Future of AI is built on Task-Specific Small Models\n\n**Abstract** — We present Interfaze, a system that treats modern LLM applications as a problem of constructing and acting on context...",
  "...": "..."
}

The same response also carries precontext, the raw OCR output with bounds and a confidence score on every line and word:

{
  "precontext": [
    {
      "name": "ocr",
      "result": {
        "extracted_text": "Interfaze: The Future of AI is built on Task-Specific Small Models\nHarsha Vardhan Khurdula, Vineet Agarwal, Yoeven D Khemlani\n...",
        "sections": [
          {
            "text": "Interfaze: The Future of AI is built on Task-Specific Small Models\n...",
            "lines": [
              {
                "text": "Abstract",
                "bounds": {
                  "top_left": { "x": 204, "y": 1304 },
                  "top_right": { "x": 500, "y": 1304 },
                  "bottom_right": { "x": 500, "y": 1332 },
                  "bottom_left": { "x": 204, "y": 1332 },
                  "width": 296,
                  "height": 28
                },
                "average_confidence": 0.99,
                "words": [{ "text": "Abstract", "confidence": 0.99, "bounds": { "...": "..." } }]
              }
            ]
          }
        ],
        "width": 1275,
        "height": 1651
      }
    }
  ]
}

That second block is what makes indexing measurable. Anything below your confidence threshold gets re-processed or held back from retrieval, instead of quietly becoming a wrong answer three weeks later.

If you only need the extraction and not a final model response, run-task mode runs just the ocr or speech_to_text part of the model. It is faster and cheaper because the full model never activates.

Takeaway

  • If your documents already live in Box, install Ask Box and you have a company brain in one click, with no migration and no new UI.
  • If you are building an internal knowledge tool, point Interfaze at your storage provider's temporary file URLs and let one call handle routing, extraction, cleanup, and structure.
  • If accuracy has to be provable, use the confidence scores and bounding boxes to measure extraction quality instead of trusting it.

The interesting lesson from building this is how little code it took. Most of a company brain is extraction plumbing, and that part is now a single API call.

Interfaze

logo

Product

Playground

OCR

Models

Leaderboards

Pricing