EnrolleBot
EnrolleBot reads public activity pages (sports leagues, language schools, camps) to find when registration opens, so parents who use Enrolle get a reminder. A parent always confirms a date before it is used. It also reads the public program pages of local organizations (town recreation departments, libraries, YMCAs, leagues) to suggest programs to families nearby; each program is reviewed by a person first. And it reads public event calendars (the feeds and event pages organizations publish for others to read) to show families things to do nearby, with a link back to the organizer’s page.
- It visits sites a parent added and public program pages of local organizations, and only a few pages per visit (about 25 at most).
- It checks an activity’s site at most once a day, usually once a week or less; an organization’s program pages about once a week.
-
It asks only whether a page changed since its last visit (
If-None-Match,If-Modified-Since) and usually revisits just the few pages that had the answer, instead of the whole site. It may read your sitemap, at most once a day, to find registration pages. -
It waits at least a second between requests to a site, or as long as the
Crawl-delayin your robots.txt asks (up to a day; with a long delay it reads one page per visit rather than asking sooner). It makes at most a few hundred requests to a site per day, and pauses when a site answers 429 or 503 (as long asRetry-Afterasks, up to a day). - It keeps program facts (what, for whom, when, where, price) and the organization’s own contact, never individuals’ names or personal emails.
- Event calendars, program tables and plainly written dates are read by our own code. When code can’t find the dates, the page’s text is read by an AI service (Zalmox first, Google’s Gemini API as backup) that only picks out registration dates and program facts. Every fact kept must appear word for word on the page it came from.
- Training: we keep the text of pages read by an AI service, with what was found on them, for up to two years, to train a small page reader of our own that marks dates, prices and ages on a page. That reader doesn’t write text or answer questions, and the kept text is used only to train it.
- It never signs in, fills in forms or registers anyone.
-
Its requests are signed (Web Bot Auth,
Signature-Agent: "https://enrolle.io"), so you can check a request is really EnrolleBot; the public key is at/.well-known/http-message-signatures-directory. It never tries to get past a bot check. -
It follows
robots.txtfor everything it reads on its own: pages, sitemaps, event calendars and their feeds. To keep it out, addUser-agent: EnrolleBotandDisallow: /. To let it read your calendar when other bots are kept out, addUser-agent: EnrolleBotandAllow: /. If your robots.txt asks it to stay out, events it had from your calendar are removed. - One thing is fetched at a parent’s own request rather than by crawling: the calendar subscription link a parent copies from their team’s app (TeamSnap and the like), read every few hours the way a calendar app would.
- Questions or corrections: support@enrolle.io.