R0 - JD parse + role classifier
Extract requirements, seniority, geography, and domain. Reject malformed or out-of-scope JDs before they contaminate the scan.
Most AI resume tools are a single LLM call dressed up. First Landed uses a staged methodology with adversarial review, OpenRouter model routing, and a hard veto on anything it cannot verify.
Public architecture is R0-R10 + R9b. R9b is counted because it is a real safety path, but it is conditional. It runs only when a critical parse, verification, or handoff path needs fallback.
The free scan shows the headline path. The paid deep audit runs the full R0-R10 debate, with R5 as the hard veto and R9b available as a fallback safety gate.
Extract requirements, seniority, geography, and domain. Reject malformed or out-of-scope JDs before they contaminate the scan.
Your CV and intake answers are normalized into a fact ledger (facts.yml): atomic, dated, source-linked.
Writer model proposes bullet variants per role section, conditioned on the target JD and available evidence.
A second model attacks every bullet: what would a skeptical interviewer probe, and where is the claim too soft?
Judge model scores each variant against the JD requirements with an explicit rubric, not a vague vibe check.
Every metric, employer, title, and technology is checked against facts.yml. Unverifiable claims are killed before they reach the output. No invented internships, metrics, or experience.
Catch bullets that say the same thing in different words. Catch bullets that compete for the same evidence.
Bullets are assembled into role blocks, summary, skills, and a one-page layout target.
Automatic widow detection, spread and compress passes, and dual-issue handling. Output is designed to be print-ready.
One last cross-model judgment on the whole CV, plus an interview-question generator based only on the claims you chose to make.
If a critical parse or verification path fails, a GPT-class fallback reruns that path before the output is accepted. It is real architecture, but it does not run on every clean pass.
Bullets you keep, edit, or reject are versioned into a per-user bullet library with judge scores. Next run starts smarter.
The engine routes through OpenRouter, picking models per role per stage. Costs below are current internal estimates for planning, not customer-facing promises.
Default for fit-scan and first-pass paid packs. Used when the JD is straightforward and the evidence is clean.
Mid-tier for complex JDs or roles requiring nuanced cross-domain framing.
Reserved for executive packs and roles where a weak CV would be unusually expensive.
The most common failure mode of LLM-written CVs is fabrication: invented internships, inflated metrics, AUM that did not exist. The Fact-Checker is the stage that exists to prevent this, and it has hard veto power.
For every claim in a generated bullet, the Fact-Checker runs three checks:
Failed claims are not softened. They are killed. The variant containing them is rejected upstream and a different variant gets promoted. This is why most outputs end up shorter than what a one-shot LLM would produce: truth-density beats word-density.
Every bullet that survives the gauntlet is upserted to a per-user, versioned library. It carries judge score, JD context, attack-map sample, and revision history. Next run, the engine considers your library before generating fresh. So you do not restart from scratch each application.
Bullets you reject are not deleted. They are archived with reason, so the engine does not suggest them again.
Honest limitations as of 2026-06: