data.placeholder.com/company
Company in a box
One coherent, entirely fictional company for agent evaluations, RAG tests and AI product demos. Org chart, CRM, deals, invoices, support tickets, incidents, commits, email, chat, calendar and a wiki that all tell the same story. Plus questions with exact answers and the evidence behind them.
Brightfjord, Inc.
Brightfjord makes scheduling and dispatch software for trades businesses (HVAC, plumbing, electrical). Portland HQ, a Denver office, remote staff, about 40 people. The data covers Q1 2026 (5 January to 31 March), with some 2025 history. Money is in USD, timestamps are Pacific time with an explicit UTC offset.
https://data.placeholder.com/company/brightfjord/v1overview: profile, every collection with count, fields and link, wiki pages, exampleshttps://data.placeholder.com/company/brightfjord/v1/questionsevaluation questions with answers and evidencehttps://data.placeholder.com/company/brightfjord/v1/bundle.zipthe whole dataset as one zip (JSON + Markdown), for offline indexing
Collections
| Collection | Records | Contents |
|---|---|---|
departments | 8 | Departments with head and headcount |
employees | 40 | Title, department, manager_id (org chart), start and end dates. One person left on 2026-02-27. |
products, plans | 4, 6 | Products and the price book as of 2026-03-31 |
accounts, contacts | 25, 45 | CRM: customers, prospects, one churned customer, and their people |
deals | 30 | Line items, discount and approver, stage history |
invoices | 30 | Q1 2026 invoices from closed-won deals |
tickets | 60 | Support tickets with comments and SLA data |
incidents | 2 | Timeline, root cause, linked tickets, action items |
commits | 24 | Git commits that reference tickets and incidents |
email_threads, emails | 27, 75 | Internal and customer email; a thread includes its messages |
chat_channels, chat_messages | 9, 201 | Team chat, including incident channels |
events | 62 | Calendar events with attendees |
wiki | 13 | Page metadata with revision history; bodies as Markdown |
questions | 34 | The answer key |
IDs are readable and stable: EMP-001, ACC-005, DEAL-001, TCK-1010, INC-2026-001, THR-001, EM-0042, CHM-0109, EVT-…; wiki pages by slug, commits by SHA prefix.
Routes and filters
/company companies
/company/brightfjord/v1 overview
/company/brightfjord/v1/company the company profile
/company/brightfjord/v1/<collection> list (paged)
/company/brightfjord/v1/<collection>/<id> one record
/company/brightfjord/v1/wiki/<page> Markdown (?format=json for metadata + body)
/company/brightfjord/v1/bundle.zip everything
- Filters: any top-level field, exact match. Comma-separated or repeated values mean OR; list fields match on membership;
nullmatches null. An unknown field is a400that lists the valid ones. - Search:
_q=is a case-insensitive substring search over all text in a record. - Paging:
_page(from 1) and_limit(default 100, max 500). Lists return{total, page, limit, pages, items, links}.
https://data.placeholder.com/company/brightfjord/v1/tickets?status=open&_limit=20open ticketshttps://data.placeholder.com/company/brightfjord/v1/tickets?priority=P1,P2P1 or P2https://data.placeholder.com/company/brightfjord/v1/events?attendee_ids=EMP-024one person's calendarhttps://data.placeholder.com/company/brightfjord/v1/emails?_q=postmortemtext searchhttps://data.placeholder.com/company/brightfjord/v1/deals/DEAL-001one dealhttps://data.placeholder.com/company/brightfjord/v1/email_threads/THR-001a thread with its messageshttps://data.placeholder.com/company/brightfjord/v1/wiki/pricing-and-discountsa wiki page as Markdown
Questions and the answer key
34 questions, each with an exact answer and the records that prove it. Use them to score retrieval, tool use and reasoning.
{
"id": "Q01",
"question": "Who approved the 22% discount on the Halvorsen Mechanical expansion deal?",
"answer": "Ingrid Solberg (CEO)",
"answer_value": "EMP-001",
"answer_type": "entity",
"answer_ids": ["EMP-001"],
"kind": "trap",
"evidence": [
{"collection": "deals", "id": "DEAL-001", "role": "proof", "field": "discount_approved_by", "equals": "EMP-001"},
{"collection": "emails", "id": "EM-0043", "role": "proof", "quote": "I did not approve the 22% (I can only go to 20%). Ingrid approved it this morning."},
{"collection": "chat_messages", "id": "CHM-0109", "role": "stale", "quote": "Halvorsen 22% approved by Priya", "note": "Wrong; corrected in the next message from Priya."},
…
],
"notes": "…",
"sources": ["chat_messages", "deals", "emails", "wiki"]
}
kind:single-hop,multi-hop,aggregateortrap. Filter with?kind=trap.answer_type:text,entity,number,date,booleanorlist. Compareanswer_valueexactly;answeris the human-readable version.evidence[].role:proof(supports the answer),context, orstale(a wrong or outdated statement a good agent must not trust).
Realistic mess
Like a real company, the records contain typos, facts that are later corrected and statements that contradict each other. Trap questions point at both the stale record and the one that wins, so you can tell whether a system read the latest, authoritative source.
Safety and stability
- Entirely fictional. All domains use the reserved
.exampleTLD; phone numbers use the fictional+1 555-01xxrange. - Version 1 is frozen: these bytes never change, and responses are cached for a year. A future version will get a new path (
/v2).bundle.zipis byte-for-byte reproducible. - Read-only:
GETandHEAD.