Capability
Find the right source, read it correctly, and prove every line against it.
Every origin and destination pair a traveller can ask about, at roughly 10 pages each.
The part of the problem VFS already owns the content for. This is where production starts.
Crawled end to end from India with government sources, grounding and verification. Proof of mechanism, not of scale.
Find the right source, read it correctly, and prove every line against it.
Hold cost flat as corridors multiply by a thousand, and to near zero per question.
A named person approves what ships. Models propose, people decide.
The intelligence, the registry and the decisions stay VFS property.
Discovery never finishes. New missions, operators and pages keep appearing.
No changelog, no API, no notice. A rule changes and the page just reads differently.
One operator, two names. Two sources disagree. Jurisdiction decides who wins.
Script-rendered pages hold nothing to read until a browser runs them.
Everything above multiplies by a thousand at 40,000 corridors.
Naive crawling and extraction at that scale costs more than the answers are worth.
Models hallucinate, so a named person decides what reaches a traveller.
VFS pages, mission and government sites, other operators, and the PDFs they link to.
In the corridors we examined, the service is run by someone other than VFS. Spain from India is BLS International, not VFS.
Consular districts decide which mission and which centre applies, and the rules differ by district.
Distinct visa-type names across sources for the same underlying set of visas.
Operational notices found in one pass. Any of them can change an answer with no notification.
Across 67 destinations, every line carrying a verbatim quote from its source. 1,338 of them read through the VFS content API, across 63 destinations and 161 origins.
Inside VFS’s 86 destinations, 6,328 of 12,672 pairs already answer from a government or VFS source rather than the reference dataset.
Where the content API carries a structured catalogue, the record is assembled with no model call at all. Running the whole VFS estate is about $90 a year of infrastructure.
Model evaluation, retrieval and grounding, compression, inference economics.
Crawlers, pipelines, registries, review tooling, APIs.
Monitoring, audit trails, cost control, human review at volume.
Handover into the client’s own cloud, or run by us.
Government, financial services, travel, logistics, industrial and manufacturing, and AI infrastructure.
AI sits inside the operating architecture, not on top of it as a chatbot. In this system that means the discovery loop that proposes sources, the review queue that routes judgement to a named person, and the source registry that records what was approved and why.
Named, measurable work, not a claim: model evaluation per task, architecture experiments, inference optimisation, retrieval and grounding methods, agent orchestration, and content compression.
The compression benchmark on the next act, the verifier that sits outside the model, and a model strategy that puts deterministic code first and frontier models last.
Find, validate and qualify candidate sources
One record per corridor from many formats
Every line checked against its source text
A named person approves what ships
Into the verified knowledge base
Database read, no model call
Runs continuously against the open web. It never finishes, because new missions, operators and pages keep appearing.
Runs on its own schedule against approved sources only, and acts only when something material changes.
Searches for candidate sources per corridor: VFS estate, missions and ministries, other operators, immigration and policy sites.
Fetched and inspected. Is this the right page, is it relevant, is it reachable, is it a duplicate or an error shell?
Authority, ownership, coverage and purpose are assessed, and the model states its recommendation.
A named reviewer approves or rejects. In the sprint: 77 policy sources approved, 114 rejected. Nothing serves from an unapproved page.
URL, authority tier, purpose, fetch method and last check. The registry is the asset the rest of the system runs on.
Every registered page and PDF is re-fetched daily, using conditional requests so unchanged pages are not downloaded again.
Content hash and timestamp first, because that is nearly free.
One question decides the cost: would a caseworker care about this change? Cosmetic changes are logged and stop there.
Material changes only. The reviewer sees the old text, the new text and the difference between them.
The record is republished with its new evidence and fetch time. Last run: 118 pages checked, 60 unchanged, 47 cosmetic, 2 material, 9 failed.
Static pages, APIs and PDFs. Milliseconds, no browser, negligible cost. Most sources end here.
Consular pages serve different content by country, so we fetch from where the traveller is.
A 200 is not success. We check for challenge pages, empty shells and truncated content.
Script-rendered pages run in a real browser until the promised content actually exists.
Only where a source is flagged. The slowest, most expensive rung, so it is used last.
Failures back off and retry higher up the ladder. Every fetch is validated before extraction.
Same-domain only, depth limits, and a log of every fetch: rung, egress, result, duration.
HTML, JSON from the content API, a PDF checklist, or a notice written as prose.
No model runs. Where the VFS content API carries a typed visa catalogue, the record is assembled directly by code, at zero token cost. This is how 1,338 corridors were built.
Only unstructured sources reach a model, at temperature zero, asked only for the fields the schema defines. About 1.3 cents per corridor.
Output is validated against a fixed schema by code. Anything outside the schema is dropped, not repaired by another model call.
Visa type, purpose, jurisdiction, requirements, fees, channel and the source quote behind each line, in the same shape for every corridor.
A single line the model proposes
The page or PDF actually fetched
The exact words found, with position
Deterministic, outside the model
Matching text found on the fetched vfs.global page, stored with the claim.
No supporting text in any fetched source, so the claim never reaches the knowledge base.
Of claims grounded in the crawled corridor set: 510 of 512. The 2 that failed were rejected automatically.
Everything fetched for the corridor set, as the pages actually arrive.
A 99.93% reduction before any model sees the content. Measured, not modelled.
The leading public extractor recovered 0 of 16 on the same inputs. Compression is only meaningful paired with recall.
Liechtenstein has no visa service of its own. Switzerland acts for it under a 1919 treaty. In the graph that is two hops, so the right centre and rules are returned without anyone writing a Liechtenstein rule.
The corridor is operated by BLS International, not VFS. The operator edge carries that, so the answer names the right operator instead of assuming VFS.
The relationships are resolved when the record is built and reviewed. At request time the system is reading a graph, not reasoning about treaties.
| Stage | Measured rate | At 400,000 pages | What it costs |
|---|---|---|---|
| Unchanged after a week | 94% | 376,000 pages | A conditional request. Effectively free. |
| Hash change per day | ~5.7% | ~22,800 pages | A cheap semantic gate, no extraction. |
| Material change per day | 0.12 to 0.23% | 480 to 920 pages | Re-extraction and one human review each. |
| Review load per day | ~2 min each | 16 to 31 hours | Two to four reviewers, modelled at full scale. |
Multiplying corridors by 1,000 multiplies cheap checks. It multiplies expensive work only by the share of pages that actually changed in a way a caseworker would care about.
Partner volume, seasonal peaks and bot traffic change your infrastructure cost, not your inference cost.
Response time is a property of the database and the cache, so it is predictable and does not move with model provider load.
Two identical questions return identical text, with the same quote and the same fetch time. Nothing is regenerated per request.
The crawler follows links inside the approved source’s own domain, to a set depth. It does not wander the open web.
A page is not re-fetched inside its window, which keeps polite load on government hosts and cuts cost.
Every API key has its own ceiling. Over the limit, the caller is slowed, not the system.
Used only where a source needs it, and recorded per fetch.
Who asked, what was fetched, from where, at which rung of the ladder, and what it cost.
| Destination | Origin passports with a full answer | Grounded | Source |
|---|---|---|---|
| United Kingdom GBR | 139 | 97% | VFS API |
| Canada CAN | 75 | 86% | VFS API |
| Austria AUT | 61 | 99% | Crawl + VFS API |
| Denmark DNK | 58 | 100% | Crawl + VFS API |
| Croatia HRV | 57 | 100% | Crawl + VFS API |
| Norway NOR | 55 | 100% | Crawl + VFS API |
| The Netherlands NLD | 53 | 100% | Crawl + VFS API |
| Ukraine UKR | 49 | 100% | VFS API |
| + 59 more destinations | 822corridors, from Sweden to Romania |
Australia, Azerbaijan, Georgia, Germany, Ireland, Israel, Lebanon, Thailand and Ukraine publish only a few nationalities, so most of their pairs still fall back to the reference dataset.
Brazil, South Korea and Montenegro. The page exists and was found, but is script-rendered. One hand-picked URL each resolves it.
Embassy and consulate sites found in ministry directories, resolved to their host country and queued. They are the next full-answer layer for passports other than Indian ones.
Consular-district rules exist for the crawled corridors. Answers built from the VFS content API still carry jurisdiction as unknown until the mission layer lands.
Discovery, fetch, extraction, grounding and review, end to end, on live government and operator sources.
510 of 512 claims carried verbatim evidence; the rest were dropped automatically.
16 of 16 probe facts recovered after reduction.
1.3 cents per model-read corridor, zero for structured ones, about $90 a year to run the VFS estate.
Daily checks at that volume need queueing, back-off and failure handling that a 31-corridor run never tests.
Discovery and ratification have to keep pace, which is a throughput problem, not a technique problem.
480 to 920 material changes a day needs a staffed queue with priority, not goodwill.
Consular-district rules exist for the crawled corridors; API-built answers still carry jurisdiction as unknown.
The sandbox could not be loaded here. It may be offline, or you may have no network connection.
Open chancery.360labs.tech/sandbox400,000 pages, re-checked. Held down by conditional requests and by climbing the fetch ladder only when forced.
Model tokens. Held down by never running a model on a structured source, and by 99.93% compression on the rest.
Human hours. Held down by spending them only on material change: 480 to 920 pages a day, not 400,000.
Fetching and serving the VFS estate: about $90 a year. Extraction: 1.3 cents per corridor that needs a model, and nothing where the source is already structured. Review: 2 material changes in the last 118-page run.
Infrastructure rises to about $32,300 a year at full global coverage, and review to two to four people. Both are set out with their assumptions on the next slide.
Used for most of the system. Registry, fetch ladder, validator, compression and serving. No model, so no token cost, no drift and no hallucination surface.
Used for extraction. The balance of cost, control and privacy: they run on Together AI or inside VFS’s own Bedrock, and the prompts and outputs stay VFS property.
Used only for hard reasoning, and never where VFS data would leave VFS’s control. They are the most capable and the most expensive, so they are the last resort.
Evaluated task by task, not assumed better. A smaller model earns its place only when it matches quality on that specific task at lower cost.
| Option | Cost basis | Data and IP | Verdict |
|---|---|---|---|
| Together AI, serverless | Per token | Prompts and outputs stay VFS’s | Use now. No commitment, already used by VFS. |
| AWS Bedrock, Mumbai | Per token | Inside VFS’s own account and region | Move here when volume or residency requires it. |
| Azure | Per token | Inside VFS’s tenant | Equivalent alternative if VFS standardises on Azure. |
| Dedicated GPU | Per hour | Full control | Only at sustained load, around 5M tokens an hour. |
| VFS-owned hardware | Capex | Full control | Possible, not the default for a bursty workload. |
| Hybrid | Mixed | Split by workload | Batch extraction on cheap capacity, serving in-region. |
Engineering, research and architecture. Initial source discovery and qualification. The knowledge model and pipelines. Platform and integrations. Initial infrastructure setup. 360 Labs fees are stated separately on the next page.
Source monitoring and re-fetching. Model usage on changed content only. Browser and residential egress where a source needs it. Storage, database and serving. Human review of material change. AI and ML operations and maintenance.
| Rented · serverless models and VPS | Owned · GPU cluster in VFS’s own racks | |
|---|---|---|
| Up front | $0 no commitment, no hardware | ~US$11,000 2-node cluster, through 360 Labs or a distribution partner |
| Running cost today | US$550 to 1,450 a month models, storage, serving, egress | Power, colocation and ops sized with your infrastructure team; hardware amortised over 3 years |
| At global coverage | ~$32,300 a year 39,800 corridors, 95% external sources | Cheaper per token, once utilisation is high |
| When it makes sense | Now, and until volume justifies otherwise. Serverless absorbs bursty crawling; you pay for what you use. | Only at sustained load, around 5M tokens an hour. Below that the cluster idles. |
Measured figures come from the corridors we already run. Owned-hardware running costs are modelled, because they depend on where VFS racks it.
| Option 1 · Build and handover | Option 2 · Build and maintain | |
|---|---|---|
| Build fee | $26,000 | $26,000 |
| What it includes | A 4-person pod for 2 months: AI-native engineering lead, AI-native PM, 2 full-stack AI engineers. Registry build, extraction and grounding, review tooling, monitoring, documentation and training. | The same team, scope and 2-month timeline. |
| After the build | Structured handover; your team runs it. | $2,500 a month for 2 full-stack AI engineers: maintenance, source growth, model updates and improvements. |
| Coverage | Corridors | 360 Labs fees | Infrastructure | Year one total |
|---|---|---|---|---|
| VFS estate | 1,826 | $26,000 | ~$90 | ~$26,090 |
| Priority expansion | 5,000 | $26,000 | ~$3,900 | ~$29,900 |
| Broader coverage | 10,000 | $26,000 | ~$7,900 | ~$33,900 |
| Global | 39,800 | $26,000 | ~$32,300 | ~$58,300 |
With Option 2, add $30,000 a year of maintenance. Human review is costed in reviewer hours on the governance page. Infrastructure is billed to VFS directly, at cost.
Nothing moves. The corpus, graph and registry are VFS’s data, not provider state.
Yes, on either axis, without rebuilding the intelligence layer.
Only to the inference endpoint VFS itself chooses, and never to a frontier model without that choice.
The knowledge base is served from VFS’s own environment, answering is a database read rather than inference, and it can be hosted in-region wherever residency requires it.
Fetch, extract, verify, classify change
Only material items enter the queue
Approve, reject, or send back
Published with the reviewer’s name
Source qualification, ambiguous information, conflicting sources, material change, and governance exceptions.
480 to 920 material changes a day at roughly two minutes each: two to four reviewers, working a prioritised queue. Staffed, not assumed.
Gold-set review with your consular team, audited fetch path, measured cost and latency.
Review: your reviewers, our queue, on the corridors you pick.
All 1,826 published corridors through the content API, with jurisdiction rules added.
Review: one reviewer, part-time, on material change only.
Harvest the 398 filed mission sites, close the thin policy pages, expand to priority corridors.
Review: two reviewers as discovery volume rises.
API for partners, internal tools, then handover or ongoing support.
Review: two to four reviewers at full scale.
The governance pattern this system uses: the model drafts, a person with a name signs off, and every decision is recorded against the record it changed.
Draft → review queue → named approval → published record
OCR extraction of transport and delivery documents, validation against the system of record, tax calculation, approval routing and generated invoices, now extending into their ERP.
Documents → extraction → validation → workflow
Every customer postcode mapped to the store that could actually serve it, the serviceable inventory selected, and prices validated against a live third-party source.
Location → source → availability → validation
You pick the corridors. We show the answers, the quotes and the sources behind them.
Name the people whose sign-off the system needs, on both sides.
Your consular team checks jurisdiction and district handling on their own corridors.
Turn the daily loop on for an agreed set and watch what it catches.
We walk your security team through the ladder, the egress and the logs.
Keep using the sandbox and tell us what an answer should look like for your channels.
Lightyear 360 Labs Private Limited · 360labs.ai