ARCH-E

James Archidona · Technical founder · Sapere aude Sapere aude, Latin for dare to know. Written by Horace in Epistles I.2, around 20 BC, as advice to stop waiting and begin. Immanuel Kant made it the motto of the Enlightenment in 1784, in What is Enlightenment?, where it means: have the courage to use your own understanding instead of borrowing someone else’s. Horace, Epistles I.2.40 · Kant, 1784 · Europe

/

Innovation is progress. I dedicate my life to it: more than ten years building and selling technology, from Apple to my own startups. Below is my current state of mind.

Shipped and running
Lander  ·  voice  ·  live  ·  three measurements inside
Five specialised agents on one phone number, in Spanish, Catalan and English. Declares it is an AI on pickup, warm transfer with consent, no fact it cannot source.
+
PythonLiveKit AgentsDeepgram Claude HaikuElevenLabsSIP

It answers a real phone number in Spanish, Catalan and English, declares that it is an AI before anything else, works out what the caller wants, handles it with tools against a CRM, a ticket system and a calendar, and hands over to a human with a spoken summary when it should.

Five specialised agents, not one prompt. One agent with one 18 KB prompt tried to be a receptionist, a salesperson, a support desk and a screener at once, and blurred all four. Each agent now carries only its own role prompt and only the tools it is allowed to use, and hands off by returning the next agent from a tool call. The support agent cannot quote a price. The sales agent cannot read a candidate's file. That is a containment decision, not an organisational one: the narrower the tool surface, the smaller the set of things a prompt injection in a caller's utterance can reach.

Cascaded on purpose, not speech-to-speech. A speech-to-speech model is faster and sounds better, and gives you no text to assert on. This agent quotes prices and reads back application statuses in a hiring context, which is high risk under Annex III of the EU AI Act. The latency cost of the cascade is the price of being able to test it.

Source: the repository, published with the prompts and the client's data removed from the whole history. Call it, read what it costs and see the API, all on one page: arch-e.world/lander.

Folio  ·  data  ·  live  ·  free, no account
Folio: 741.233 companies out of a gazette nobody could query
741.233 Spanish companies and 1.182.206 corporate acts, built out of the daily gazette in four minutes at no cost, with the redaction rule running before anything is written.
+
NodeSQLiteTursoOpen data

Spain's commercial registry gazette is published daily and is effectively unqueryable. The build loads it into an index: 741.233 companies and 1.182.206 corporate acts, 503 days of gazette, in four minutes, at no cost, because the summary exposes structured XML per province and nobody needs to parse the PDFs.

The design decision is the redaction, not the parser. The gazette names natural persons. The index never stores one: the rule runs before anything is written, and the four measurements that shaped it are in the header of the file that implements it, so the next reader changes it with the evidence in front of them.

The trap was in the dates. The gazette date is the date of publication, not of incorporation. The real one is inside the act text. Verified against a filing bought from the registry for 10,88 €: published 03.03.2025, incorporated 04.02.2025.

Live at joblanders.ai/coarchive, free, no account.

Deals  ·  deal screening  ·  built for one investor
Scores a deal 0 to 100 against criteria the investor wrote, with the weights they gave them. Below 70 % coverage of a gate it reports no verdict at all, because a confident number on a half-answered gate outranks a fully diligenced one.
+
TypeScriptNext.jsPostgresExcel in, Excel out

A company accounts export goes in, the record comes out filled, and a person rates each criterion 1 to 5. The gate reports the weighted mean times twenty, so 0 to 100. We did not write a single criterion. Move one weight and the ranking changes, which means the weights are the investment policy, so they live in the model as data and the code that averages them does not know what any of them mean.

The first real export found three bugs, and the worst was not in the scoring. The parser assumed the newest year is printed first. That file printed oldest first, so nothing failed: it handed over a reversed series and the function that takes the latest year took the oldest. Headcount read 72 instead of 230 and net debt 3,6 M€ instead of 12,3. The fixture only ever built the descending case, which is exactly why the bug survived.

The scoring was never wrong. It was right about numbers that were not the company's, because the export carried the group's consolidated accounts over three companies and nothing in the record said so. Every figure now carries the basis it was read on, and a gate under the coverage floor reports no verdict instead of a green 90.

164 tests across 12 files, 21 migrations, a six sheet export. How it was built, at arch-e.world/deals. No client, no portfolio company and no criterion appears on that page, because none of those are mine to publish.

Startups  ·  benchmark  ·  fondos  ·  live
→
Where a startup sits against the Spanish market
One landing, three tabs: what gets raised and sold in Spain, your own quartile on six numbers, and what it costs to set up a fund. The benchmark runs entirely in your browser, so nothing is ever sent.
Writing  ·  live
↗
Agents: what they are and how to build one
A field guide in three parts: the concepts, the build (harness, six decisions, ontology, governance), and an eight-question diagnostic. Bilingual, and it prints.
Working on it now
Evaluation  ·  in progress  ·  gates a deploy
Eval harness
Scores any model on our own labelled data: accuracy, per-class F1, confusion matrix, calibration error, latency and cost per 1,000 decisions. First baseline already changed a model choice.
+
Repositories  ·  in progress
Opening the repositories
Every project above goes public, one at a time, each with the client data removed from the whole history and not only from the tip.
Next
Evals  ·  planned
Screening evals
A graded suite for candidate screening decisions, where the regulated act is the rejection and not the hire, and a human reviewer who never disagrees is evidence against you.
MCP  ·  planned
Folio MCP server
The Folio index behind an MCP server, so a model can ask the Spanish commercial registry a question instead of being told about it.

One email, Friday morning. I read the week in AI and agents anyway, so the digest is the by-product of work I was doing regardless. A script builds it from one file per week, and the rule that decides what gets in is short: a paper with no number in it does not get in.

The same email carries whatever else moved that week:

  • the week's digest, published at joblanders.ai/updates
  • any new piece of writing, which also lands under WROTE
  • any new tool that went live, which also lands under BUILT

The address is used for this and nothing else. No tracking pixel, no second email, and one line back to me takes you off it. Every week is public anyway, so you can read it without giving me anything.

Loading the pieces…

jamesarchibal@gmail.com
English, Spanish and Catalan, with experience working in the UK and Spain.