Whoever asks gets two or three paragraphs based only on the site's content, and every claim ends with its citation. The chip says which source the sentence came from and which section it leads to, without losing the conversation.
An answer with its citations: the chips lead to Vesting and BI & decisionAsk the résumé: it answers with what's on record and cites its source.
CV Viva's chat answers in Spanish or English about Henry Rincón's career, always in the third person and only with the site's content: the résumé, 25 in-depth documents, every Portfolio piece and the Methods publications. Every claim carries its citation to the section that backs it, and if the AI provider goes down, it keeps answering with local search.
An answer with its citations: the chips lead to Vesting and BI & decision«What are his weaknesses?»: the fixed text, with no sourcesWith no provider, local search shows the fragments that answerThe chat's gate: name, email and the Law 1581 notice
Chat features: One per chat feature documented in its user manual, matched section by section: 18, in six groups.Index fragments: The citable pieces the site's content is split into so the chat can search them: 1939 in Spanish and 1930 in English, counted when the site was built on October 31, 2026.Bank questions, per language: Questions written in a recruiter's words, the same 175 in each language. Per language, the bank also holds 15 unrelated ones, 1 that gets refused and 3 declared gaps.Switchable providers: The AI services chosen with a variable: Groq, Gemini, Azure with Microsoft Foundry, Anthropic and an OpenAI-compatible one. The tests' simulated one doesn't count.Tokens in fixed answers: By construction: the refusal, unrelated questions and leaving Vesting are answered on the server before a provider is chosen, so they never call the model.
01 · What changes when the résumé answers back
in-depth documents within reach: the site doesn't publish them, the chat reads and cites themmeasured
Besides the résumé, the Portfolio and Methods, the chat reads 25 in-depth documents Henry wrote and the site doesn't publish as pages: all 25 are approved and indexed in Spanish and English. A citation doesn't open the document: it says where the sentence came from (AF-09, for example) and leads to the section of the site that backs it.
- Today: You read whole pages to find one fact, and you can't tell where it comes from.With the chat: You ask in your own words, and every claim carries its number, which leads to the section that backs it.
- Today: Faced with what isn't written down, a model may fill the gap.With the chat: What isn't on record gets a fixed text, without calling the model or spending a token.
- Today: You ask why he left a job, and the answer may assume a motive.With the chat: “Why did he leave Vesting?” has a fixed answer: how the stage closed, with its citation and no added causes.
- Today: The apps and the methods live on other pages, far from the question.With the chat: A question about an app or a method brings its citation to the brochure, the sheet or the exact block.
- Today: If the AI service goes down or runs out of quota, the chat goes silent.With the chat: It switches to “Local search” and keeps showing the fragments that best answer.
- Today: You reload the page or switch language, and the conversation is lost.With the chat: It survives reloads, navigation and a language switch; it expires after 8 hours and you clear it with one click.
Who it is for, and why
For recruiters who want a specific answer (“what did he do at Vesting?”, “what does he know about Microsoft Fabric?”) without reading the whole site, and for anyone who wants to check it: every answer says where it comes from and takes you there. What isn't on record isn't answered, and the chat says so.
A résumé chat that doesn't make things up takes more than a good prompt. Here, what isn't on record (what he didn't do, what he doesn't know, salary, a credential he doesn't hold) gets a fixed text before it reaches the model, without spending a token; leaving Vesting has its own fixed answer with its citation, and the panel shows only the sources the answer cites. Behind it sit an index rebuilt on every publish and a bank of 175 outside questions per language that proves, on every change, that the content answers. And it never goes silent: if the provider fails, the same search runs in the browser.
02 · The map
Top to bottom, in the order a question happens: the visitor comes through the gate, asks and gets an answer with its source or a fixed text, and the chat stays up even if the provider fails or the page reloads. On the right, what runs through everything.
One chapter per group: what it solves, when it fits, how it works, its screens and its cards.
2.1 · Answers with the source in sight★ The starEvery claim carries its number, and every number leads to the section of the site that backs it. · 3 features
What it solves
You can't ask a résumé anything, and an answer without a source can't be checked. Here whoever asks gets two or three paragraphs in the third person, built only from the site's content, and every claim carries the number of its source, which leads to the section that backs it.
It fits if
- You recruit and want a specific answer without reading the whole site.
- You want to check an answer: the chip takes you to the section of the site that backs it.
- You ask about a Portfolio app or a method, and want its page or the exact block.
What it is not
- It doesn't speak as Henry: it speaks about him, always in the third person.
- It doesn't show sources it retrieved and didn't use: only the ones its answer cites.
How it works · From the question to the section that backs it
- Start · Chat with my résumé: A question about the career arrives
- Step · Chat with my résumé: Finds the four fragments that best answer
- Step · Chat with my résumé: Asks for two or three paragraphs in the third person, citing [n]
- Decision · Chat with my résumé: Does the answer cite any source?
- Step · Chat with my résumé: Shows one chip per cited source
- End: Answers with no chips
- Step · Chat with my résumé: The chip leads to the section, the piece or the Methods block
- End: Without losing the conversation
Its pieces 3
The chat talks about Henry, never as Henry. The in-depth content is in the first person because it is his voice, and the answer moves it to the third; a test flags the owner's voice if it slips in.
It runs through the whole app.The index adds every Portfolio piece and the Methods publications, block by block: a question about an app, an agent or a method brings its citation, which leads to the app's brochure, the piece's sheet or the exact block.
The answer cites the Profile, Vesting and a Methods publicationCards 4
What does a chip like “[1, 2] AF-09 · Vesting” say?
The numbers are the marks in the answer that come from that source. The code says where the sentence came from: AF for an in-depth document, CV for the résumé, APP for the apps list, FT for a Portfolio piece, and the publication's number for Methods (T4, for example). The last part says where it leads: the section of the site that backs the sentence.
Who is speaking in the chat?
The chat may talk about itself, but it always talks about Henry in the third person. His in-depth documents are in the first person because they are his voice, and the answer moves them to the third.
It may say “I only answer from what the résumé actually shows”: it talks about itself, not about Henry.
Always “Henry”, “he”, “his”; never “I” or “my” for his experience. A test flags the owner's voice if it slips in.
You ask about a Portfolio app: what wins, what the Portfolio publishes or Henry's documents?
If the question is about a piece, what the Portfolio publishes wins and the citation leads to its page; if it is about Henry, his document wins. In the search, Portfolio fragments weigh half as much as in-depth documents: they are evidence of one piece, and Henry's voice is his documents.
The answer uses two parts of the same document: do two chips show up?
No. One chip shows up with both numbers, like “[3, 4] AF-17 · BI & decisión”, and on hover it shows the titles of both parts. No number is lost, because the answer cites by number.
2.2 · Not on record, not answeredAbsences, salary or an unrelated question get a fixed text, without calling the model or spending a token. · 3 features
What it solves
A model asked about what isn't written down may fill the gap. Here absences, salary, availability or an unrelated topic get a fixed text before reaching the model, without spending a token, and leaving Vesting has its own fixed answer, with its citation.
It fits if
- You want to know whether he holds a credential and would rather the chat didn't guess.
- You ask why he left Vesting and want what's on record, with its citation.
- You need to talk about salary or availability: the chat points you to Contact.
What it is not
- It doesn't say Henry didn't do, doesn't know or doesn't have something: what isn't on record isn't answered, and it says so.
- The lists are a floor, not a ceiling: an unusual question can reach the model, and the prompt stops it there.
How it works · Before calling the model
- Start · Chat with my résumé: A question arrives
- Decision · Chat with my résumé: Does it ask for what isn't on record?
- Step · Chat with my résumé: Gives the fixed text, with no sources or tokens
- Decision · Chat with my résumé: Is it about leaving Vesting?
- Step · Chat with my résumé: Tells how the stage closed, with its citation
- Decision · Chat with my résumé: Is it unrelated to the career?
- Step · Chat with my résumé: Invites a question about the career
- End: Goes on to search and the model
Its pieces 3
“What has he never done?”, his weaknesses, a credential he doesn't hold, salary or availability all get the same fixed text, in the page's language, with no sources and without calling the model.
«What are his weaknesses?»: the fixed text, with no sources“Why did he leave Vesting?” has a fixed answer that tells how the stage closed, with its citation to the Career section. It adds no causes the content doesn't give and spends no tokens.
«Why did he leave Vesting?»: the fixed answer, with its citationThe weather, a joke, a recipe or a request for code get a friendly fixed answer that invites a question about the career, with no sources and without calling the model.
A joke gets no answer: the chat invites a question about the careerCards 4
What does “not on record” mean?
What the résumé doesn't say: what Henry didn't do, doesn't know or doesn't have, a credential that isn't listed, salary, availability or whether he travels. The content isn't the absolute truth and something may slip through, so the chat never claims an absence: it gives one fixed text, in the page's language, and invites you to write from Contact.
“What doesn't HackGuard do?”: does that get refused too?
No. A piece's limits are written in the Portfolio and get answered; what gets refused is the person's absences. And “what does he do when a role asks for something he hasn't used?” gets answered too: it is his method.
“What has he never done?”, his weaknesses, a credential he doesn't hold: fixed text, no sources.
“What doesn't HackGuard do?”: its limits are on record in its brochure, and the answer cites them.
You ask “Why did he leave Vesting?”: what does it answer?
A fixed answer, in the third person, that tells how the stage closed in January 2025, with its citation to the Career section. It adds no causes the content doesn't give, doesn't call the model and works in local search too. Two prompt rules in a row didn't get the model to answer only with what's on record; that's why this question no longer reaches it.
How does the chat know a question is unrelated?
In two ways: a closed list (the weather, a joke, a recipe, a request for code) and a strict search of the index that finds nothing. Either way it gives a fixed invitation to ask about the career, with no sources and without calling the model. Whatever slips through reaches the model, and the prompt declines it.
2.3 · It never goes silentIf the provider fails or runs out of quota, local search takes over; switching provider is switching a variable. · 3 features
What it solves
A chat that depends on a single AI service goes quiet when that service fails or runs out of quota. Here it switches to local search over the same index and says so; the provider is chosen with an environment variable, without touching code, and another variable turns the whole chat off.
It fits if
- You ask right when the provider fails and still want the fragments that answer.
- You're interested in how the AI provider is switched without touching the code.
- You're assessing how an AI chat is run: there is a switch that turns it all off.
What it is not
- Local search doesn't write: it shows the fragments as they are, trimmed and numbered.
- It doesn't jump from one provider to another by itself: if the chosen one fails, it switches to local search.
How it works · When the provider fails
- Start · Chat with my résumé: A question with content arrives
- Step · Chat with my résumé: Asks the provider for the answer, unless it's paused
- Decision · Chat with my résumé: Does the provider answer?
- End: Answers with its citations
- Step · Chat with my résumé: Counts the failure: three in a row pause it for a minute
- Step · Chat with my résumé: Shows “Local search” and the fragments that answer
- End: The panel logs the answer as local
Its pieces 3
If the provider goes down or runs out of quota, the chat switches to “Local search” and shows the fragments that best answer. After three failures in a row it stops trying for a minute.
With no provider, local search shows the fragments that answerGroq, Gemini, Azure with Microsoft Foundry (formerly Azure AI Foundry), Anthropic or a self-hosted OpenAI-compatible server: switching provider is switching an environment variable, without touching code.
It runs through the whole app.One variable turns the whole chat off: the button disappears from every page and the server route answers that it is off.
It runs through the whole app.Cards 4
What is “Local search”?
It is the fallback mode. When the AI provider fails, the browser downloads the same index the server uses and shows the four fragments that best answer, trimmed and numbered, with the “Local search” label in plain sight. It doesn't write: it shows the evidence as it is. The index is downloaded only at that moment.
Model answer or local search?
Both come from the same index and the same number of fragments; what changes is who puts the answer together.
Two or three paragraphs in the third person, with their [n] citations, built from the four fragments.
The same four fragments, unwritten, numbered and with their chips; the fixed texts still answer too.
The provider retires the model the chat uses: what happens?
Answers keep coming, in local search and with the label in plain sight. The automated tests can't see it, because they use a simulated provider; the owner notices it in the label or in the server logs, and fixes it by choosing another model with a variable, without touching code. It has happened once, and the chat didn't go silent.
The owner wants to turn the chat off right now: how?
He sets the switch variable to false and republishes: the button disappears from every page and the server route answers that the chat is off. To turn it back on, he deletes the variable or sets it to true.
2.4 · A gate and a quotaName, email and a code before the first question; a quota per person and a blocklist. · 4 features
What it solves
An open chat can be used up by anyone, and on the other side nobody knows who asked. Here the visitor leaves their name and email, accepts the Law 1581 notice and gets in with a code; each person has 20 questions every 24 hours, an email can be blocked and every conversation goes into a log only the owner reads.
It fits if
- You want Henry to know who is asking and to be able to follow up.
- Something fails and you want to tell him without leaving the chat.
- You want to know what is kept about you and how to ask for it to be deleted.
What it is not
- It isn't an account: there is no password; the code proves the email is yours and the session lasts 30 days in that browser.
- It isn't a public log: only the owner reads it, and no visitor can see it.
How it works · From the gate to the question
- Start · Chat with my résumé: The chat opens with no session
- Step · Chat with my résumé: Asks for name, email and the Law 1581 notice
- Decision · Chat with my résumé: Is the email on the blocklist?
- End: Sends no code
- Step · Chat with my résumé: Sends a code: ten minutes, five tries
- Decision · Chat with my résumé: Does the code match?
- Decision · Chat with my résumé: Any questions left today?
- End: Answers and logs the conversation
- End: Asks them to come back tomorrow
Its pieces 4
Before the first question, the visitor leaves their name and email, accepts the Law 1581 notice and receives a six-digit code valid for ten minutes. With it they get in and don't register again for 30 days.
The chat's gate: name, email and the Law 1581 noticeEvery question is logged with its answer, its sources and its mode (AI, fixed text or local search), and only the owner reads it. Anyone who wants it deleted asks from Contact.
It runs through the whole app.Each email gets 20 questions every 24 hours, counted in the log, and whoever hits the cap is asked to come back tomorrow. An email on the blocklist gets no code and can't ask.
The daily cap: you reached today's maximum of questionsIf something fails, “Something not working? Tell Henry” sends a report with an optional note. Inside the chat it doesn't ask for the email: the server takes it from the session.
«Tell Henry», opened inside the chat without asking for the emailCards 4
Why does the chat ask for a name and email?
So Henry knows who is asking and can follow up, and so someone who only comes to poke around doesn't use up everyone's chat. There are no passwords or accounts: the six-digit code proves the email belongs to whoever typed it, and with it the session lasts 30 days in that browser.
The daily cap or the per-minute rate?
They are two different brakes: the quota counts the person; the rate, the connection.
20 questions every 24 hours per email, counted in the log: it holds across every server and is exact.
10 questions per minute per connection, in each server's memory: it stops bursts, but it isn't exact.
You've already asked 20 questions today: what happens to the next one?
You see that you've reached today's question limit: come back tomorrow or write to Henry from Contact. It isn't a failure, so the chat doesn't switch to local search. Every question counts, including the ones that get a fixed text.
Something isn't working inside the chat: how do you report it?
With “Something not working? Tell Henry”, at the foot of the panel: you write what happened, if you want, and the report reaches him by email. Inside the chat it doesn't ask for your email: the server takes it from your session and never sends it back to the browser. If what fails is the gate itself, the same report is on the first step.
2.5 · The conversation is yoursIt survives reloads, navigation and a language switch; it expires after 8 hours and clears with one click. · 2 features
What it solves
A conversation that's lost on reload or a language switch forces you to start over. Here it stays in the browser when you reload, follow a link or switch language; it expires by itself 8 hours after the last message and “Delete conversation” removes it with one click. All of it, in Spanish and English.
It fits if
- You browse the site while you ask and don't want to lose the thread.
- You read in English: the panel, the fixed answers and the sources come out in the page's language.
- You're on a shared computer and want to delete what you asked.
What it is not
- “Delete conversation” doesn't delete the server log: that is requested from Contact.
- The browser keeps neither your name nor your email: only the questions and answers.
How it works · The life of a conversation
- Start · Chat with my résumé: An answer arrives
- Step · Chat with my résumé: Keeps it in this browser, without name or email
- Decision · Chat with my résumé: What happens next?
- Step · Chat with my résumé: Shows it again; the panel reopens if it was open
- Step · Chat with my résumé: Expires and clears itself
- Step · Chat with my résumé: Removes it from this browser
- End: The server log is kept
- End: Picks up where it left off
Its pieces 2
The conversation survives a page reload, following a link or switching language. It clears itself 8 hours after the last message, and “Delete conversation” removes it from that browser.
Conversation cleared from the browser; the server log is keptThe panel, the fixed answers and the sources come out in the page's language, and the refusal lists read both languages, whatever the page's language.
It runs through the whole app.Cards 3
Browser or server?
They are two copies with different purposes: the browser's is for you; the server's, so Henry knows who asked and what was answered.
Up to 40 messages with their sources, without name or email. It expires 8 hours after the last message and you clear it with one click.
Every question with its answer, sources, mode, your name and your email. Only the owner reads it, and it is deleted on request from Contact.
You open the site in a private window: does the chat work?
Yes, the same, but without memory: if the browser doesn't allow storage, the conversation doesn't survive a page reload.
You write in English on a Spanish page: what happens?
The chat answers in the page's language. The refusal and leaving-Vesting lists read both languages, so a question about salary written in English still gets the fixed text.
2.6 · Tested question by questionAn index rebuilt on every publish and a question bank that proves, in two languages, that the content answers. · 3 features
What it solves
A chat that searches by words only finds what the content says in the asker's words. Here the index is rebuilt on every publish, only from what's approved, and a bank of 175 questions per language, written in a recruiter's words, requires on every test run that each one brings the source that should answer it.
It fits if
- You're interested in how an AI chat is tested without calling a model on every change.
- You want to know where the answers come from: the résumé, 25 in-depth documents, the Portfolio and Methods.
- You wonder what happens to the questions the content doesn't answer yet.
What it is not
- Continuous integration never calls a real model: it uses a simulated one; the real one is measured separately, with the owner's permission.
- It isn't a search by meaning: it is lexical. If the content doesn't use the word, it won't find it, and the bank watches for that.
How it works · From an approved document to a tested answer
- Start · Owner: Writes or edits an in-depth document
- Decision · Owner: Does he mark it approved?
- End: Stays a draft, out of the index
- Decision · Chat with my résumé: Does it have its full English twin?
- End: Publishing stops and says what's missing
- Step · Chat with my résumé: Builds the index on publish
- Step · Chat with my résumé: The tests ask the 175 questions per language
- Decision · Chat with my résumé: Does each one bring its source?
- End: It ships, tested
Its pieces 3
Every publish rebuilds the index from the résumé, the in-depth documents, the Portfolio and Methods. A draft document doesn't go in, and an approved one requires its English twin.
It runs through the whole app.Every test run asks 175 questions per language, in a recruiter's words, and requires each one to bring the source that should answer it.
It runs through the whole app.Continuous integration uses a simulated provider. A separate pass, only on the owner's machine and with his permission, asks the guide's questions to the real model and marks every answer.
It runs through the whole app.Cards 4
Question bank or live pass?
The bank proves the content answers; the live pass, what the real model does with it.
175 questions per language on every test run, with a simulated provider: it checks that the search brings the source.
The guide's questions to the real model, only on the owner's machine and with his permission: it marks voice, absences, motives and sources.
A bank question turns red: what's done?
There are two honest ways out, and neither is loosening the test: if the content doesn't say it in the asker's words, the content is fixed; if another source answers it better, the expected source is fixed. Making up content so it passes is forbidden.
What goes into the chat's index?
The résumé, the apps list, the approved in-depth documents, every Portfolio piece and the Methods publications, block by block: 1939 fragments in Spanish and 1930 in English at the last count. A draft document doesn't go in, and an approved one requires its English twin.
What happens to the questions the content doesn't answer yet?
They are declared as gaps and never made up: today there are 3 per language (salary and availability to start or to travel), and each waits for something only Henry decides. Meanwhile they get the fixed text. The test counts them and caps them: the list can only shrink.
03 · From the question to the answer with its source
The whole path. No swimlanes: every box says who does it, and the ones with the screen icon show it.
- Start · Visitor: Wants to know something about the career
- Step · Visitor: Leaves name and email and accepts the notice
- Step · The chat: Sends a six-digit code
- Step · Visitor: Gets in with the code and asks
- Decision · The chat: Any quota left today?
- Step · The chat: Asks them to come back tomorrow
- End
- Decision · The chat: Is it about what's on record?
- Step · The chat: Gives a fixed text, spending no tokens
- Step · The chat: Finds the fragments that answer
- Decision · The provider: Does the provider answer?
- Step · The provider: Writes in the third person and cites [n]
- Step · The chat: Shows the fragments in local search
- Step · The chat: Shows only the sources the answer cites
- Step · The chat: Logs the question, the answer and its mode
- Decision · Visitor: Does the answer carry a citation?
- Step · Visitor: Follows the citation to the site's section
- End: Reaches the evidence
- End
Process notes
- 1Leaves name and email and accepts the notice. No code, no chat: it's valid for ten minutes and five tries, and the session lasts 30 days in that browser.
- 2Any quota left today?. 20 questions every 24 hours per email and 10 per minute per connection; a blocked email doesn't get in.
- 3Gives a fixed text, spending no tokens. Absences, credentials he doesn't hold, salary and unrelated topics: fixed text. Leaving Vesting carries its citation.
- 4Writes in the third person and cites [n]. Only with the four retrieved fragments, never speaking as Henry; up to 700 tokens and 30 seconds.
- 5Shows the fragments in local search. The same index runs in the browser: the chat doesn't go silent and says so with “Local search”.
- 6Logs the question, the answer and its mode. Who asked, what was answered, with which sources and in which mode: only the owner reads it.
04 · Built with method
Every figure says where it comes from. And what the app does not do is spelled out too.
The figures, with their source
Where does it come from?
One per chat feature documented in its user manual, matched section by section: 18, in six groups.
Where does it come from?
The citable pieces the site's content is split into so the chat can search them: 1939 in Spanish and 1930 in English, counted when the site was built on October 31, 2026.
Where does it come from?
The documents Henry wrote for the chat, beyond the résumé. All 25 are approved and indexed in both languages.
Where does it come from?
Questions written in a recruiter's words, the same 175 in each language. Per language, the bank also holds 15 unrelated ones, 1 that gets refused and 3 declared gaps.
Where does it come from?
End-to-end chat journeys in a real browser, 47 on desktop and 47 on mobile, with a simulated provider.
Where does it come from?
The AI services chosen with a variable: Groq, Gemini, Azure with Microsoft Foundry, Anthropic and an OpenAI-compatible one. The tests' simulated one doesn't count.
Where does it come from?
How many fragments the model receives, numbered, to build each answer and cite them. It's a number set in the code, and local search shows the same four.
Where does it come from?
How many questions each email can ask in 24 hours, counted in the log. The owner changes it with a variable, from 1 to 1000.
Where does it come from?
By construction: the refusal, unrelated questions and leaving Vesting are answered on the server before a provider is chosen, so they never call the model.
Where does it come from?
Declared by the manual: the production provider, Groq, runs on its free plan, which doesn't charge; it only cuts off when the quota runs out, and then the chat switches to local search.
What it is built with
- Vercel AI SDKthe streamed answer and the adapter that switches provider with a variable
- Groq y cuatro proveedores másthe production model on its free plan; Gemini, Azure with Microsoft Foundry, Anthropic or a self-hosted server plug in without touching code
- MiniSearchthe lexical index built on every publish, used by the server and by the browser's local search
- Supabasethe log of every conversation, the per-email quota and the blocklist
- Resendthe gate's six-digit code and the reports that reach the owner
- Zodvalidates every question (800 characters, 12 messages) and every index fragment before building it
- Next.jsthe chat's server route, with the session signed in a cookie and the prompt assembled only there
- Vitest y Playwrightthe tests with a simulated provider: continuous integration never calls a real model
Your data
- Before the first question, a name and email are requested and the Law 1581 notice is accepted.
- Every question is logged with its answer, its sources, its mode and the name and email of whoever asked; no visitor can read that log, only the owner, and it is deleted on request from Contact.
- The browser copy keeps neither the name nor the email, only the questions and answers, and it expires after 8 hours.
- The model only sees public fragments of the site.
What it never does
- Claims that Henry didn't do, doesn't know or doesn't have something.
- Speaks as if it were Henry: it always answers in the third person.
- Attributes motives or causes the résumé doesn't state.
- Shows a source its answer doesn't cite.
- Answers without the gate: no name, email and code, no chat.
Its limits, stated
- The search is lexical: if the content doesn't use the asker's word, it won't find it; the question bank watches for that.
- The refusal and leaving-Vesting lists are a floor, not a ceiling: an unusual question can reach the model.
- The per-minute rate lives in each server's memory and isn't exact; the daily quota is.
- The tests use a simulated provider: what the real model answers is measured separately, with the owner's permission.









