
Every B2B company eventually spends a week a month on security questionnaires: SIG, CAIQ, a bank's 300-row spreadsheet, a hospital's vendor assessment. The answers are mostly the same, the formats never are, and the person filling them in is usually the one who should be fixing the findings.
AI helps — but an AI that writes confident, plausible answers about your security is also a liability. If it says "yes, MFA is enforced everywhere" when a monitor shows two people without MFA, you have put a false statement into a contract exhibit. This post explains how InsightAssure answers questionnaires so that every answer can be traced, checked and, when necessary, contradicted by your own data.
Where answers come from
Three kinds of source, all the organization's own:
- The answer library (Knowledge base). Onboarding seeds it with 83 standard questionnaire answers — encryption, SSO and MFA, background checks, penetration tests, business continuity, incident response, data residency, subprocessors, SDLC, logging, vulnerability management, access reviews, training, data deletion, insurance — written in the first person with your company name filled in. You edit them to match reality, and every answer you approve in a questionnaire can be saved back.
- Published policies — current versions only, split by section. A draft policy is never a source.
- Controls, with their live health. Each control's statement is a source, tagged with whether it is passing or failing right now.
Retrieval ranks these with a small BM25 index rebuilt per request (hundreds of documents, not millions), and hands the top five for each question to the next step.
Retrieval alone is not enough to keep answers honest: the question "Is MFA enforced for all employees?" retrieves the approved MFA answer and the Access Control Policy, both of which say yes — and neither says that the MFA monitor is failing for two people today. So every retrieved source also carries the controls it relates to (an answer-library entry names its controls; a policy is linked to the controls that cite it), and the live status of those controls is always attached to the question, whether or not a control itself ranked in the top five. A failing control arrives with its reasons.
The model writes only from sources
When a model is configured (Bedrock Claude by default; Azure OpenAI, Vertex, OCI or any OpenAI-compatible endpoint also work), questions are sent in batches of twelve, each with its sources. The instructions are short and strict:
- write each answer only from the sources; never invent a certification, a number or a practice;
- one to four sentences, first person plural, customer-facing; start yes/no questions with "Yes." or "No." when the sources settle it;
- if the sources do not answer the question, return an empty answer with confidence 0;
- when a related control is failing, say plainly what is in place and that a gap is being remediated — never an unqualified "Yes", never "for all" or "every" — and never repeat the names in the failure reasons.
The rule path (no model) applies the same guard mechanically: if any control behind the matched answer is failing, the answer gets a note that the automated check is failing and being remediated.
Each answer comes back with a confidence and the ids of the sources it used, which are stored as citations.
Real answers, including the uncomfortable ones
These are from the Northwind Labs demo workspace (a fictional company), answered by the model.
Q: Do you encrypt customer data at rest?
Yes. Customer data in databases, object storage, volumes and backups is encrypted at rest with AES-256 using keys managed in our cloud provider's key management service. Encryption is enforced by default policies and verified by continuous monitoring. Note: our encryption-at-rest control is currently not fully passing our automated health checks, and we are actively remediating.
Source: Cryptography and Key Management Policy, section 5 "Encryption at rest".
The note is the point. Northwind has an unencrypted legacy database, db.encrypted is failing, so CRY-01 is failing — and the draft says so. Whether you send that sentence, fix the database first, or scope the legacy system out of the service is your decision; what matters is that the tool did not let you claim something your own monitors contradict.
Q: How quickly are critical vulnerabilities remediated?
Our policy requires critical vulnerabilities to be remediated within 15 days (known-exploited internet-facing within 72 hours), high within 30 days, medium within 90 days and low within 180 days; exceptions require documented approval and compensating controls. We note that our automated remediation-SLA control is currently not fully passing health checks, and we are actively working to remediate this.
Sources: control VUL-02 Remediation within SLA (health: failing); knowledge "What are your vulnerability remediation timelines?"

Why a human still approves every answer
The same demo run also shows why review is not optional:
- "Do you have a SOC 2 Type 2 report?" was answered "Yes", from a seeded library answer that assumes an annual SOC 2. For a company still preparing its first report, that answer must be edited — the library entries are templates until you make them true.
- "Who are your subprocessors?" began with "Yes." — a yes/no habit applied to a question that is not yes/no. The rest of the answer (the list is in the Trust Center, bound by DPA terms) was right.
So answers arrive as drafts. Someone edits and approves each one; approving can save it to the answer library, so the next questionnaire starts from an answer a human has signed off. Approved answers are never overwritten when you re-run answering.
Rule mode: useful with no model at all
Some organizations cannot send questionnaire text to a model — a self-hosted install in a regulated environment, or simply a policy decision. With ASSURE_AI=false, no model configured, or the model unreachable (the first failure is remembered for five minutes so nothing waits on timeouts), every question is still answered by rule:
- If the best-matching library answer covers at least 60% of the question's weighted terms, use it; confidence scales from 0.35 to 0.85 with coverage.
- Otherwise, use the best-matching control or policy statement, prefixed with "Yes." only when it is a yes/no question and the control is passing.
- Otherwise, leave it blank — an empty answer is better than a guessed one.
Coverage is used instead of a raw relevance score because it means the same thing in an index of 30 documents or 300. Rule answers are labeled as such, with the same citations.
Building an answer library worth retrieving from
The quality of grounded answers depends mostly on the sources, so the library deserves an afternoon of care:
- Make every seeded answer true before you rely on it. Read the 83 library answers once, edit the ones that do not describe you, and delete the ones you cannot stand behind (a cyber-insurance amount you do not have, a certification you have not earned).
- Prefer short, specific answers. "Backups are taken daily and retained for 35 days; restores are tested annually" retrieves better and reads better than a paragraph of policy language.
- Link answers to controls. Each entry can carry the control codes it relates to, which keeps the library honest as controls change.
- Save approved answers back. The second questionnaire from the same industry is usually much faster than the first, because its questions land on answers a human already approved.
- Publish policies. Draft policies are never used as sources; a published policy is the strongest citation you can give a customer.
Importing and exporting
Upload a CSV or XLSX. InsightAssure finds the question column by its header ("Question", "Control question", "Requirement" …), or the column with the most text if there is no header it recognizes, and a section or category column if there is one. Rows shorter than eight characters are skipped. When you are done, export to CSV or XLSX with the answers alongside.

Ask Assure
The same grounding works for internal questions. Ask Assure answers questions about your own program — "which controls are failing and why?", "are we encrypting databases?" — from the program's facts (frameworks and readiness, controls by health, failing monitors) and the same sources, and says plainly when they do not cover the question.

The best questionnaire is the one you don't receive
Many questionnaires exist because the buyer has nowhere else to look. A Trust Center gives them that place: frameworks and their status, controls grouped by domain with live status, subprocessors with purpose and location, FAQs, and documents — your SOC 2 report, policies — either public or behind an NDA-gated access request. Approving a request issues a link with a 30-day token; documents download only with it.

A sensible order: point the buyer to the Trust Center first, send the SOC 2 report under NDA second, and answer only the questions those two leave open — from a library that gets better with every questionnaire you approve.


