-
Notifications
You must be signed in to change notification settings - Fork 3
Expand file tree
/
Copy pathprivacy.html
More file actions
360 lines (342 loc) · 27 KB
/
privacy.html
File metadata and controls
360 lines (342 loc) · 27 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>Privacy Policy — Offlyn Apply</title>
<meta name="description" content="Offlyn Apply privacy policy. All your data stays on your device. No servers, no tracking, no data collection." />
<link rel="icon" href="assets/icon.png" type="image/png" />
<link rel="preconnect" href="https://fonts.googleapis.com" />
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin />
<link href="https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700;800&display=swap" rel="stylesheet" />
<script src="https://cdn.tailwindcss.com"></script>
<script>
tailwind.config = {
theme: {
extend: {
colors: {
navy: { DEFAULT: '#1a2536', light: '#243044', dark: '#111827' },
brand: { DEFAULT: '#22c55e', dark: '#16a34a', light: '#dcfce7' },
},
fontFamily: { sans: ['Inter', 'sans-serif'] },
}
}
}
</script>
<style>
html { scroll-behavior: smooth; }
.hero-gradient { background: linear-gradient(135deg, #111827 0%, #1a2536 50%, #14532d 100%); }
</style>
</head>
<body class="font-sans bg-white text-gray-900 antialiased">
<!-- ======== NAV ======== -->
<header class="sticky top-0 z-50 bg-white/95 backdrop-blur border-b border-gray-200">
<div class="max-w-7xl mx-auto px-6 py-3 flex items-center justify-between">
<a href="index.html" class="flex items-center gap-2">
<img src="assets/logo.png" alt="Offlyn Apply" class="h-9" />
</a>
<nav class="hidden md:flex items-center gap-8 text-sm font-medium text-gray-600">
<a href="index.html#features" class="hover:text-gray-900 transition-colors">Features</a>
<a href="index.html#screenshots" class="hover:text-gray-900 transition-colors">Screenshots</a>
<a href="index.html#how-it-works" class="hover:text-gray-900 transition-colors">How It Works</a>
<a href="index.html#privacy" class="hover:text-gray-900 transition-colors">Privacy</a>
<a href="index.html#open-source" class="hover:text-gray-900 transition-colors">Open Source</a>
</nav>
<a href="https://github.com/joelnishanth/offlyn-apply" target="_blank" rel="noopener"
class="flex items-center gap-2 bg-navy text-white text-sm font-semibold px-4 py-2 rounded-lg hover:bg-navy-light transition-colors">
<svg class="w-4 h-4" fill="currentColor" viewBox="0 0 24 24"><path d="M12 0C5.37 0 0 5.37 0 12c0 5.31 3.435 9.795 8.205 11.385.6.105.825-.255.825-.57 0-.285-.015-1.23-.015-2.235-3.015.555-3.795-.735-4.035-1.41-.135-.345-.72-1.41-1.23-1.695-.42-.225-1.02-.78-.015-.795.945-.015 1.62.87 1.845 1.23 1.08 1.815 2.805 1.305 3.495.99.105-.78.42-1.305.765-1.605-2.67-.3-5.46-1.335-5.46-5.925 0-1.305.465-2.385 1.23-3.225-.12-.3-.54-1.53.12-3.18 0 0 1.005-.315 3.3 1.23.96-.27 1.98-.405 3-.405s2.04.135 3 .405c2.295-1.56 3.3-1.23 3.3-1.23.66 1.65.24 2.88.12 3.18.765.84 1.23 1.905 1.23 3.225 0 4.605-2.805 5.625-5.475 5.925.435.375.81 1.095.81 2.22 0 1.605-.015 2.895-.015 3.3 0 .315.225.69.825.57A12.02 12.02 0 0 0 24 12c0-6.63-5.37-12-12-12z"/></svg>
Star on GitHub
</a>
</div>
</header>
<!-- ======== HERO ======== -->
<section class="hero-gradient text-white py-16 md:py-20">
<div class="max-w-4xl mx-auto px-6 text-center">
<div class="inline-flex items-center gap-2 bg-brand/20 text-brand border border-brand/30 text-xs font-semibold px-3 py-1.5 rounded-full mb-6">
<svg class="w-3.5 h-3.5" fill="none" stroke="currentColor" viewBox="0 0 24 24"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M9 12l2 2 4-4m5.618-4.016A11.955 11.955 0 0112 2.944a11.955 11.955 0 01-8.618 3.04A12.02 12.02 0 003 9c0 5.591 3.824 10.29 9 11.622 5.176-1.332 9-6.03 9-11.622 0-1.042-.133-2.052-.382-3.016z"/></svg>
Privacy First
</div>
<h1 class="text-4xl md:text-5xl font-extrabold mb-4 tracking-tight">Privacy Policy</h1>
<p class="text-lg text-gray-300 max-w-xl mx-auto">
Short version: we collect nothing. Your data lives on your device and never leaves it.
</p>
<p class="text-sm text-gray-500 mt-4">Effective date: March 4, 2026 · Last updated: March 4, 2026</p>
</div>
</section>
<!-- ======== TL;DR BANNER ======== -->
<section class="bg-brand/10 border-y border-brand/20 py-10">
<div class="max-w-4xl mx-auto px-6">
<h2 class="text-xl font-bold text-gray-900 mb-5 flex items-center gap-2">
<svg class="w-5 h-5 text-brand" fill="none" stroke="currentColor" viewBox="0 0 24 24"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M13 16h-1v-4h-1m1-4h.01M21 12a9 9 0 11-18 0 9 9 0 0118 0z"/></svg>
TL;DR
</h2>
<div class="grid sm:grid-cols-2 md:grid-cols-4 gap-4">
<div class="bg-white rounded-xl p-4 border border-brand/20 flex flex-col items-center text-center gap-2">
<div class="w-10 h-10 bg-green-100 rounded-full flex items-center justify-center">
<svg class="w-5 h-5 text-brand" fill="none" stroke="currentColor" viewBox="0 0 24 24"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M12 15v2m-6 4h12a2 2 0 002-2v-6a2 2 0 00-2-2H6a2 2 0 00-2 2v6a2 2 0 002 2zm10-10V7a4 4 0 00-8 0v4h8z"/></svg>
</div>
<p class="text-sm font-semibold text-gray-900">No servers</p>
<p class="text-xs text-gray-500">We operate zero backend infrastructure</p>
</div>
<div class="bg-white rounded-xl p-4 border border-brand/20 flex flex-col items-center text-center gap-2">
<div class="w-10 h-10 bg-green-100 rounded-full flex items-center justify-center">
<svg class="w-5 h-5 text-brand" fill="none" stroke="currentColor" viewBox="0 0 24 24"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M18.364 18.364A9 9 0 005.636 5.636m12.728 12.728A9 9 0 015.636 5.636m12.728 12.728L5.636 5.636"/></svg>
</div>
<p class="text-sm font-semibold text-gray-900">No tracking</p>
<p class="text-xs text-gray-500">No analytics, no cookies, no fingerprinting</p>
</div>
<div class="bg-white rounded-xl p-4 border border-brand/20 flex flex-col items-center text-center gap-2">
<div class="w-10 h-10 bg-green-100 rounded-full flex items-center justify-center">
<svg class="w-5 h-5 text-brand" fill="none" stroke="currentColor" viewBox="0 0 24 24"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M9 12l2 2 4-4m5.618-4.016A11.955 11.955 0 0112 2.944a11.955 11.955 0 01-8.618 3.04A12.02 12.02 0 003 9c0 5.591 3.824 10.29 9 11.622 5.176-1.332 9-6.03 9-11.622 0-1.042-.133-2.052-.382-3.016z"/></svg>
</div>
<p class="text-sm font-semibold text-gray-900">No third parties</p>
<p class="text-xs text-gray-500">Your data is never shared or sold</p>
</div>
<div class="bg-white rounded-xl p-4 border border-brand/20 flex flex-col items-center text-center gap-2">
<div class="w-10 h-10 bg-green-100 rounded-full flex items-center justify-center">
<svg class="w-5 h-5 text-brand" fill="none" stroke="currentColor" viewBox="0 0 24 24"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M10 20l4-16m4 4l4 4-4 4M6 16l-4-4 4-4"/></svg>
</div>
<p class="text-sm font-semibold text-gray-900">Open source</p>
<p class="text-xs text-gray-500">Read every line on GitHub. Trust, but verify.</p>
</div>
</div>
</div>
</section>
<!-- ======== POLICY BODY ======== -->
<section class="py-20">
<div class="max-w-4xl mx-auto px-6">
<div class="prose prose-gray max-w-none">
<!-- 1 -->
<div class="mb-14">
<h2 class="text-2xl font-extrabold text-gray-900 mb-4 flex items-center gap-3">
<span class="flex-shrink-0 w-8 h-8 bg-brand text-white rounded-lg flex items-center justify-center text-sm font-bold">1</span>
Who We Are
</h2>
<div class="pl-11 text-gray-600 leading-relaxed space-y-3">
<p>Offlyn Apply is a free, open-source browser extension maintained by <strong class="text-gray-900">Offlyn Apply</strong> and contributors on GitHub. The extension is available for Chrome (Chrome Web Store) and Firefox.</p>
<p>Contact: <a href="mailto:[email protected]" class="text-brand hover:underline font-medium">[email protected]</a> · GitHub: <a href="https://github.com/joelnishanth/offlyn-apply" target="_blank" rel="noopener" class="text-brand hover:underline font-medium">joelnishanth/offlyn-apply</a></p>
</div>
</div>
<!-- 2 -->
<div class="mb-14">
<h2 class="text-2xl font-extrabold text-gray-900 mb-4 flex items-center gap-3">
<span class="flex-shrink-0 w-8 h-8 bg-brand text-white rounded-lg flex items-center justify-center text-sm font-bold">2</span>
What Data We Collect
</h2>
<div class="pl-11 text-gray-600 leading-relaxed space-y-4">
<div class="bg-[#f7f8fa] rounded-xl p-5 border border-gray-100">
<p class="font-semibold text-gray-900 mb-2">Data stored locally on your device</p>
<p class="text-sm mb-3">The following information is saved exclusively in your browser's <code class="bg-gray-200 px-1.5 py-0.5 rounded text-xs font-mono">storage.local</code> — it never leaves your machine:</p>
<ul class="text-sm space-y-1.5 list-disc list-inside text-gray-600">
<li>Your profile information: name, email address, phone number, home address, and work authorization status</li>
<li>Your resume content (parsed text) and uploaded file reference</li>
<li>Work history, education, skills, and links (LinkedIn, GitHub, portfolio)</li>
<li>Cover letter templates and AI-generated cover letter drafts</li>
<li>Job application history: job title, company, date, status, and any notes you add</li>
<li>Your AI model preferences and extension settings</li>
<li>Auto-fill corrections you make (used to improve future fills locally)</li>
</ul>
</div>
<div class="bg-red-50 rounded-xl p-5 border border-red-100">
<p class="font-semibold text-red-800 mb-2">Data we do <em>not</em> collect</p>
<ul class="text-sm space-y-1.5 list-disc list-inside text-red-700">
<li>We do not collect any data on our own servers — we have none</li>
<li>We do not collect your browsing history or visited URLs</li>
<li>We do not collect crash reports, usage analytics, or telemetry</li>
<li>We do not collect your IP address or location</li>
<li>We do not use cookies or any form of persistent online identifier</li>
</ul>
</div>
</div>
</div>
<!-- 3 -->
<div class="mb-14">
<h2 class="text-2xl font-extrabold text-gray-900 mb-4 flex items-center gap-3">
<span class="flex-shrink-0 w-8 h-8 bg-brand text-white rounded-lg flex items-center justify-center text-sm font-bold">3</span>
How Your Data Is Used
</h2>
<div class="pl-11 text-gray-600 leading-relaxed space-y-3">
<p>All data stored by Offlyn Apply is used solely to provide the extension's features — auto-filling job application forms and generating cover letters. Specifically:</p>
<ul class="text-sm space-y-2 list-disc list-inside">
<li>Profile data is read to populate form fields on job application pages you visit</li>
<li>Resume and profile content is passed to a locally-running Ollama instance on your machine (at <code class="bg-gray-100 px-1 py-0.5 rounded text-xs font-mono">localhost:11434</code>) to generate cover letters. This request never leaves your device</li>
<li>Application history is displayed in the dashboard for your own tracking purposes</li>
<li>Manual corrections you make to auto-filled fields are stored locally to improve the fill accuracy of future applications</li>
</ul>
<p class="text-sm font-medium text-gray-900">Your data is never used for advertising, profiling, or any purpose outside of providing the features you explicitly use.</p>
</div>
</div>
<!-- 4 -->
<div class="mb-14">
<h2 class="text-2xl font-extrabold text-gray-900 mb-4 flex items-center gap-3">
<span class="flex-shrink-0 w-8 h-8 bg-brand text-white rounded-lg flex items-center justify-center text-sm font-bold">4</span>
Permissions Explained
</h2>
<div class="pl-11 space-y-3">
<p class="text-gray-600 text-sm">The extension requests the following browser permissions. Here is exactly why each one is needed:</p>
<div class="rounded-xl border border-gray-200 overflow-hidden divide-y divide-gray-100">
<div class="grid grid-cols-[140px_1fr] gap-0">
<div class="bg-[#f7f8fa] px-4 py-3 text-sm font-semibold text-gray-800 border-r border-gray-200"><code class="font-mono text-xs">storage</code></div>
<div class="px-4 py-3 text-sm text-gray-600">Saves your profile, application history, and settings locally in the browser.</div>
</div>
<div class="grid grid-cols-[140px_1fr] gap-0">
<div class="bg-[#f7f8fa] px-4 py-3 text-sm font-semibold text-gray-800 border-r border-gray-200"><code class="font-mono text-xs">unlimitedStorage</code></div>
<div class="px-4 py-3 text-sm text-gray-600">Allows storing detailed resume text and a full history of applications without hitting the 5 MB browser default limit.</div>
</div>
<div class="grid grid-cols-[140px_1fr] gap-0">
<div class="bg-[#f7f8fa] px-4 py-3 text-sm font-semibold text-gray-800 border-r border-gray-200"><code class="font-mono text-xs">tabs</code></div>
<div class="px-4 py-3 text-sm text-gray-600">Reads the current tab URL to detect which job board you are on and enable the correct auto-fill actions. URLs are not stored or transmitted.</div>
</div>
<div class="grid grid-cols-[140px_1fr] gap-0">
<div class="bg-[#f7f8fa] px-4 py-3 text-sm font-semibold text-gray-800 border-r border-gray-200"><code class="font-mono text-xs">contextMenus</code></div>
<div class="px-4 py-3 text-sm text-gray-600">Adds a right-click menu option to trigger auto-fill without opening the popup, useful on complex multi-step application forms.</div>
</div>
<div class="grid grid-cols-[140px_1fr] gap-0">
<div class="bg-[#f7f8fa] px-4 py-3 text-sm font-semibold text-gray-800 border-r border-gray-200"><code class="font-mono text-xs">scripting</code></div>
<div class="px-4 py-3 text-sm text-gray-600">Injects the auto-fill logic into job application pages when you explicitly click "Auto-Fill Form". Only bundled, locally-stored scripts are injected — no remote code.</div>
</div>
<div class="grid grid-cols-[140px_1fr] gap-0">
<div class="bg-[#f7f8fa] px-4 py-3 text-sm font-semibold text-gray-800 border-r border-gray-200">Host permission <code class="font-mono text-xs text-gray-500"><all_urls></code></div>
<div class="px-4 py-3 text-sm text-gray-600">Required because job applications exist on thousands of domains (LinkedIn, Workday, Greenhouse, Lever, company career pages). There is no finite list to enumerate. The extension only reads and fills form fields on the page you are actively visiting.</div>
</div>
<div class="grid grid-cols-[140px_1fr] gap-0">
<div class="bg-[#f7f8fa] px-4 py-3 text-sm font-semibold text-gray-800 border-r border-gray-200">Host permission <code class="font-mono text-xs text-gray-500">localhost:11434</code></div>
<div class="px-4 py-3 text-sm text-gray-600">Required to communicate with a locally-running Ollama instance on your machine for on-device AI cover letter generation. This is a local loopback address — no data leaves your device.</div>
</div>
</div>
</div>
</div>
<!-- 5 -->
<div class="mb-14">
<h2 class="text-2xl font-extrabold text-gray-900 mb-4 flex items-center gap-3">
<span class="flex-shrink-0 w-8 h-8 bg-brand text-white rounded-lg flex items-center justify-center text-sm font-bold">5</span>
Third-Party Services
</h2>
<div class="pl-11 text-gray-600 leading-relaxed space-y-3">
<p>Offlyn Apply does not integrate with any third-party analytics, advertising, or data-processing services.</p>
<p>The only optional network interaction is with <strong class="text-gray-900">Ollama</strong>, which runs entirely on your own machine. Ollama is not operated by us. If you use Ollama, you are subject to its own terms — but since it runs locally, your data never leaves your device even in that case.</p>
<p>The extension does not load or execute any remote code. All JavaScript is bundled into the extension package itself.</p>
</div>
</div>
<!-- 6 -->
<div class="mb-14">
<h2 class="text-2xl font-extrabold text-gray-900 mb-4 flex items-center gap-3">
<span class="flex-shrink-0 w-8 h-8 bg-brand text-white rounded-lg flex items-center justify-center text-sm font-bold">6</span>
Data Retention & Deletion
</h2>
<div class="pl-11 text-gray-600 leading-relaxed space-y-3">
<p>All data is retained locally until you explicitly delete it. You can clear your data at any time in two ways:</p>
<ul class="text-sm space-y-2 list-disc list-inside">
<li><strong class="text-gray-900">From within the extension:</strong> Open the extension home page → "Clear Applications" or "Export & Clear Profile" to wipe specific data</li>
<li><strong class="text-gray-900">From your browser settings:</strong> Go to your browser's extension storage manager and clear site data for Offlyn Apply</li>
<li><strong class="text-gray-900">By uninstalling:</strong> Removing the extension from your browser deletes all locally stored data</li>
</ul>
<p class="text-sm">Since we hold no data on any server, there is nothing for us to delete on our end — the data only exists on your device.</p>
</div>
</div>
<!-- 7 -->
<div class="mb-14">
<h2 class="text-2xl font-extrabold text-gray-900 mb-4 flex items-center gap-3">
<span class="flex-shrink-0 w-8 h-8 bg-brand text-white rounded-lg flex items-center justify-center text-sm font-bold">7</span>
Children's Privacy
</h2>
<div class="pl-11 text-gray-600 leading-relaxed">
<p>Offlyn Apply is not directed at children under the age of 13. We do not knowingly collect any information from children. Because all data is stored locally and we collect nothing ourselves, no special handling is required beyond standard browser storage controls.</p>
</div>
</div>
<!-- 8 -->
<div class="mb-14">
<h2 class="text-2xl font-extrabold text-gray-900 mb-4 flex items-center gap-3">
<span class="flex-shrink-0 w-8 h-8 bg-brand text-white rounded-lg flex items-center justify-center text-sm font-bold">8</span>
Changes to This Policy
</h2>
<div class="pl-11 text-gray-600 leading-relaxed space-y-3">
<p>If this policy changes, the updated version will be posted at this URL with a revised "Last updated" date at the top. Significant changes will also be announced in the <a href="https://github.com/joelnishanth/offlyn-apply/blob/main/CHANGELOG.md" target="_blank" rel="noopener" class="text-brand hover:underline font-medium">CHANGELOG</a> and as a pinned GitHub release note.</p>
<p class="text-sm">Because we do not collect your email or any contact information, we cannot notify you directly. We recommend watching the GitHub repository for updates.</p>
</div>
</div>
<!-- 9 -->
<div class="mb-14">
<h2 class="text-2xl font-extrabold text-gray-900 mb-4 flex items-center gap-3">
<span class="flex-shrink-0 w-8 h-8 bg-brand text-white rounded-lg flex items-center justify-center text-sm font-bold">9</span>
Contact
</h2>
<div class="pl-11 text-gray-600 leading-relaxed space-y-3">
<p>Questions about this privacy policy? You can reach us through any of the following:</p>
<ul class="text-sm space-y-2 list-disc list-inside">
<li>Email: <a href="mailto:[email protected]" class="text-brand hover:underline font-medium">[email protected]</a></li>
<li>GitHub Issues: <a href="https://github.com/joelnishanth/offlyn-apply/issues" target="_blank" rel="noopener" class="text-brand hover:underline font-medium">github.com/joelnishanth/offlyn-apply/issues</a></li>
</ul>
</div>
</div>
</div>
<!-- Certifications box -->
<div class="mt-16 bg-navy rounded-2xl p-8 text-white">
<h3 class="text-xl font-bold mb-4">Our Commitments</h3>
<div class="grid sm:grid-cols-3 gap-5 text-sm">
<div class="flex items-start gap-3">
<svg class="w-5 h-5 text-brand flex-shrink-0 mt-0.5" fill="none" stroke="currentColor" viewBox="0 0 24 24"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2.5" d="M5 13l4 4L19 7"/></svg>
<p class="text-gray-300">We do not sell or transfer user data to third parties, outside of the approved use cases</p>
</div>
<div class="flex items-start gap-3">
<svg class="w-5 h-5 text-brand flex-shrink-0 mt-0.5" fill="none" stroke="currentColor" viewBox="0 0 24 24"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2.5" d="M5 13l4 4L19 7"/></svg>
<p class="text-gray-300">We do not use or transfer user data for purposes unrelated to auto-filling job applications</p>
</div>
<div class="flex items-start gap-3">
<svg class="w-5 h-5 text-brand flex-shrink-0 mt-0.5" fill="none" stroke="currentColor" viewBox="0 0 24 24"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2.5" d="M5 13l4 4L19 7"/></svg>
<p class="text-gray-300">We do not use or transfer user data to determine creditworthiness or for lending purposes</p>
</div>
</div>
<p class="mt-6 text-brand font-semibold text-sm">Because we can't access what we never collect.</p>
</div>
</div>
</section>
<!-- ======== FOOTER ======== -->
<footer class="bg-navy text-gray-400 py-14">
<div class="max-w-7xl mx-auto px-6">
<div class="grid md:grid-cols-4 gap-10 mb-10">
<div class="col-span-1">
<img src="assets/logo.png" alt="Offlyn Apply" class="h-9 mb-4 brightness-0 invert opacity-80" />
<p class="text-sm leading-relaxed">Privacy-first job application assistant for Chrome and Firefox. Free, open source, and fully offline.</p>
</div>
<div>
<h4 class="text-white font-semibold mb-4 text-sm">Product</h4>
<ul class="space-y-2 text-sm">
<li><a href="https://chromewebstore.google.com/detail/offlyn-apply/TODO_CHROME_STORE_ID" target="_blank" rel="noopener" class="hover:text-white transition-colors">Chrome Web Store</a></li>
<li><a href="index.html#features" class="hover:text-white transition-colors">Features</a></li>
<li><a href="index.html#screenshots" class="hover:text-white transition-colors">Screenshots</a></li>
<li><a href="index.html#how-it-works" class="hover:text-white transition-colors">How It Works</a></li>
<li><a href="index.html#privacy" class="hover:text-white transition-colors">Privacy</a></li>
</ul>
</div>
<div>
<h4 class="text-white font-semibold mb-4 text-sm">Open Source</h4>
<ul class="space-y-2 text-sm">
<li><a href="https://github.com/joelnishanth/offlyn-apply" target="_blank" rel="noopener" class="hover:text-white transition-colors">GitHub</a></li>
<li><a href="https://github.com/joelnishanth/offlyn-apply/blob/main/CONTRIBUTING.md" target="_blank" rel="noopener" class="hover:text-white transition-colors">Contributing</a></li>
<li><a href="https://github.com/joelnishanth/offlyn-apply/issues" target="_blank" rel="noopener" class="hover:text-white transition-colors">Issues</a></li>
<li><a href="https://github.com/joelnishanth/offlyn-apply/blob/main/CHANGELOG.md" target="_blank" rel="noopener" class="hover:text-white transition-colors">Changelog</a></li>
</ul>
</div>
<div>
<h4 class="text-white font-semibold mb-4 text-sm">Legal & Community</h4>
<ul class="space-y-2 text-sm">
<li><a href="privacy.html" class="text-brand font-medium hover:underline transition-colors">Privacy Policy</a></li>
<li><a href="https://github.com/joelnishanth/offlyn-apply/blob/main/LICENSE" target="_blank" rel="noopener" class="hover:text-white transition-colors">MIT License</a></li>
<li><a href="https://github.com/joelnishanth/offlyn-apply/blob/main/CODE_OF_CONDUCT.md" target="_blank" rel="noopener" class="hover:text-white transition-colors">Code of Conduct</a></li>
<li><a href="https://github.com/joelnishanth/offlyn-apply/blob/main/SECURITY.md" target="_blank" rel="noopener" class="hover:text-white transition-colors">Security Policy</a></li>
</ul>
</div>
</div>
<div class="border-t border-white/10 pt-8 flex flex-col sm:flex-row items-center justify-between gap-4 text-sm">
<p>© 2026 <a href="https://offlyn.ai" class="text-brand hover:underline">Offlyn Apply</a>. Open source under the MIT License.</p>
<a href="https://github.com/joelnishanth/offlyn-apply" target="_blank" rel="noopener"
class="flex items-center gap-2 text-gray-400 hover:text-white transition-colors">
<svg class="w-4 h-4" fill="currentColor" viewBox="0 0 24 24"><path d="M12 0C5.37 0 0 5.37 0 12c0 5.31 3.435 9.795 8.205 11.385.6.105.825-.255.825-.57 0-.285-.015-1.23-.015-2.235-3.015.555-3.795-.735-4.035-1.41-.135-.345-.72-1.41-1.23-1.695-.42-.225-1.02-.78-.015-.795.945-.015 1.62.87 1.845 1.23 1.08 1.815 2.805 1.305 3.495.99.105-.78.42-1.305.765-1.605-2.67-.3-5.46-1.335-5.46-5.925 0-1.305.465-2.385 1.23-3.225-.12-.3-.54-1.53.12-3.18 0 0 1.005-.315 3.3 1.23.96-.27 1.98-.405 3-.405s2.04.135 3 .405c2.295-1.56 3.3-1.23 3.3-1.23.66 1.65.24 2.88.12 3.18.765.84 1.23 1.905 1.23 3.225 0 4.605-2.805 5.625-5.475 5.925.435.375.81 1.095.81 2.22 0 1.605-.015 2.895-.015 3.3 0 .315.225.69.825.57A12.02 12.02 0 0 0 24 12c0-6.63-5.37-12-12-12z"/></svg>
joelnishanth/offlyn-apply
</a>
</div>
</div>
</footer>
</body>
</html>