Site policy
Privacy
What this site processes, why it is used, and the choices available to visitors.
Last updated: September 28, 2026Who operates this site
Manuel Parra operates th3nolo.com as a personal portfolio and Engineering Notes website. Questions or data requests can be sent to contact@th3nolo.com.
Why this data is used
- Deliver and secure the site.
- Answer assistant questions from public portfolio evidence.
- Verify an email when you request additional assistant access.
- Read and answer a work inquiry you send, and judge whether I can help.
- Understand aggregate traffic and diagnose problems.
- Measure visits and campaigns when you consent.
- Contact you later only when you give separate permission.
Data processed when you visit
Hosting and security
Providers that deliver and protect this site may process basic request information, including IP address, browser type, requested URL, timestamp, and security signals. This information is used to serve the site, prevent abuse, and diagnose failures.
Ask Manuel assistant
When you use the assistant, the server processes your question. The configured AI provider receives the question and bounded page or follow-up context to classify its intent and write an evidence-search query. When a model-written answer is necessary, the provider also receives the selected public portfolio evidence. The provider receives the short evidence-search query to create one semantic-search embedding. When Manuel rebuilds the search index, the provider receives the approved public corpus records. The resulting vectors and content hashes are stored as a versioned site artifact. Visitor questions and query vectors are not added to that index. Structured agent logs exclude the question, answer, source text, and vectors.
If you attach a job-description PDF, your browser extracts its readable text and sends that text with your question to the server and configured AI provider for the role comparison. The PDF file itself is not uploaded. Avoid attaching confidential job descriptions that you do not have permission to share.
To review failures and improve the assistant, the server keeps a sanitized copy of each question for up to 90 days. Email addresses, phone numbers, links, user handles, and long numbers are replaced with placeholders before storage. The record also holds the routing decision, the outcome, the cited source identifiers, and timing. It does not hold the answer text, evidence text, IP address, browser details, or cookies.
Your browser keeps up to twenty completed questions, answers, and local source links in per-tab session storage. After a PDF upload, it also keeps the extracted job-description text in that tab so you can ask follow-up questions about the role. This copy lets the chat survive page navigation and a page reload. Select "Clear" to remove it. The browser also removes it when you close the tab.
After the public request allowance is used, you may provide an email to receive a verification link and double the allowance for that browser. The server stores the email in encrypted form, keeps a one-way hash for lookup, and records the verification time and privacy-notice version. The signed access cookie is HTTP-only, lasts up to 180 days, and does not contain the email address. Permission to receive later messages about Manuel's work is optional and recorded separately from verification.
To enforce the request allowance across Vercel instances, the server derives a keyed one-way value from the network address Vercel forwards and stores an hourly counter in Neon. It does not store the raw network address in that table. Counters that have been inactive for 24 hours are removed during later requests.
Work inquiry form
When you send the form on the work inquiry page, the server saves your answers in Neon: who the inquiry is for, the kind of help, your message, name, email, and the optional company or team. It also saves the submission time, a receipt ID, and limited source context when it is available: the page on this site where you clicked the inquiry link, the host name of the site that sent you (for example linkedin.com), and campaign (utm_) values from the link. The record also holds the notification status (whether the email to me was sent), my review status for the inquiry (for example, not reviewed or qualified), and the time of our last message about it. The inquiry record does not include your IP address.
When you start the form from the assistant, the form shows an "Also sent from your chat" block and sends it with your answers unless you remove it. It can hold: why the assistant showed the button (for example a job comparison), the role title and company name it detected in a job posting, the comparison's result (strong, partial, or weak fit, the share of requirements with public evidence, and each requirement with met, partial, or missing), the CVs the assistant suggested, the names of the CVs and files you attached, and the chat language. It never holds the assistant's answers, a pasted posting, or the text of a file. The server saves this block with the inquiry and includes it in the notification email; it is kept and deleted together with the inquiry.
The server then emails the inquiry to my contact inbox at contact@th3nolo.com. The email includes your address, so I reply to you directly. If that email fails, the saved record still lets me find and answer your inquiry. Only I have access to inquiry records and notification emails; the providers below process them for me. Inquiry contents are not sent to an AI provider, and sending the form does not sign you up for newsletters or other messages.
To limit abuse, the server derives a keyed one-way value from the network address Vercel forwards and keeps a counter for each hour in Neon. It does not store the raw address. Counters inactive for two days are deleted when a later inquiry is submitted.
If you allowed optional cookies, the page sends Google Analytics a generate_lead event after your inquiry is saved. Like every Google Analytics event, it carries the page address, the referrer, and the Google Analytics browser identifier. The only inquiry data it adds are the two category codes you chose; it never contains your name, email, company, message, or receipt ID. Selecting the email link can send a contact_email_click event under the same rule. Selecting "Send an inquiry" under an assistant answer can send a chat_contact_click event with one code for why the button was shown and the two category codes the form starts with; an inquiry started there adds lead_source "chat" to generate_lead. Neither event contains your chat question, a role title, or a company name. That button keeps your recent questions in the chat, the names of the CVs and files you attached, the CVs the assistant suggested, and the role details you saw in the chat (for a job comparison: the role title, the company name, the fit result, and each requirement's result, not the posting itself) for up to 30 minutes in this tab's session storage so the form can start with them; the form deletes them when it reads them. They are never put in the page address. Please don't include confidential files or sensitive records in an inquiry.
WhatsApp links
The phone number on this site and in the CV PDFs opens WhatsApp with a short first message that says where you found the number. From the chat, that message can also include your question or the role you compared. The site sends nothing to WhatsApp: the message only leaves your device if you send it, and you can edit or delete it first. WhatsApp's own terms and privacy policy apply to the conversation.
Vercel Web Analytics
The site uses Vercel Web Analytics for aggregate traffic statistics. Vercel states that this service does not use third-party cookies or create a profile that follows a visitor across websites. It reports aggregate information such as pages, referrers, country, browser, device type, and operating system.
Google Analytics and Meta Pixel
Google tags load with storage consent denied by default. In that state, Google Analytics does not read or write analytics cookies, although Google Consent Mode may send cookieless measurement signals. If you allow optional cookies, Google Analytics and Meta Pixel may process browser or device identifiers, pages viewed, referrer and campaign information, and interaction events. Google Analytics may set a first-party identifier such as _ga; Meta may set identifiers such as _fbp.
Providers
The site uses Vercel, Neon, a self-hosted mail service, Google, Meta, and the configured AI provider. The mail service processes the recipient address and delivery metadata to send a verification link, and it sends work inquiry notifications to my contact inbox, which Google hosts. Neon stores the encrypted verification and consent records and the work inquiry records. These providers may process data in countries other than your own under their respective terms and privacy notices. I do not sell contact information submitted directly to me.
Your choices
You can decline optional cookies in the consent banner and reopen the banner through "Manage cookies" in the footer or on this page, or "Cookie settings" in the site menu. You can also use browser controls or provider opt-out tools to limit tracking. Withdrawing consent does not affect processing that occurred before withdrawal. You can verify an email without agreeing to later contact.
Your rights
Depending on where you live, you may have rights to request access, correction, deletion, restriction, portability, or objection, and to withdraw consent. Email contact@th3nolo.com to make a request. To delete a work inquiry, write from the address you used and include the receipt ID if you have it. I then delete the database record and the notification email.
Retention and changes
Email verification links expire after 30 minutes. Expired unverified records are removed during later access-flow requests. Verified access and contact-consent records are retained while the access program operates or until a valid deletion or withdrawal request is completed. I keep a work inquiry record and its notification email for up to 24 months after our last message about it, then delete both by hand; deletion is not automatic. If an inquiry leads to paid work, the related correspondence becomes a business record and is kept as long as the law requires. Hosting, analytics, advertising, email, database, and AI providers also retain data under their account settings and privacy terms. I may update this notice when the site or its providers change; the date above shows the latest revision.