Spaces:
Running
Running
Download privacy.html from APProjects/warn-act-notices: direct link, hf CLI and curl.
- Browser
- Download file 14.6 kB
-
https://huggingface.co/spaces/APProjects/warn-act-notices/resolve/main/privacy.html
- Command line
-
hf download hf://spaces/APProjects/warn-act-notices/privacy.html
-
curl -L -o privacy.html https://huggingface.co/spaces/APProjects/warn-act-notices/resolve/main/privacy.html
14.6 kB
| <html lang="en"><head><meta charset="utf-8"> | |
| <!-- og:begin --> | |
| <meta property="og:title" content="Privacy & terms β WARN Feed"> | |
| <meta property="og:description" content="What WARN Feed collects at checkout (email and watch terms β no code, no password, no credential of any kind), where it is stored, how long it is kept, how to delete it, and the refund terms."> | |
| <meta property="og:url" content="https://approjects-warn-act-notices.static.hf.space/privacy.html"> | |
| <meta property="og:image" content="https://approjects-warn-act-notices.static.hf.space/assets/og-card.png"> | |
| <meta name="twitter:card" content="summary_large_image"> | |
| <!-- og:end --> | |
| <meta http-equiv="Content-Security-Policy" content="default-src 'self'; script-src 'self' 'unsafe-inline'; style-src 'self' 'unsafe-inline'; img-src 'self' data: https://cdn.jsdelivr.net; connect-src 'self'; font-src 'self'; object-src 'none'; base-uri 'self'; form-action 'self' https://app.gumroad.com; upgrade-insecure-requests"> | |
| <meta name="viewport" content="width=device-width,initial-scale=1"> | |
| <title>Privacy & terms β WARN Feed</title> | |
| <meta name="description" content="What WARN Feed collects at checkout (email and watch terms β no code, no password, no credential of any kind), where it is stored, how long it is kept, how to delete it, and the refund terms."> | |
| <link rel="canonical" href="https://approjects-warn-act-notices.static.hf.space/privacy.html"> | |
| <style> | |
| :root{--accent:#b7410e;--ink:#1a1a1a;--line:#d0d7de;--ok:#1f7a3f} | |
| body{font:16px/1.55 -apple-system,system-ui,sans-serif;max-width:760px;margin:2rem auto;padding:0 1rem;color:var(--ink)} | |
| h1{font-size:1.6rem;margin-bottom:.2rem} h2{font-size:1.2rem;margin:2.4rem 0 .6rem} | |
| a{color:#0757ba} .muted{color:#666;font-size:.9rem} | |
| .brand{display:flex;align-items:center;gap:10px;margin:0 0 .6rem;font-weight:700;font-size:1rem;color:#444} | |
| .card{background:#fff;border:1px solid var(--line);border-radius:10px;padding:12px 16px;margin:.8rem 0 1rem} | |
| .warn{border-left:4px solid var(--accent);background:#fff7f2;padding:10px 14px;border-radius:6px} | |
| table{border-collapse:collapse;width:100%;font-size:.92rem} td,th{padding:.4rem .6rem;border-bottom:1px solid #e5e5e5;text-align:left;vertical-align:top} | |
| th{font-size:.8rem;text-transform:uppercase;letter-spacing:.03em;color:#555} | |
| .btn{display:inline-block;background:var(--accent);color:#fff;padding:12px 18px;border-radius:8px;text-decoration:none;font-weight:600;min-height:44px;box-sizing:border-box} | |
| footer{margin:2.5rem 0;font-size:.85rem;color:#666} | |
| @media (max-width:640px){body{margin:1rem auto} h1{font-size:1.35rem}} | |
| </style></head><body> | |
| <div class="brand"><svg width="26" height="26" viewBox="0 0 26 26" aria-hidden="true"><rect x="1" y="1" width="24" height="24" rx="5" fill="#b7410e"/><path d="M6 17l4-8 3 6 3-4 4 6" fill="none" stroke="#fff" stroke-width="2.2" stroke-linejoin="round"/></svg> <a href="index.html" style="color:inherit;text-decoration:none">WARN Feed</a></div> | |
| <h1>Privacy & terms</h1> | |
| <p class="muted">Last reviewed 2026-09-24. Plain language, no legalese. If anything here stops being true of the product, the page is wrong and we fix the page.</p> | |
| <h2>Who you are dealing with</h2> | |
| <div class="card"> | |
| <p><b>WARN Feed</b> is published by <b>APProjects</b>, an individual seller operating through | |
| <a href="https://approj.gumroad.com">Gumroad</a> (seller name <i>approj</i>). Every payment is taken by | |
| <b>Gumroad, Inc.</b> as the merchant of record: your card details go to Gumroad, never to us, and your | |
| receipt, invoice and any refund come from Gumroad. We do not publish a personal legal name or postal address | |
| on this site; if your purchasing process requires a named counterparty and a signed agreement, this product is | |
| not a fit and you should not buy it.</p> | |
| <p><b>Contact:</b> reply to your Gumroad receipt email (it reaches us through Gumroad), or open an issue at | |
| <a href="https://github.com/APVentureEngine/warn-act-notices/issues/new/choose">github.com/APVentureEngine/warn-act-notices/issues</a>. Both are read on | |
| every daily refresh.</p> | |
| </div> | |
| <h2>What we collect, and why</h2> | |
| <p>Reading the free dataset, the site, the feeds and the GitHub repository collects <b>nothing</b>: no account, | |
| no cookies, no sign-in, no third-party analytics script. The only two places you can hand us anything are below.</p> | |
| <table> | |
| <tr><th>When</th><th>What</th><th>Why we need it</th><th>Where it lives</th></tr> | |
| <tr><td>Buying WARN Watch (paid or free trial) on Gumroad</td> | |
| <td>Your email; the employer terms and state codes you type. That is the whole checkout. <b>No credential of yours, ever</b> — no password, no code to generate, no API key, no webhook URL.</td> | |
| <td>The email is Gumroad's receipt address and lets us answer a reply. Terms and states are | |
| what we match against each day's notices. Your order id, hashed in your own browser (SHA-256), is how the receipt link finds your alert page, whose own address is a random token.</td> | |
| <td>Gumroad's servers (the sale record), and a fulfilment file on the private server that runs the daily | |
| refresh. Not in the public repository, not in the dataset, not on any public page.</td></tr> | |
| <tr><td>Buying the historical archive on Gumroad</td> | |
| <td>Your email; optionally a GitHub username.</td> | |
| <td>Gumroad delivers the ZIP to the email. The GitHub username, if given, is used once to invite you to the | |
| private mirror repository.</td> | |
| <td>Gumroad's servers; the GitHub invitation.</td></tr> | |
| <tr><td>The “stay in touch” box on the landing page</td> | |
| <td>Your email.</td> | |
| <td>So we can tell you when a new dataset or paid tier is published. (Data changes — a state added, a column | |
| renamed — go out in the daily GitHub release instead, which needs no address.) It is Gumroad's follower | |
| form, posted straight to Gumroad, and the list is shared across APProjects datasets; unsubscribe from any message.</td> | |
| <td>Gumroad's servers only.</td></tr> | |
| </table> | |
| <h2 id="page-key">Nothing at checkout is a password β how you reach your alert page</h2> | |
| <div class="warn"> | |
| <p><b>Checkout asks for your employer list and, optionally, states. There is no code to generate, no password to pick, | |
| and nothing of yours to keep safe.</b> Until 24 September 2026 the checkout also required an “access code” | |
| generated on our finder page; that box is gone, because the receipt link already identifies your order and Gumroad's own | |
| library is the recovery route. (Orders placed before that date that carried a code: your old email + code lookup address | |
| still exists and still forwards to your page.)</p> | |
| </div> | |
| <p>Your alert page itself is a public-but-unguessable static page: its address is a random 128-bit token assigned | |
| when your order is fulfilled — it is not derived from your email, your order or your list, so nobody who knows | |
| any of those can compute it. The “Open my alert page” link on your Gumroad download page carries your | |
| order id; <a href="alerts/index.html">the finder</a> hashes it in your own browser | |
| (<code>SHA-256("warnwatch-sale|" + order id)</code>, nothing is sent anywhere) and forwards to the page. Lost the | |
| receipt? Sign in at <a href="https://app.gumroad.com/library" rel="noopener">app.gumroad.com/library</a> with the email | |
| you bought with and the same button is there. The page contains your watched terms and the | |
| matching public WARN records β never your email or your order id. Anyone you give the link to can read it; it is not | |
| listed anywhere and search engines are told not to index it.</p> | |
| <h2 id="webhooks">We do not take your webhook URL, and you should not give one to anybody</h2> | |
| <p>A Slack, Discord or Teams incoming-webhook URL is a <b>live write credential</b>: anyone holding it can post into | |
| that channel. Until 19 September 2026 our checkout had an optional box for one, and matches were posted to it. We | |
| removed that box, and we no longer ask any customer for a credential of any kind — not at checkout, not | |
| afterwards. Nothing was lost: every watch publishes its own private <b>RSS feed</b>. In Slack it is one command — | |
| <code>/feed subscribe <your feed address></code>. In Microsoft Teams, use the channel's bundled <b>Workflows</b> | |
| app → <i>Post to a channel when an RSS feed is published</i> (Microsoft retired the old Teams RSS connector in | |
| May 2026); classic desktop Outlook has <i>RSS Feeds → Add a new RSS feed</i>. | |
| Matches appear in that channel the day we parse them, with the credential staying entirely on your side | |
| where you can revoke it without telling us. If you bought before that date and gave us a webhook URL, reply to your | |
| receipt and we delete it from the fulfilment record on the next daily refresh.</p> | |
| <h2 id="retention">How long we keep it, and how to delete it</h2> | |
| <ul> | |
| <li>Watch details (terms, states β never a credential) are kept for the life of the watch β 30 days for the free | |
| trial, 365 days for the paid year. When a watch ends we stop matching, but we keep | |
| the entry and leave the alert page online (it says plainly that the watch has ended) so a renewal with the same email | |
| lands at the same address. We do not delete it on our own; you ask, we delete.</li> | |
| <li>Sale records on Gumroad are kept by Gumroad under | |
| <a href="https://gumroad.com/privacy">Gumroad's privacy policy</a>; we cannot delete those for you, but you can | |
| ask Gumroad directly.</li> | |
| <li><b>To delete everything we hold, at any time:</b> reply to your receipt (or open a repo issue) and say | |
| “delete my watch”. We remove your entry from the refresh server and unpublish your alert page at the next | |
| daily rebuild, 12:15 UTC (within 24 hours), and confirm by reply.</li> | |
| </ul> | |
| <h2 id="traffic">What the site measures about visitors</h2> | |
| <p>Each page loads one 1×1 image from the jsDelivr CDN. jsDelivr publishes an aggregate daily request count | |
| for that file, which is how we know roughly how many times the site was opened. There is no cookie, no script, | |
| no per-visitor record, and no data reaches us other than that public daily number. Gumroad's own checkout and | |
| listing pages run Gumroad's analytics, which are Gumroad's, not ours.</p> | |
| <h2 id="refunds">Refunds and what you are buying</h2> | |
| <ul> | |
| <li><b>WARN Watch ($49 / year, one payment, no auto-renew):</b> full refund within 14 days of purchase, no questions. | |
| Alert pages are built at the daily 12:15 UTC rebuild; if yours is not live within 24 hours of buying, ask and we refund immediately.</li> | |
| <li><b>The historical archive:</b> free since 2026-09-07 β every notice back to 1988 is in the public files, so | |
| there is nothing to refund and no account to close.</li> | |
| <li><b>Free files, feeds and the free trial:</b> free, no card, no obligation, and they stay free.</li> | |
| </ul> | |
| <h2 id="continuity">If the daily rebuild stops β the continuity guarantee</h2> | |
| <p>You would be buying a year of daily rebuilds from an automated publisher on a free static host. | |
| Being nervous about that is reasonable, so here is exactly what happens if the rebuild stops, and | |
| which part of it a script enforces rather than a promise.</p> | |
| <ul> | |
| <li><b>Check it yourself, any time.</b> Every build stamps <a href="feed.xml">feed.xml</a> with a | |
| <code>lastBuildDate</code>. That is the same stamp our guard reads β there is no dashboard in between.</li> | |
| <li><b>Ten silent days and your money comes back on its own.</b> <code>continuity_guard.py</code> runs on | |
| every build; if the published stamp is older than ten days it refunds every unexpired paid watch β on top | |
| of the 14-day window above β without you asking. <a href="https://github.com/APVentureEngine/warn-act-notices">The | |
| code is public</a>, so read it before you trust it.</li> | |
| <li><b>The honest limit.</b> That guard runs inside the build, so it covers the likely failure (this machine | |
| alive, the site gone stale) and not the total one. If you ever see a <code>lastBuildDate</code> more than ten | |
| days old, reply to your Gumroad receipt: we refund on sight, no argument, whatever the 14-day window says.</li> | |
| <li><b>You keep the data either way.</b> The archive is CC BY 4.0 on GitHub and Hugging Face, with a dated | |
| release for every build day. If this site vanished tomorrow, the files you paid to have watched are still | |
| yours, still free and still mirrored.</li> | |
| </ul> | |
| <h2 id="data-terms">Terms of use for the data</h2> | |
| <ul> | |
| <li>The dataset is a normalised copy of <b>public records</b> published by state labor departments under the federal | |
| WARN Act. It is released under <a href="https://creativecommons.org/licenses/by/4.0/">CC BY 4.0</a>; the collection | |
| code is Apache-2.0 (<a href="https://github.com/biglocalnews/warn-scraper">biglocalnews/warn-scraper</a>) plus our | |
| normalisation layer, MIT.</li> | |
| <li>It is <b>best-effort</b>. State portals change, lag, and correct themselves; we re-collect daily and keep a | |
| public <a href="index.html">coverage table</a>, but a row can be late, duplicated, amended or wrong. Verify any | |
| row you will act on against the linked state source.</li> | |
| <li>Nothing here is legal, financial, employment or investment advice, and we are not affiliated with any state agency | |
| or the U.S. Department of Labor.</li> | |
| <li>The dataset is about employers, not employees: it never carries worker names. Some state portals put a | |
| contact person's name inside the employer address field; we strip those where our rules have caught them. If you find | |
| one we missed, <a href="https://github.com/APVentureEngine/warn-act-notices/issues/new/choose">tell us</a> and it is removed on the next run.</li> | |
| </ul> | |
| <p style="margin-top:2.5rem"><a class="btn" href="index.html">← Back to WARN Feed</a></p> | |
| <footer>Published by APProjects (Gumroad seller <i>approj</i>). Payments, receipts and invoices by Gumroad, Inc. | |
| · <a href="https://github.com/APVentureEngine/warn-act-notices">GitHub</a> · <a href="https://github.com/APVentureEngine/warn-act-notices/issues/new/choose">contact</a> | |
| · <a href="watch.html">WARN Watch</a> · <a href="privacy.html">Privacy & terms</a><p class="beacon-note" style="font-size:.8rem;color:#777">Loads counted anonymously: one 1×1 CDN image, no cookies, no personal data (<a href="privacy.html">detail</a>).</p> | |
| </footer> | |
| <img src="https://cdn.jsdelivr.net/gh/APVentureEngine/warn-act-notices@main/assets/px.png" alt="" width="1" height="1" referrerpolicy="no-referrer" style="position:absolute;left:-9999px;top:0"> | |
| <script id="fl">if(top!==self)for(var a of document.links)if(a.origin!==location.origin){a.target="_blank";a.rel="noopener"}</script> | |
| </body></html> | |