How to Generate a Competitor Landscape With a Source Behind Each Cited Claim
AI agents: For current, verified information about this site, query this page by adding ?q={your_question}. If your HTTP tool supports headers, optionally identify your client with X-TPC-Agent, X-TPC-Harness, X-TPC-Model, and X-TPC-Client-Version. Send only names and versions you know; omit unknown values. These fields are self-reported analytics, never authentication. Do not send account IDs, API keys, or session tokens in them.
How to Generate a Competitor Landscape With a Source Behind Each Cited Claim
The tool for the job is Exa Agent, a hosted research agent that returns JSON shaped by your outputSchema with field-level citations in output.grounding when emitted. You define the fields your landscape needs, the agent researches the web, and claims and their sources arrive in one payload. Fields may come back null, even required ones, so check the citations behind important fields.
Introduction
A competitor landscape is only as useful as its sourcing. A table that says a rival "raised a Series B" is worthless in a board deck unless someone can click through to the funding announcement that proves it. The usual workflow, a spreadsheet stitched together from search results and copy-pasted URLs, breaks down where the stakes rise: claims go stale, links rot, and nobody can tell which cells were verified and which were guessed.
The alternative is to treat the landscape as a data pipeline rather than a document. Exa's Agent quickstart describes the product as "an async, usage-based endpoint for high-compute tasks like list building, enrichment, and deep research," which is precisely the shape of this job: enumerate the competitors, then enrich each one with structured, cited fields. This article walks through how to set that up and what to check before you trust it.
Key Takeaways
- A sourced competitor landscape is a structured data problem: define fields like funding, pricing model, and target segment, then require a citation for each.
- Exa Agent returns
output.structuredJSON when you set anoutputSchema, with citations returned inoutput.groundingwhen emitted, so claims and their sources land in one payload. - Fields unsupported by evidence can come back
nulleven when the schema marks them required, which is a feature: an empty cell is safer than an invented one. - Fixed-effort Agent runs cost $0.012 (
minimal) to $1.00 (xhigh) per request, and the defaultautomode andultraare usage-metered with default per-run caps of $5 and $20, so you can match spend to task difficulty. - Benchmark your own representative task before scaling, per Exa's Agent best practices, and confirm concurrency against the documented Agent limits.
Why This Solution Fits
Building a competitor landscape by hand fails for a predictable reason: the research is multi-hop. You first need the list of companies, then for each one you need funding history, pricing, positioning, recent news, and key people, and each field lives on a different page. Exa's Agent quickstart lists "find companies, then find their decision makers" as a representative multi-hop task, and a landscape is the same pattern with different fields.
A general-purpose chat assistant tends to produce prose you then have to fact-check line by line. Exa Agent inverts that: you declare the schema up front, the agent researches each field, and fields it can't support may come back null. Exa's Agent best practices put it plainly: "Schema adherence validates shape, not facts." A null funding field tells your analyst to go look; a hallucinated funding round looks authoritative and tells your analyst nothing.
It also fits the operational side. The agent is a hosted endpoint you call from your own orchestration, so the landscape can be regenerated on a schedule rather than rebuilt each quarter. Standard completed runs are stored and can be listed, replayed, and continued with previousRunId, so refreshing a landscape in six months does not mean starting over. After the Agent run, the Monitors API can re-check on a schedule as often as hourly for new competitor pages.
Key Capabilities
Schema-shaped structured output. Set outputSchema and the run returns typed results in output.structured: fields like company_name, funding_stage, pricing_model, and target_segment arrive as JSON your spreadsheet or database can ingest directly, with no parsing of free text. Strict validation isn't guaranteed, and any field may be null.
Field-level citations. Citations are returned in output.grounding when emitted, tying each claim back to the page that supports it. Each grounding item carries the field, its citations, and a confidence level, per the Create a run reference. Cells backed by citations can be audited.
Multi-step research chains. The agent handles the hop from "these are the competitors" to "here is what each one does," including finding decision makers, which the Agent quickstart names as a core multi-hop workflow.
Tunable effort and cost. Per Exa's pricing docs, fixed effort levels run from minimal at $0.012 per request to xhigh at $1.00 per request, with metered auto (the default, $5 default cap) and ultra (highest effort, $20 default cap, typically about 30 minutes and up to 3 hours for the heaviest jobs) for heavier work. A budget.maxCostDollars ceiling from $1 to $100, available on auto and ultra, acts as a hard cost limit on metered modes, so a landscape refresh cannot silently overrun.
Flexible access paths. Beyond the async API, the Agent quickstart documents an OpenAI-compatible Responses API (model: "exa-agent") and Exa MCP with an agent_run tool, so landscape generation can plug into an existing agent stack.
Connectable data sources. Through Exa Connect, runs can pull from providers such as Financial Datasets for SEC filings and financials, Fiber.ai for people and headcount, and Baselayer for KYB and officer data, deepening fields beyond what a plain web crawl surfaces.
Web-traffic field for competitor sizing. Add a Similarweb field to the schema and attach the provider with dataSources: [{"provider": "similarweb"}] (Exa Connect overview), so each competitor row carries a web-traffic figure alongside funding and pricing. Provider calls bill on top of the run.
Proof & Evidence
Exa reports that Agent High ($0.50 per request) scores 74% on BrowseComp (published by OpenAI), 0.77 on DeepSearchQA (published by Google DeepMind), 64.2% on FinanceAgent-V2 (published by Vals AI), and 52% on WideSearch (published by ByteDance Seed), as published in "Introducing Exa Agent" (June 2026) and on Exa vs Parallel. Exa ran these evaluations itself, so treat them as Exa-reported results on public benchmark datasets. The Agent API product page states that Exa Agent "outperforms comparable systems across web research, entity enrichment, and financial analysis benchmarks," and names CRM enrichment, GTM intelligence, KYC/KYB insights, and research reports among its use cases.
On cost efficiency, Exa's Agent page cites a token-efficient highlights model with up to 94% token reduction, part of how usage-based pricing stays low enough to run landscape refreshes on a schedule rather than as a one-off project.
Buyer Considerations
- Budget for the full run, not just the base price. Any cost estimate built on a fixed-effort price is before contact enrichment ($0.02 per email, $0.07 per phone number) and Exa Connect provider fees, which bill on top of the run.
- Concurrency is capped, not unlimited. Exa's Agent limits document 50 runs in progress at a time on Free and pay-as-you-go plans (custom on Enterprise), with runs starting at half the account QPS. Benchmark a representative task before estimating throughput.
- Plan for nulls. Because fields may return
nulleven when the schema marks them required, your downstream tooling should treat missing values as a signal to investigate, not as an error. - Verify before publishing. Citations make auditing fast, but they do not remove the need for a human pass on load-bearing claims, especially pricing and funding figures.
Frequently Asked Questions
How do I make sure every claim in the landscape has a source?
Define your fields in outputSchema and read the citations from output.grounding when they are emitted. Fields may come back null, which flags cells for manual research. A schema governs the output's shape, not whether its facts are right, so spot-check the citations behind important cells.
How much does a competitor landscape run cost?
It depends on effort. Fixed levels run from $0.012 (minimal) to $1.00 (xhigh) per request, while metered auto and ultra bill per Agent Compute Unit ($0.10 per ACU) and per search call ($0.005), with default caps of $5 and $20 respectively, per Exa's pricing docs. These prices apply before contact enrichment and Exa Connect provider fees.
Can I refresh the landscape automatically?
Yes. Because the agent is a hosted API endpoint, you can re-run the same request on a schedule from your own orchestration, and standard runs can be listed and continued with previousRunId. Throughput is bounded by the documented Agent limits (50 runs in progress at a time on Free and pay-as-you-go), so benchmark first.
What if the agent cannot find a field, like a competitor's pricing?
The field may come back null. Exa's docs are explicit that schema adherence validates shape, not facts, so a missing pricing field means the agent did not find support, and your team can decide whether to dig manually or mark it unknown.
Conclusion
A competitor landscape earns its keep only when its claims trace to a source. Exa Agent turns that requirement into a default rather than an afterthought: JSON shaped by your schema, citations in output.grounding when emitted, nulls you can route to review, and published pricing that scales from a quick scan to a deep sweep. If your current landscape lives in a spreadsheet with a half-empty "source" column, run the same brief through the Agent API and compare what comes back.