Build a full-stack application that retrieves vehicle data from a state DMV portal and helps users verify title ownership.
You work at a lending company that originates auto loans. Before funding a loan, your team needs to verify that the borrower actually owns the vehicle, that the vehicle matches what was described, and that there are no existing liens that would block a new one.
Today this is done manually: a loan officer receives a title or registration document from the borrower, then goes to the state DMV website, looks up the VIN, and eyeballs the two to check for problems. This is slow, error-prone, and doesn't scale.
Your job is to build a tool that automates this workflow.
The state of Wakanda has a public DMV portal where anyone can look up a vehicle by VIN and see its title record — owners, liens, registration status, vehicle details, and more.
This is the site your app will pull data from:
Public vehicle title search and lien filing portal. Go ahead and try searching a VIN to see what the data looks like.
A full-stack web application (frontend + backend) that lets a loan officer:
That's the core product. You decide the tech stack, the UI, the architecture, and the data model. We care about the end result and how you think through the problem.
You are encouraged to use AI tools (Cursor, Copilot, ChatGPT, etc.) throughout. We use them heavily ourselves.
A user enters a VIN into your app. Your backend visits the Wakanda DMV title search page, submits the VIN, and extracts structured data. At a minimum, you should capture:
A user uploads a photo or PDF of a vehicle title or registration document. Your app extracts key information from it: VIN, owner name, vehicle description, lien info, etc. You can use OCR or any other structured extraction approach.
We provide an OpenAI API key for your convenience (see below) — use it however you want. We also provide sample documents to test with.
This is the core value of the tool. After looking up the DMV record and extracting the document, display both sources and highlight discrepancies. The user should be able to quickly answer:
Design this for a non-technical loan officer. Think about what matters most, what should stand out, and how to make the answer obvious at a glance.
Lookup results and uploaded documents should be stored. A user should be able to see a history of previous lookups, come back to them later, and review the results without re-running the lookup. The choice of database is yours.
Here are some VINs in the Wakanda DMV database that cover different scenarios. Try them on the DMV search page to see what comes back.
| VIN | What to expect |
|---|---|
WKND1A2B3C4D5E0001 |
Clean record — single owner, no liens, active title |
WKND2F3G4H5J6K0002 |
Active lien (Wakanda National Bank) |
WKND3L4M5N6P7Q0003 |
Two owners joined by AND |
WKND4R5S6T7U8V0004 |
Two owners joined by OR, with a lien |
WKND5W6X7Y8Z9A0005 |
Transferred out of state — inactive title, expired registration |
WKND6B7C8D9E0F0006 |
SALVAGE brand on title |
WKND7G8H9J0K1L0007 |
Electronic title (e-title), active lien |
WKND8M9N0P1Q2R0008 |
Two active liens on one vehicle |
WKND9S0T1U2V3W0009 |
Expired registration, high-mileage vehicle |
WKND4T5U6V7W8X0014 |
Previous title record (prior owner history) |
There are 50 vehicles in the database total. These are just some good starting points — any VIN in the database will work.
Use these title and registration documents to test the document upload & extraction feature. They come in different formats (titles, registration cards) and different quality levels (clean PDFs, photos taken at an angle). Some documents have deliberate discrepancies vs. the DMV data — your app should surface these.
You don't need to test every single document. Pick a handful that exercise different scenarios.
| Document | VIN | Notes |
|---|---|---|
| Title — 2022 Toyota Camry | WKND1A2B3C4D5E0001 |
Clean title, single owner, no liens |
| Title — 2021 Honda Civic | WKND2F3G4H5J6K0002 |
Has a lien on record |
| Registration — 2020 Ford F-150 | WKND3L4M5N6P7Q0003 |
Registration card format, two owners (AND) |
| Title — 2023 Tesla Model 3 | WKND4R5S6T7U8V0004 |
Two owners (OR), has a lien |
| Title — 2019 BMW X5 | WKND5W6X7Y8Z9A0005 |
Older title document |
| Title — 2018 Nissan Altima | WKND6B7C8D9E0F0006 |
Has a title brand |
| Title — 2024 Hyundai Tucson | WKND7G8H9J0K1L0007 |
Photo capture of an e-title, has a lien |
| Registration — 2020 Chevy Silverado | WKND8M9N0P1Q2R0008 |
Registration card format |
| Registration — 2017 Subaru Outback | WKND9S0T1U2V3W0009 |
Expired registration |
| Title — 2015 Dodge Charger | WKND4T5U6V7W8X0014 |
Has prior title history in DMV |
| Title — 2025 Honda CR-V | WKND0Z1A2B3C4D0020 |
Brand new e-title with lien |
| Title — 2024 BMW iX | WKND5C6D7E8F9G0035 |
Photo capture, e-title |
| Registration — 2023 Tesla Model 3 | WKND4R5S6T7U8V0004 |
Photo of registration card (same VIN as title above) |
| Title — 2020 Chevy Silverado | WKND8M9N0P1Q2R0008 |
Full title document (same VIN as registration above) |
| Registration — 2021 Honda Civic | WKND2F3G4H5J6K0002 |
Photo of registration (same VIN as title above) |
Not all documents will match the DMV data perfectly. That's intentional — your app should identify the differences. Some VINs have both a title and a registration document.
We provide an OpenAI API key for your convenience. Use it for document extraction, data normalization, or anything else you find useful. There's a spending cap on the key, so be mindful of usage.
API Key: will be provided via email
Here's what we're paying attention to when we review your submission:
Please do not spend more than 5 hours on this, including any extra credit below. We respect your time. It's better to submit something focused and well-thought-out than to try to do everything.
You'll have 5 days from when you receive this assignment to submit.
@federicoz123 and @momo-ai as collaborators.
Everything below is completely optional. These will not count against you if you skip them. They're areas where you can go further if you have time and want to show more — but we'd much rather see the core requirements done well than a rushed attempt at these. All of this should still fit within the 5-hour time limit.
The Wakanda DMV has a lien filing page where you can submit a new lien against a vehicle. Add the ability for users to file a lien through your app — fill in the lienholder info, submit it to the DMV, and capture the confirmation/filing number.
The Republic of Sokovia is another state with its own vehicle registration portal. It has the same vehicles as Wakanda, but the site is significantly less reliable and less friendly to work with:
Support lookups against Sokovia in addition to Wakanda. This tests resilience, error handling, and data normalization.
Host your application somewhere publicly accessible. We'll reimburse up to $100 in cloud/infrastructure costs (include receipts if applicable). We're interested in how you architect the deployment — what services you choose, how you handle configuration, and how you think about separating components.
Questions? Reach out to your contact at Cardinal Gray. Good luck — we're excited to see what you build.