Evan SunLet's connect
Selected Work

Evidence-first AI Research Agent

Clara

Build a company brief from traceable public evidence, with bounded research tools and visible gaps when information is missing.

Part of FinBro · A separate workflow from EthanImplemented workflow · Bounded planning · Deeper diligence in development
TypeScriptTool orchestrationLLM APIsLibSQL
Clara company-research report in the actual FinBro interface, from an archived public-source snapshot

Actual FinBro UI · Archived public-source research snapshot, September 2026

The problem

Clara assembles company research around a confirmed target. It collects public evidence through bounded tools, preserves sources and unresolved gaps, and produces a structured brief that makes incomplete research visible.

Public company information is scattered, names are ambiguous, and a search result may contain a company's own claim rather than independent confirmation. A polished summary alone cannot show what was actually checked.

Clara is FinBro's company-research workflow, alongside Ethan's public-company reporting path. Its purpose is a grounded company brief rather than an open-ended chat interface.

How it works

  1. 01

    Confirmed company target

  2. 02

    Allowlisted research tools

  3. 03

    Evidence + execution history

  4. 04

    Deterministic coverage assessment

  5. 05

    Validated bounded next action

From input to output

  1. 01Resolve and confirm the company before permitting research tools to act on it.
  2. 02Collect original-page evidence, hiring signals, and funding leads through an allowlisted registry.
  3. 03Store evidence references, observations, information gaps, and tool-attempt history in research state.
  4. 04Assess coverage, validate a structured next-action decision, execute an allowed step, and assess the updated state.

Data sources

  • Confirmed company websites and original public pages
  • Bounded search-discovery leads and public hiring sources
  • Public funding announcements and SEC funding records where a verifiable match is available

Technical approach

  • Five registered tools: company identity, web research, hiring intelligence, funding search, and SEC funding
  • Typed success, partial, and failed results with evidence IDs and retrieval times
  • LibSQL-compatible persistence for research state and execution history
  • Deterministic coverage checks and validation of structured planner decisions
  • Confirmation, retry, duplicate-work, and high-severity-gap guards

What you can inspect

  • Structured company brief
  • Evidence and source register
  • Information-gap and conflict records
  • Inspectable tool-execution history and coverage status
  • A source reference remains attached to an observation rather than being lost in generated prose.
  • Partial evidence and failed execution are separate states, allowing useful findings to survive an incomplete attempt.
  • The single-step planner service validates its decision before executing at most one tool and then rechecks coverage.

The result is a company-research artifact that shows what supports a finding, what remains unknown, and which actions produced the evidence.

Clara coverage view from an archived public-source research example
Actual FinBro UI · Archived public-source snapshot. Coverage and gaps accompany the report; this is not a new research run.

Where this is useful

  • Useful for company briefs, competitor research, and vendor or prospect screening with human review.
  • A visible gap is actionable: the reviewer can request a specific source or stop research instead of accepting a fabricated answer.

Checks & engineering decisions

Verification evidence

  • Reviewed fixtures cover unconfirmed-target rejection, partial results, valid zero-job outcomes, retries, and open high-severity gaps.
  • Planner fixtures cover malformed decisions, unknown tools, invalid completion claims, and repeated failed attempts.
  • These are implementation and fixture evidence. They do not establish live provider coverage or a percentage measure of research accuracy.

Key decisions

  • Confirm the target before tool execution to reduce wrong-company research.
  • Separate company-reported evidence from independently published or official records.
  • Preserve a failed attempt and its gaps instead of replacing it with an empty successful result.
  • Use deterministic coverage and structured-decision validation to constrain model-assisted planning.

An incomplete result remains explicit

typescript
type ClaraToolStatus = "success" | "partial" | "failed";

type ToolObservation = {
  code: string;
  topic: string;
  description: string;
  evidenceIds: string[];
};

The implemented tool contract distinguishes incomplete evidence from execution failure and keeps source references attached to observations.

Role & status

Personal product and application development with AI coding assistance. The scope presented here includes research-tool contracts, structured company reports, durable state, and review of failure and planning fixtures.

AI coding tools assisted implementation. Personal contribution is presented as project development and review, without claiming independent authorship of all code or a measured model-quality improvement.

Implemented workflow · Bounded planning · Deeper diligence in development Source review: 2026-10-14.

Limitations

  • A registered adapter does not guarantee a successful live source match or provider entitlement.
  • Company-reported statements remain distinct from independently verified facts; evidence quantity alone does not establish coverage.
  • The single-step planning service is bounded; deeper diligence workflows and other research modes have separate implementation and budget boundaries.
  • Multi-user authorization and retention controls need further work before an enterprise rollout.

Explore the evidence

Source review: Clara's tool registry, tool-result types, runClaraAgentStep.ts, coverage evaluator, research-state services, and planner/tool fixtures. Fixture behavior is distinct from live provider coverage or model-quality measurement.