Analytics
Umami records page views, meaningful clicks, feature outcomes, referral sources, and browser or device information so I can understand how the portfolio is used. A random ID stored in your browser lets Umami connect visits from the same browser over time and is separate from the security cookie. Chat analytics records interaction details such as question and answer lengths, response time, source count, and feedback rating; it does not send question, answer, or written feedback text to Umami. Role Fit analytics records the input method and length, comparison outcome, score, and aggregate criteria counts, plus report preview and export outcomes. It does not include job text, links, titles, employer names, or report contents. Umami keeps analytics under its configured retention settings.
Contact messages and comments
The contact form stores your name, email, subject, message, and any phone number or organization you provide. I send these details to my private Gotify notification service so I can respond. Project comments store the name, email, and comment you submit. Comments are screened before publication. Your name and comment appear publicly on the project; your email is stored privately and is not shown.
AI chat
Questions, answers, and source links are saved in the portfolio database so the conversation can continue. The chat uses a self-hosted AI service to generate answers. Chat text is not included in routine application logs.
Role-fit checks
If you compare a job description with my experience, I save the text you submit or the link you provide, any job-page text I extract, and the comparison result in my portfolio database so I can review how the feature is used. These records have no automatic deletion schedule; I can delete them manually. The latest input and result are also kept in local storage in your browser so you can return to them. That browser copy stays until you clear it in the checker or start another check, which replaces it. Clearing the browser copy does not delete the server copy. Please use public job postings and avoid links containing access tokens or other private information.
Security and storage
The site receives your IP address and browser information with requests. I use the IP address, a separate security cookie, and short-lived identifiers to limit spam and protect the site. Security logs may contain IP and browser information and are deleted after 30 days; rate-limit records expire sooner. Contact messages, comments, chat conversations, and role-fit submissions have no automatic deletion schedule and may also remain in backups after deletion from the live database. Cookies restore chat for up to one year and support abuse prevention for 30 days. Browser storage holds the analytics ID, last useful page, latest role-fit input and result, chat rating markers, and one-year notice and introduction preferences. Session storage holds short-lived referral, contact draft, chat recovery, engagement prompt state for this tab, and a legacy chat fallback that can include saved turns. You can view and manage individual items saved in this browser. To ask about information you submitted, contact me.