Data Points Indexed
0
Live feeds
0
Replies / week
0
Competitive edges
0
001  A studio, not a SaaS

Your data. Your pipeline.
Data aggregation and AGI reasoning for any market.

One engine for any market: aggregate public and operator data, enrich and score it, then match with reasoning that shows its work. It re-points to recruiting by swapping the sources, not the engine. Call it as a REST API from your apps or an MCP server (six tools, OAuth 2.1) from your AI agents. Our live legal Hiring Index is the flagship proof.

Try a headline
apex.events live
002  Pick your industry

Start here. The rest of the page rebuilds for you.

Pick any market. The engine stays the same; only the sources change. The feeds we'd aggregate, the vault we'd build, and a real email written off a scored match all re-point to fit. Legal is one live build of seven shown here.

Shareable: cestoneai.cloud/#real-estate
16.6k
active scored records
1,200
firm dossiers
1,775
source feeds
3.4×
reply rate
Live data sources Legal
Vault layer · markdown Legal

    
Email · written off the vault Legal
003  What you'd own

Three pieces. Built for your industry.

Every build has the same shape: a data engine pulling from where the truth lives, a structured vault the AI consults, and an outbound layer that writes off the data in real time. The example below reflects the industry you picked above.

A. Automated data ingestion

Direct from your clients' own websites.

Listings, catalogs, filings, pricing, careers — pulled directly from the sites that publish them. Self-healing when layouts change. Always live.

B. Industry vault

Structured knowledge in plain markdown.

Hover any node to see the frontmatter. 1,200 firm dossiers · 2,919 edges. The graph is yours. Lives in plain markdown. You can read it.

--- firm: "hover a node" am_law: 100 edges: [partners, alums] ---
1,200 dossiers2,919 edges
C. Email on your data

Same prospect. Different message.

The AI consults the vault on every send. References the lateral hire that just happened, the case that just closed, the regulatory filing from last week.

004  What it looks like running

Four panels from a working system.

This is what your operations team would see. Job feeds streaming in, data automation health glanceable, replies landing, the vault graph alive as agents read it.

job firehose  11,068 indexed
data-feed health1,775 active
reply stream412 / wk
vault graph2,919 edges
004·B  A use-case profile

Recruiting build · live in production.

Below is the in-house tool a recruiting client uses every day. Job database, candidate pipeline, outbound — all running off data pulled directly from the employers' own websites. The page rebuilds when an industry is selected above; this is the receipt that the system ships.

MAIN
Dashboard
Job DatabaseADMIN
Clients CRMADMIN
CANDIDATES
Pipeline Board
Candidate Profiles
Candidate MatchAI
Resume Parser
Placements
OUTREACH
People SearchAPI
Outbound SearchAI
Sequences
Analytics
Billing
Full PipelineAI
11,068
jobs in database
1,775
live data feeds
412
replies / week
3.4×
vs. cold email baseline
005  How a build runs

Four phases. Four to six weeks.

Each phase has a deliverable you can read. No vague status updates.

1
Week 0 · scope

Scope doc

Two-call deep dive on your data, your buyer, your wedge. You leave with a 6-page scope.

scope.md · v0.3
industry  commercial RE — Texas
sources  MLS · county · 4 broker feeds
vault  18 entity types, ~600 nodes
email  broker outreach, 2 sequences
sla  nightly runs, 99% uptime
budget  $68k / 5 weeks
2
Weeks 1–2 · ingest

Live data feeds

Sources come online one at a time. Self-healing when sites change. Scheduled runs.

feeds/listings_mls.config
schedule  0 2 * * * (nightly)
retries  3 · backoff exponential
parser  playwright + LLM fallback
health  green · 14d streak
output  postgres + parquet snapshot
alerts  slack · 95% threshold
3
Weeks 2–4 · vault

Knowledge graph

Markdown dossiers, Obsidian-compatible, entity edges. The AI reads from this on every call.

vault/firms/cravath.md
entity  law firm · AmLaw 100
edges  partners (47) · alums (340)
recent  3 lateral hires · 14d
signal  litigation hire spike
format  plain markdown · readable
access  your team · git-tracked
4
Weeks 4–6 · ship

Email engine

Sequences write off the vault. We hand over the dashboard and a runbook. Everything lives in your stack.

handoff.md · v1.0
dashboard  panel.cestoneai.cloud
vault  git repo · obsidian.cestoneai
email  3 sequences · A/B running
sla  98% met · last 90 days
training  4hr team session
runbook  52 pages · every failure mode
00L  The engine

One loop. Four stages.

The product is the loop, not a single slice of it. Aggregate the data, enrich and score it, match with reasoning that shows its work, then act on the result. The match stage is the one most tools skip, so it leads here.

1
stage · aggregate

Aggregate

Pull public and operator data into one place. Live feeds, self-healing parsers, scheduled runs. Postgres plus snapshots you can read.

aggregate
inputs  public web · operator exports · APIs
cadence  scheduled · self-healing on change
store  postgres + parquet snapshot
2
stage · enrich + score

Enrich + score

Normalize, resolve entities, attach signals, and assign a score per record. The vault becomes a graph the engine reads on every call.

enrich + score
resolve  entities · edges · dedupe
signals  recency · fit · intent
output  scored record + provenance
3
stage · match · the core

Match with reasoning

Semantic plus rule-based matching that shows its work. Every match returns the signals behind it, not a black-box number. This is the part that earns trust.

explainable matching reasoning
score  0.91 · strong fit
because  role + region + 2 of 3 hard reqs
against  1 soft gap flagged, not hidden
4
stage · act

Act

Turn a match into an outbound action: a drafted email, a ranked queue, a webhook into your stack. The loop closes where the work happens.

act
outbound  drafted off the match + provenance
handoff  REST webhook · queue · dashboard
loop  replies feed back into score
00D  Two front doors

Call it from code. Call it from an agent.

Same engine, same match, two ways in. A REST API for your apps and an MCP server for your AI agents. Agent-native and developer-native at once.

request · curlREST
curl https://api.cestoneai.cloud/v1/match \
  -H "Authorization: Bearer $KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "subject": "candidate:ac8f",
    "against": "market:legal-nova",
    "explain": true
  }'
response · 200JSON
{
  "score": 0.91,
  "verdict": "strong fit",
  "because": [
    "role match: senior litigation",
    "region match: NoVA",
    "2 of 3 hard reqs met"
  ],
  "against": ["1 soft gap flagged"]
}
REST /v1 and the MCP server at api.placement.solutions/mcp (OAuth 2.1 + PKCE + DCR, six tools) are both live. Same match, same explanation, whichever door you use. The legal index is what they answer over today; the contracts hold for any market the engine re-points to. MCP docs →
00P  Proven before promised

The flagship build, in numbers.

The legal Hiring Index is the one live dataset, and it is the reference build the engine grew up on. It is proof of the engine, not the product: the same loop re-points to any market by swapping the sources. Real metrics, anonymized. No logos, no named customers, design-partner stage.

~1,200
firm dossiers in the vault
~1,775
live source feeds aggregated
~16.6k
active scored records, matchable now
Reference build only. Your numbers depend on your market and sources. We show the flagship so you can judge the engine before you commit.
00T  Honest by default

What we will and will not claim.

The hard part of a data system is trust. Here is exactly where we stand, with the work still in progress labeled as such.

data residency
US data residency
Stored and processed in the US. Hosted on our infra by default, on-prem available as a labeled enterprise option.
encryption
TLS 1.3 in transit, AES-256 at rest
Standard encryption end to end. No exotic claims, just the controls that are actually in place.
your data
No training on customer data
We do not train models on your data. No third-party cloud model at inference by default.
compliance
SOC 2 Type 1, targeted Q4 2026
In progress, not yet certified. We will say "certified" only when it is true.
hosting
Hosted on our infra by default
On-prem is a labeled enterprise option, not the standard. We tell you which one you are buying.
you keep it
You keep what we build
The data, the vault, the pipeline, and the matching logic are yours. In your git, on infra you control.
008  Common questions

Things every owner asks.

Who owns the data?+
You do. The code lives in your git org. The database lives on your infrastructure or ours, your call. The vault is plain markdown in a repo you control. We hand over keys at the end of the build. There is no SaaS subscription gating your access.
What if a source site changes?+
The data automations self-heal. Each one runs a structure check before it automate data directs. If the page changed enough to break the parser, an LLM fallback inspects the new layout and rewrites the selectors. You get a notification, not an outage. Last 90 days: 98% SLA met, with most layout changes patched inside an hour.
Can the email pull from data we already have?+
Yes. Your CRM, your warehouse, a CSV, an old Notion. We bring it into the vault, normalize it, link it to the entities the AI already knows about, and the email writer treats it as a first-class source. If you have three years of past correspondence, even better, we use it for tone calibration.
How long does this take?+
Four to six weeks for the typical build. Sprint is two weeks for one workflow if you want to test the wedge first. Embedded engagements are ongoing. We do not take builds we cannot finish in six weeks. If your scope needs more, we cut it in half.
Do you take equity?+
Selectively. We have done equity on three engagements where the system was the company. If your build is core to the business and you want us aligned long-term, propose it. The default is cash, paid in two halves.
Can I see the reference build?+
Sign in to the portal and you can see the recruiting dashboard live. 11,068 data points indexed, 1,775 live data feeds, 412 replies a week. That is the reference build. Yours would not look the same, but it would be built with the same agents and the same shape.
What models are you running?+
Custom-built LLM with offline aggregation. A hundred little librarians living inside your database, working through the night so the answers are ready when you ask. Models change underneath. The pipeline does not.
What if I do not know which sources I need?+
That is the scope phase. Two calls, one document. We map your buyer, your competitors, and the data sources that decide who wins. If at the end the answer is "you do not need this," we tell you and you do not pay.
006  Pricing

Three ways to start.

Sprint to test the wedge. Build for the full pipeline. Embedded if you want us inside the team.

Sprint
+ access to 20,000 job openings across 14,000 law firms, day one
$24kflat · 2 weeks

One workflow built end-to-end. Ingest, structure, send. You see if the wedge holds before committing.

sprint.md1 / 1
Week 1. One source online + vault stub
Week 2. One sequence live + 3-day soak test

Deliverables

·Working data feed · 1 source
·200-row sample dataset
·Email sequence · 1 audience
Build
$68kflat · 4–6 weeks

The full pipeline. Multiple sources, real vault, sequences in production. The version that actually moves your number.

build.md1 / 6
Phase 1. Scope · week 0
Phase 2. Data feeds + DB · weeks 1–2
Phase 3. Vault + edges · weeks 2–4
Phase 4. Email + handoff · weeks 4–6

Agents on the build

scoperfeed-buildervault-curatoredge-finderemail-authorqa-runner+12
Embedded
$18k/ month

Fractional team. We sit inside your slack. New feeds when sources change. New sequences when the buyer shifts.

embedded.md1 / 1
·Slack hours. 9–6 ET
·New data feeds. 2 / month
·Vault upkeep. ongoing
·Sequence rewrites. as needed
·Monthly review. 90 min

SLA

·98% uptime, last 90 days
009  What are you trying to build?

Tell us in a sentence.

Pick one of the prompts below or write your own. Goes to a 30-min scoping call.

Try one of these