APProjects/warn-act-notices
0
1<!doctype html><html lang="en"><head><meta charset="utf-8">2<!-- og:begin -->3<meta property="og:title" content="Terms of sale & privacy — WARN Feed">4<meta property="og:description" content="What WARN Feed collects at checkout (email, watch terms, a generated access code — and no credential of any kind), where it is stored, how long it is kept, how to delete it, and the refund terms.">5<meta property="og:url" content="https://approjects-warn-act-notices.static.hf.space/terms.html">6<meta property="og:image" content="https://approjects-warn-act-notices.static.hf.space/assets/og-card.png">7<meta name="twitter:card" content="summary_large_image">8<!-- og:end -->9 10<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">11 12<meta name="viewport" content="width=device-width,initial-scale=1">13<title>Terms of sale & privacy — WARN Feed</title>14<meta name="description" content="What WARN Feed collects at checkout (email, watch terms, a generated access code — and no credential of any kind), where it is stored, how long it is kept, how to delete it, and the refund terms.">15<link rel="canonical" href="https://approjects-warn-act-notices.static.hf.space/privacy.html">16<style>17:root{--accent:#b7410e;--ink:#1a1a1a;--line:#d0d7de;--ok:#1f7a3f}18body{font:16px/1.55 -apple-system,system-ui,sans-serif;max-width:760px;margin:2rem auto;padding:0 1rem;color:var(--ink)}19h1{font-size:1.6rem;margin-bottom:.2rem} h2{font-size:1.2rem;margin:2.4rem 0 .6rem}20a{color:#0757ba} .muted{color:#666;font-size:.9rem}21.brand{display:flex;align-items:center;gap:10px;margin:0 0 .6rem;font-weight:700;font-size:1rem;color:#444}22.card{background:#fff;border:1px solid var(--line);border-radius:10px;padding:12px 16px;margin:.8rem 0 1rem}23.warn{border-left:4px solid var(--accent);background:#fff7f2;padding:10px 14px;border-radius:6px}24table{border-collapse:collapse;width:100%;font-size:.92rem} td,th{padding:.4rem .6rem;border-bottom:1px solid #e5e5e5;text-align:left;vertical-align:top}25th{font-size:.8rem;text-transform:uppercase;letter-spacing:.03em;color:#555}26.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}27footer{margin:2.5rem 0;font-size:.85rem;color:#666}28@media (max-width:640px){body{margin:1rem auto} h1{font-size:1.35rem}}29</style></head><body>30<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>31<h1>Privacy & terms</h1>32<p class="muted">Last reviewed 2026-09-22. Plain language, no legalese. If anything here stops being true of the product, the page is wrong and we fix the page.</p>33 34<h2>Who you are dealing with</h2>35<div class="card">36<p><b>WARN Feed</b> is published by <b>APProjects</b>, an individual seller operating through37<a href="https://approj.gumroad.com">Gumroad</a> (seller name <i>approj</i>). Every payment is taken by38<b>Gumroad, Inc.</b> as the merchant of record: your card details go to Gumroad, never to us, and your39receipt, invoice and any refund come from Gumroad. We do not publish a personal legal name or postal address40on this site; if your purchasing process requires a named counterparty and a signed agreement, this product is41not a fit and you should not buy it.</p>42<p><b>Contact:</b> reply to your Gumroad receipt email (it reaches us through Gumroad), or open an issue at43<a href="https://github.com/APVentureEngine/warn-act-notices/issues/new/choose">github.com/APVentureEngine/warn-act-notices/issues</a>. Both are read on44every daily refresh.</p>45</div>46 47<h2>What we collect, and why</h2>48<p>Reading the free dataset, the site, the feeds and the GitHub repository collects <b>nothing</b>: no account,49no cookies, no sign-in, no third-party analytics script. The only two places you can hand us anything are below.</p>50<table>51<tr><th>When</th><th>What</th><th>Why we need it</th><th>Where it lives</th></tr>52<tr><td>Buying WARN Watch (paid or free trial) on Gumroad</td>53<td>Your email; the employer terms and state codes you type; the <b>access code</b> (the checkout box labelled54“Access code”, filled from the generator on our alert finder page). <b>No credential of yours, ever</b> — no password, no API key, no webhook URL.</td>55<td>Email + access code are stretched (PBKDF2-SHA-256, 600,000 rounds) into a lookup address that forwards to your alert page, whose own address is a random token. Terms and states are56what we match against each day's notices.</td>57<td>Gumroad's servers (the sale record), and a fulfilment file on the private server that runs the daily58refresh. Not in the public repository, not in the dataset, not on any public page.</td></tr>59<tr><td>Buying the historical archive on Gumroad</td>60<td>Your email; optionally a GitHub username.</td>61<td>Gumroad delivers the ZIP to the email. The GitHub username, if given, is used once to invite you to the62private mirror repository.</td>63<td>Gumroad's servers; the GitHub invitation.</td></tr>64<tr><td>The “stay in touch” box on the landing page</td>65<td>Your email.</td>66<td>So we can tell you when a new dataset or paid tier is published. (Data changes — a state added, a column67renamed — go out in the daily GitHub release instead, which needs no address.) It is Gumroad's follower68form, posted straight to Gumroad, and the list is shared across APProjects datasets; unsubscribe from any message.</td>69<td>Gumroad's servers only.</td></tr>70</table>71 72<h2 id="page-key">The access code is generated, not invented — read this before checkout</h2>73<div class="warn">74<p><b>The checkout box labelled “Access code” takes a code you generate on our alert finder page — 130 random bits from your own browser, so nobody who knows your email can guess it. It is not a password.</b> We store it75<b>readable</b>, on purpose, so that when you forget it we can reply to your receipt with the direct link to your76alert page. That means: <b>never type a password you use anywhere else.</b> Do not invent a word of your own either: the77<a href="alerts/index.html">generator on the finder page</a> makes one that no one can guess. It only protects one thing:78it stops someone who merely knows your79email address from computing your alert page's address.</p>80</div>81<p>Your alert page itself is a public-but-unguessable static page: its address is a random 128-bit token assigned82when your order is fulfilled — it is not derived from your email or your access code, so nobody who knows either83can compute it. <a href="alerts/index.html">The finder</a> turns email + access code into a separate lookup address in84your own browser (<code>PBKDF2-SHA-256("warnwatch|" + your email + "|" + your access code)</code>, 600,000 rounds,85nothing is sent anywhere) which forwards to the page; the code carries 130 random bits, which is what makes the lookup86unguessable. The page contains your watched terms and the87matching public WARN records — never your email or your key. Anyone you give the link to can read it; it is not88listed anywhere and search engines are told not to index it.</p>89 90<h2 id="webhooks">We do not take your webhook URL, and you should not give one to anybody</h2>91<p>A Slack, Discord or Teams incoming-webhook URL is a <b>live write credential</b>: anyone holding it can post into92that channel. Until 19 September 2026 our checkout had an optional box for one, and matches were posted to it. We93removed that box, and we no longer ask any customer for a credential of any kind — not at checkout, not94afterwards. Nothing was lost: every watch publishes its own private <b>RSS feed</b>. In Slack it is one command —95<code>/feed subscribe <your feed address></code>. In Microsoft Teams, use the channel's bundled <b>Workflows</b>96app → <i>Post to a channel when an RSS feed is published</i> (Microsoft retired the old Teams RSS connector in97May 2026); classic desktop Outlook has <i>RSS Feeds → Add a new RSS feed</i>.98Matches appear in that channel the day we parse them, with the credential staying entirely on your side99where you can revoke it without telling us. If you bought before that date and gave us a webhook URL, reply to your100receipt and we delete it from the fulfilment record on the next daily refresh.</p>101 102<h2 id="retention">How long we keep it, and how to delete it</h2>103<ul>104<li>Watch details (terms, states, access code — never a credential) are kept for the life of the watch — 30 days for the free105trial, 365 days for the paid year. When a watch ends we stop matching, but we keep106the entry and leave the alert page online (it says plainly that the watch has ended) so a renewal with the same email107lands at the same address. We do not delete it on our own; you ask, we delete.</li>108<li>Sale records on Gumroad are kept by Gumroad under109<a href="https://gumroad.com/privacy">Gumroad's privacy policy</a>; we cannot delete those for you, but you can110ask Gumroad directly.</li>111<li><b>To delete everything we hold, at any time:</b> reply to your receipt (or open a repo issue) and say112“delete my watch”. We remove your entry from the refresh server and unpublish your alert page at the next113daily rebuild, 12:15 UTC (within 24 hours), and confirm by reply.</li>114</ul>115 116<h2 id="traffic">What the site measures about visitors</h2>117<p>Each page loads one 1×1 image from the jsDelivr CDN. jsDelivr publishes an aggregate daily request count118for that file, which is how we know roughly how many times the site was opened. There is no cookie, no script,119no per-visitor record, and no data reaches us other than that public daily number. Gumroad's own checkout and120listing pages run Gumroad's analytics, which are Gumroad's, not ours.</p>121 122<h2 id="refunds">Refunds and what you are buying</h2>123<ul>124<li><b>WARN Watch ($49 / year, one payment, no auto-renew):</b> full refund within 14 days of purchase, no questions.125Alert 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>126<li><b>The historical archive:</b> free since 2026-09-07 — every notice back to 1988 is in the public files, so127there is nothing to refund and no account to close.</li>128<li><b>Free files, feeds and the free trial:</b> free, no card, no obligation, and they stay free.</li>129</ul>130 131<h2 id="continuity">If the daily rebuild stops — the continuity guarantee</h2>132<p>You would be buying a year of daily rebuilds from an automated publisher on a free static host.133Being nervous about that is reasonable, so here is exactly what happens if the rebuild stops, and134which part of it a script enforces rather than a promise.</p>135<ul>136<li><b>Check it yourself, any time.</b> Every build stamps <a href="feed.xml">feed.xml</a> with a137<code>lastBuildDate</code>. That is the same stamp our guard reads — there is no dashboard in between.</li>138<li><b>Ten silent days and your money comes back on its own.</b> <code>continuity_guard.py</code> runs on139every build; if the published stamp is older than ten days it refunds every unexpired paid watch — on top140of the 14-day window above — without you asking. <a href="https://github.com/APVentureEngine/warn-act-notices">The141code is public</a>, so read it before you trust it.</li>142<li><b>The honest limit.</b> That guard runs inside the build, so it covers the likely failure (this machine143alive, the site gone stale) and not the total one. If you ever see a <code>lastBuildDate</code> more than ten144days old, reply to your Gumroad receipt: we refund on sight, no argument, whatever the 14-day window says.</li>145<li><b>You keep the data either way.</b> The archive is CC BY 4.0 on GitHub and Hugging Face, with a dated146release for every build day. If this site vanished tomorrow, the files you paid to have watched are still147yours, still free and still mirrored.</li>148</ul>149 150<h2 id="data-terms">Terms of use for the data</h2>151<ul>152<li>The dataset is a normalised copy of <b>public records</b> published by state labor departments under the federal153WARN Act. It is released under <a href="https://creativecommons.org/licenses/by/4.0/">CC BY 4.0</a>; the collection154code is Apache-2.0 (<a href="https://github.com/biglocalnews/warn-scraper">biglocalnews/warn-scraper</a>) plus our155normalisation layer, MIT.</li>156<li>It is <b>best-effort</b>. State portals change, lag, and correct themselves; we re-collect daily and keep a157public <a href="index.html">coverage table</a>, but a row can be late, duplicated, amended or wrong. Verify any158row you will act on against the linked state source.</li>159<li>Nothing here is legal, financial, employment or investment advice, and we are not affiliated with any state agency160or the U.S. Department of Labor.</li>161<li>The dataset is about employers, not employees: it never carries worker names. Some state portals put a162contact person's name inside the employer address field; we strip those where our rules have caught them. If you find163one 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>164</ul>165 166<p style="margin-top:2.5rem"><a class="btn" href="index.html">← Back to WARN Feed</a></p>167<footer>Published by APProjects (Gumroad seller <i>approj</i>). Payments, receipts and invoices by Gumroad, Inc.168· <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>169· <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>170</footer>171<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">172<script id="fl">if(top!==self)for(var a of document.links)if(a.origin!==location.origin){a.target="_blank";a.rel="noopener"}</script>173</body></html>174 