Skip to content
opportunora.
  • The loop
  • Product
  • Pricing
  • FAQ
  • Docs
  • Blog
Sign in Start free trial

Privacy

Privacy policy

Effective 6 September 2026 Last updated 19 October 2026

This page tells you what opportunora.com collects, who it goes to, how long it stays, and how to get it back or have it deleted. It also covers the Opportunora app at app.opportunora.com.

The short version

  • Nothing that tracks you loads until you allow it. Choose Only essentials and no analytics cookie is ever set, and no request reaches Google.
  • This website asks you for nothing. The app asks for your name, your email address and a workspace name when you sign up.
  • We don't sell your data, and we run no advertising or profiling on this site.
  • Ask us to show you what we hold, correct it, or delete it, and we'll do it within 30 days.

On this page

  1. 1. Who is responsible
  2. 2. What this policy covers
  3. 3. What the website collects
  4. 4. Cookies and local storage
  5. 5. What the app collects
  6. 6. Who we share it with
  7. 7. Transfers abroad
  8. 8. Why we're allowed to
  9. 9. How long we keep it
  10. 10. Your rights
  11. 11. Security
  12. 12. Children
  13. 13. Automated decisions
  14. 14. Changes to this policy
  15. 15. Contact

1. Who is responsible

The controller for the processing described here, in the sense of the Swiss Federal Act on Data Protection (FADP) and Article 4(7) of the EU General Data Protection Regulation (GDPR), is:

Fabian Ackeret
Fluhmattstrasse 6
5222 Umiken, Switzerland
Email: info@opportunora.com

We have not appointed a data protection officer, and we are not required to appoint one. Write to the address above with any question about this policy.

If you're in the EU or the EEA: we process very little personal data and do not monitor behaviour at scale, so we have not appointed a representative under Article 27 GDPR. If that changes, the representative's name and address appear here.

2. What this policy covers

This policy covers two things, and they are not the same:

  • The website at opportunora.com. Sections 3, 4, 6 and 7 describe it.
  • The Opportunora app at app.opportunora.com, the hosted service the website advertises. Section 5 describes it.

The websites the app generates for a business are not covered here. Each of those is published by the operator who commissioned it, under that operator's own privacy policy.

3. What the website collects

Server logs

This website runs on shared hosting at Hostinger. Like any web server, it records each request: the IP address, the date and time, the page or file requested, the HTTP status, the referring page, and the browser's user agent string. We read these to keep the site up and to spot abuse. We don't try to match them to a person, and we don't merge them with anything else on this page.

The app runs on different infrastructure, and nothing in this section applies to it. Section 5 says where it runs and what it logs.

The early access list

Until October 2026, a form on this site collected email addresses for early access. It asked for an address and nothing else. The addresses it collected are stored as contacts in Resend, so we can send one message saying the app is open. The form is gone, and the website no longer asks for an address.

While the form ran, it counted recent posts per IP address to slow down bots. It stored a SHA-1 hash of the IP address, never the plain address. If Resend refused a request, the server's PHP error log recorded the response, which could contain the address submitted. Section 9 says how long each of these is kept.

Google Analytics

We use Google Analytics 4 to count visits and see which sections people read. It doesn't load until you press "Allow analytics." Until then Google Consent Mode sits at denied for every storage type, the measurement script isn't in the page, and your browser makes no request to Google at all. That holds on every page of this site, this one included.

When you do allow it, Google Analytics processes:

  • a truncated IP address, because we switch on IP anonymisation;
  • the pages you open and roughly when;
  • your approximate location, derived from the truncated address, no finer than city level;
  • your browser, operating system, language and screen size;
  • the referring site, if any;
  • a randomly generated identifier stored in the cookies listed in section 4.

We keep advertising features off. ad_storage, ad_user_data and ad_personalization stay denied whatever you choose, so this site builds no advertising profile and sends Google no signal it could use for one. We don't use Google Signals, and we don't link the property to Google Ads.

You can change your mind at any time with the Cookie settings button in the footer of any page. Choosing Only essentials turns the measurement off and deletes the _ga cookies this site can reach.

Fonts, images and scripts

Every file the page needs comes from opportunora.com. The three typefaces are served from our own server rather than from Google Fonts, so no request reaches a third party before you've made a choice. The only file that ever comes from elsewhere is the Google tag described above, and it arrives only after you allow analytics.

What the website doesn't do

  • No advertising, retargeting, or conversion pixels. There is no Meta, LinkedIn, or TikTok tag on this site.
  • No session recording, heatmaps, or scroll tracking beyond what Google Analytics counts.
  • No sale or rental of personal data, and no sharing for cross-context behavioural advertising.
  • No embedded video, map, chat widget, or social button that would call a third party on load.
  • Until you allow analytics, the only server your browser talks to is ours.

4. Cookies and local storage

The site sets nothing at all before you answer the banner. Your answer is stored in your browser's local storage, not in a cookie, so it never travels with a request. Here's everything this site can put on your device:

Name Kind Purpose Expires
opportunora-cookie-consent-v1 Local storage Remembers whether you allowed or rejected analytics, so the banner asks once. Stays until you clear your browser's site data
_ga Cookie, first party Google Analytics. Distinguishes one browser from another. Set only after you allow analytics. 2 years
_ga_<property id> Cookie, first party Google Analytics. Keeps the session state. The name ends in the identifier of our Analytics property, which you can read in your browser. Set only after you allow analytics. 2 years

Choosing Only essentials, either at the banner or later through Cookie settings, deletes the two _ga cookies, stops Analytics from using storage, and keeps the measurement script from loading again on your next page view. The stored answer is the only thing left, and clearing your site data removes that too, which brings the banner back on your next visit.

Under Swiss law (Article 45c of the Telecommunications Act) analytics cookies need notice and the chance to refuse. Under EU law (Article 5(3) of the ePrivacy Directive, as implemented locally) they need consent. We ask for consent either way, which satisfies both.

5. What the app collects

This section describes the hosted Opportunora service at app.opportunora.com. It applies to you once you sign up for a workspace.

Where the app runs

The app and the workers that run its jobs are hosted on Railway, in a United States region (us-east4, Virginia). The database is Neon, also in the United States. Hostinger hosts this website only and holds nothing from your workspace.

Railway keeps the logs the app writes as it runs: the time, the route or job, the response status, how long the work took, and any error the code reports. Those entries can carry identifiers from your workspace, such as the job that ran. We read them to keep the service up and to fix faults.

The files your workspace keeps sit in a private Cloudflare R2 bucket in our own Cloudflare account: uploaded logos and photos, profile pictures, and the pictures a build copies from a business's existing website.

Your account

Anyone can sign up for the app. To sign up or sign in, you use an email address and password, a Google account, or a Microsoft account. We store your name, your email address, a hash of your password if you set one, and the identifier your Google or Microsoft account gives us. A session is an opaque token in an httpOnly cookie; the database holds only a SHA-256 hash of it. Sessions go idle after 30 days and expire outright after 90.

The sign-up form and the password reset form run Cloudflare Turnstile, which checks that a person rather than a script is filling them in. It reads your IP address and technical details about your browser.

Email the app sends

The app sends email through Resend, and only to the people who use it:

  • If you sign up with a password, a link that verifies your address. It works for 48 hours, and your trial credits unlock when you open it.
  • If you ask for a password reset, a link that works for an hour. You also get a notice whenever your password changes.
  • A support request or feature request you send from the app goes to our mailbox, info@opportunora.com, with your name, email address and workspace attached, so we can answer you.

Paying for a plan

Plans and top-ups are paid through Stripe Checkout, on our Stripe account. You enter your card at Stripe, and the full card number never reaches us. We receive your name, email address, billing address, any tax ID you enter, and the status of each payment. Stripe calculates the tax due from your billing address.

What you put in your workspace

Your workspace holds the work you do: the businesses you discover or add, the websites the app generates, your editor conversations, your invoices, time entries, packages, uploaded logos and photos, and an audit log of who changed what. We store this to run the service for you. We don't mine it, sell it, or use it to train models.

Data about businesses you discover

A discovery run reads publicly reachable web pages and saves what it finds about a business: the business name, a contact name, an email address, a phone number, a postal address, its website, its trade, and the URL of the page each of those facts came from. When the business is a sole trader or the contact is a named person, that is personal data about someone who never dealt with us.

Who is responsible for that data: you are. For everything in your workspace, including leads and your own clients, you're the controller and we're the processor. You decide which towns to search, which leads to keep, and who to contact. You're the one who owes those people the information notice, and you're the one they can ask for deletion. We process it on your instructions, we don't use it for our own purposes, and we hand it back or delete it when you tell us to. Section 7 of the terms spells out what that means for you in practice. A data processing agreement is available on request and is part of the paid service.

What the app sends to model vendors

Discovery, website generation and the editor all call a large language model. The text those calls carry — search results, page contents, the business's details, your editor instructions — goes to the model vendor we use for that step: Anthropic, OpenAI or OpenRouter. Web searches go to our search backend. Section 6 lists them.

What the app never does

  • It sends no email on your behalf. It never emails your leads or your clients, and it has no outreach feature. The only email it sends is the kind listed above.
  • It publishes nothing by itself. A generated site waits as a preview until you click Publish.
  • It never handles a card number. Your plan is paid at Stripe, and invoices to your clients are settled through your own payment account or your own bank details.

Logs and diagnostics

Each finished discovery run writes a log with what it found, which pages it read, how many tokens it burned, and what that cost. We read these to price the product and to debug failed runs. Every model call also lands in your workspace's credit ledger with its source, size and cost.

6. Who we share it with

We don't sell personal data and we don't disclose it for anyone else's marketing. We use the service providers below, each under a contract that binds it to process data only on our instructions. The first group serves this website and our mailbox. The second group serves the app.

The website

Provider What it does What it receives Where
Hostinger Hosts this website and its CDN Every request, so IP address, page, time, user agent European Union
Resend Holds the early access list the website collected until October 2026 The email addresses on that list United States
Microsoft (Microsoft 365) Hosts our mailbox, info@opportunora.com Email you send us, including support and feature requests from the app Europe
Google Ireland / Google LLC Google Analytics 4, after you allow it Truncated IP address, page views, device and browser data EU and United States

The app

Provider What it does What it receives Where
Railway Runs the app and the workers behind its jobs Everything your workspace sends through the app, and the logs it writes United States (us-east4, Virginia)
Neon Runs the PostgreSQL database Everything in your workspace United States (us-east-2)
Anthropic, OpenAI, OpenRouter The models behind discovery, generation and the editor The prompts and page text each call carries United States
Brave Search, Serper, or a SearXNG instance Web search for discovery and research The search queries the agent writes United States, or wherever you host SearXNG
Komoot (Photon) Suggests places in the "Default region" field What you type into that field, and your IP address Germany
Google, Microsoft Sign-in, if you use it The sign-in request; they return your name, email and account id EU and United States
Resend Sends the app's email: address checks, password links and notices, and your support requests to us Your name and email address, the message, and what you write in a support request United States; mail for opportunora.com leaves from Ireland
Cloudflare R2, in our account Stores the files your workspace keeps Uploaded logos and photos, profile pictures, and pictures copied from a business's website Cloudflare's network
Cloudflare Turnstile Checks that the sign-up and password reset forms are filled in by a person Your IP address and technical details about your browser Global edge network
Stripe, in our account Takes payment for plans and top-ups through Stripe Checkout, and calculates tax Your name, email address, billing address, any tax ID you enter, and your card details United States and EU
Cloudflare, in your account Hosts the sites you publish, using the account you connect The site files you approve, and your API token Global edge network
Stripe, PayPal, in your account Collects invoice payments, using the account you connect Invoice amounts and payment status United States and EU

We choose every provider in these tables except two: the Cloudflare account that hosts your published sites, and the Stripe or PayPal account your invoices use. You connect those, and for them the provider's contract is with you, not with us.

Beyond that, we disclose personal data only where the law requires it, to a court or an authority acting within its powers, or where we have to in order to establish or defend a legal claim. If our business is ever sold or merged, data may pass to the buyer under the same commitments, and we'll say so here first.

7. Transfers abroad

Several of the providers above are in the United States, so your data is processed outside Switzerland and the EEA. The United States is not on the Swiss Federal Council's list of countries with adequate protection except for recipients certified under the Swiss–US Data Privacy Framework.

Where a transfer needs a safeguard, we rely on:

  • the recipient's certification under the EU–US or Swiss–US Data Privacy Framework, where it holds one; or
  • the European Commission's Standard Contractual Clauses, with the amendments the Swiss Federal Data Protection and Information Commissioner (FDPIC) requires for transfers out of Switzerland, together with a transfer impact assessment.

We checked each provider against the official Data Privacy Framework list on 19 October 2026. This is the safeguard each one relies on:

Provider Safeguard
Google, Railway, Microsoft, Cloudflare, Stripe Certified under the Swiss–US and EU–US Data Privacy Framework
Neon Certified under the Swiss–US and EU–US Data Privacy Framework through its parent company, Databricks
Resend Certified under the EU–US Data Privacy Framework only. For data from Switzerland, the Standard Contractual Clauses with the Swiss amendments in Resend's data processing agreement
Anthropic, OpenRouter The Standard Contractual Clauses with the Swiss amendments, in each one's data processing agreement
OpenAI, Brave Search, Serper Not used by the hosted service today. Before we use one, we'll name its safeguard here
Accounts you connect: Cloudflare, Stripe, PayPal Your own contract with that provider. Cloudflare and Stripe are certified under the Data Privacy Framework; PayPal's user agreement uses the Standard Contractual Clauses

Hostinger and Komoot process data in the European Union, which Switzerland recognises as providing adequate protection, so those transfers need no further safeguard.

To ask which safeguard applies to a given provider, or for a copy of the clauses, write to us at the address in section 15.

8. Why we're allowed to

Swiss law lets a private controller process personal data as long as it does so lawfully, in good faith and proportionately. It needs a justification only where processing goes against a person's wishes or where it involves sensitive data. We handle no sensitive data. Where the GDPR also applies, because you're in the EEA, these are the legal bases:

Processing Legal basis under the GDPR
Serving the site and keeping server logs Legitimate interests, Article 6(1)(f): running a site that works and isn't abused
Keeping the early access list, and sending it one message that the app is open Consent, Article 6(1)(a), given by submitting the form; withdrawable at any time
Google Analytics Consent, Article 6(1)(a), given at the banner; withdrawable at any time
Running your workspace, emailing you its account links, and taking payment for your plan Performance of a contract, Article 6(1)(b)
Answering your email and support requests Legitimate interests, Article 6(1)(f): answering the people who write to us, or the contract where the request is about your workspace
Keeping invoices and accounting records Legal obligation, Article 6(1)(c), and Article 958f of the Swiss Code of Obligations
Security, abuse prevention and rate limiting Legitimate interests, Article 6(1)(f): protecting the service

Withdrawing consent stops the processing from that point. It doesn't make what happened before it unlawful.

9. How long we keep it

What How long
Early access email address Until you unsubscribe or ask us to delete it, and in any case no more than 24 months after the hosted service opened if you never take a workspace
Server logs, for the website and for the app For as long as Hostinger and Railway keep them on their own rotation. We take no copy, keep no archive, and read them only to keep things running
PHP error log entries from the early access form Deleted when we've fixed the fault, and no later than 90 days
Rate-limit files from the early access form Timestamps stop counting after one hour; the file goes with the server's temporary-file cleanup
Google Analytics event data Between 2 and 14 months, the two windows Google offers, as set on the property. Google then deletes the event-level data and keeps only aggregate counts
Your cookie choice Until you clear your browser's site data
Workspace contents For as long as your workspace is open, then 30 days after it closes, then deleted
Email you send us, including support and feature requests For as long as we need it to answer you and follow up, then deleted, unless it belongs with accounting records
Backups Until the backup holding it rotates out. We never restore a backup to bring back data you asked us to delete
Invoices and accounting records 10 years, as Swiss law requires

When a retention period ends, we delete the data or anonymise it so that it can no longer be traced to a person. A record we must keep for accounting is blocked from other use rather than deleted early.

10. Your rights

Under the FADP, and under the GDPR where it applies to you, you can:

  • Ask what we hold. We'll send you a copy of your personal data and tell you where it came from.
  • Correct it. If something is wrong or out of date, tell us and we'll fix it.
  • Have it deleted. We'll delete it unless the law requires us to keep it, and we'll say which law if so.
  • Take it with you. We'll hand over the data you gave us in a common machine-readable format.
  • Object. You can object to processing we base on legitimate interests, and we'll stop unless we have compelling grounds that override yours.
  • Restrict it. Under the GDPR you can ask us to hold the data but stop using it while a dispute is resolved.
  • Withdraw consent. Use the unsubscribe link in any email we send, press Cookie settings in the footer, or write to us.

Write to info@opportunora.com. We answer within 30 days. Exercising a right is free; we may charge only where a request is manifestly excessive or repetitive, and we'll tell you before we do. We may ask for something that confirms it's really you, and we'll ask for no more than we need.

If you're not satisfied with our answer, you can complain to a supervisory authority. In Switzerland that's the Federal Data Protection and Information Commissioner (edoeb.admin.ch). In the EEA it's the authority where you live, work, or where the problem happened. You can also go to court.

11. Security

These are the measures actually in place, not a wish list:

  • Every page travels over HTTPS, and HSTS tells your browser never to try plain HTTP.
  • The site sends X-Content-Type-Options, X-Frame-Options and a Referrer-Policy that stops the full URL leaking to other sites.
  • In the app, passwords are hashed, session tokens are stored as SHA-256 hashes, and third-party credentials such as your Cloudflare token are encrypted with a key held outside the database.
  • Access to production data is limited to the people who need it to run the service.

No system is perfectly secure. If we ever have a breach that puts you at high risk, we'll notify the FDPIC and, where the GDPR applies, the relevant authority, and we'll tell you directly.

Found a vulnerability? Write to info@opportunora.com before you publish it, and we'll work with you.

12. Children

This site and this service are for people running a business. They aren't aimed at children, and we don't knowingly collect data from anyone under 16. If you think a child has given us data, write to us and we'll delete it.

13. Automated decisions

We make no automated decision that produces a legal effect for you or similarly significantly affects you, and we do no profiling on this website.

The app scores discovered businesses for how weak their web presence looks, and the scores come out of a model. Those scores rank a list for the operator to read. They decide nothing on their own, no one is refused anything because of one, and an operator reviews every lead before acting.

14. Changes to this policy

We update this page when what we do changes: a new provider, a new feature, a different retention period. The date at the top always says when it last changed. If a change materially affects you, and we have your address, we'll tell you before it takes effect. Keep using the site after that and you accept the current version.

15. Contact

For anything on this page, including a request to see, correct, or delete your data:

Fabian Ackeret
Fluhmattstrasse 6
5222 Umiken, Switzerland
Email: info@opportunora.com

Our terms of service cover the rest of the relationship.

opportunora.

Find local businesses. Build their website. Publish. Invoice. Repeat.

The page

  • The loop
  • Product
  • Docs
  • Blog

Get started

  • Pricing
  • FAQ
  • Start free trial
  • Sign in

Legal

  • Privacy
  • Terms
© 2026 opportunora

Allow analytics cookies?

Google Analytics shows us how people use this page. Choose Only essentials and it never loads; the page then stores nothing but your choice.