Worksona Tasks: Browser-Native Scheduled AI Research
#worksona#portfolio#browser-automation#task-scheduler#zero-build#indexeddb
David OlssonWorksona Tasks is a zero-build browser application for scheduling and executing recurring AI research tasks. You define a task — a description of what to research or analyze — choose a task type and schedule, and the application runs it on time using LLM analysis, web search, or both. All results accumulate in a local history. No server, no deployment pipeline, no account required.
The application is a static HTML file with vanilla JavaScript modules. There is nothing to compile. Drop it on Netlify, GitHub Pages, or any static host and it works.
Why browser-native task scheduling?
The conventional path for recurring research automation is a cron job on a server, wired to API integrations, writing to a database, fronted by a viewing interface. That is days of engineering for something a knowledge worker should be able to configure in five minutes.
Running the scheduler in the browser eliminates the server entirely. TaskScheduler runs a setInterval polling loop in the browser context. When a task is due, the scheduler dispatches execution and writes the result to IndexedDB via Dexie. The tab must stay open — the honest trade-off for a tool that eliminates all infrastructure.
The three task types cover the common cases:
| Type | What runs |
|---|---|
llm | Task description sent directly to an LLM |
search | Web search via Serper or OpenAI web search model |
llm-search | Web search results synthesized by an LLM |
Multi-provider fallback means a task configured with keys for OpenAI, Anthropic, and Google will try each in sequence if the primary fails. There is no manual retry and no silent loss.
How does the encryption and persistence model work?
API keys never leave the device in a form that serves anyone else. They are stored in localStorage under the prefix worksona_settings_, encrypted with XOR + Base64 keyed to a device fingerprint. The same key entered on a different device produces a different ciphertext — the encryption is device-anchored.
// Creating a task via WorksonaAPI
await WorksonaAPI.tasks.create({
name: 'Daily AI News Summary',
description: 'Find the top 5 AI research papers published today and summarize each',
type: 'llm-search',
schedule: 'daily'
});
Task definitions and execution results are stored in IndexedDB. Every execution run is retained, so a recurring daily task accumulates a time-series of results reviewable in the history modal.
Where it applies
Worksona Tasks fits anywhere a person or small team needs to monitor a topic at regular intervals without building infrastructure: competitive intelligence, academic paper tracking, market signal monitoring, regulatory news, or any research question that benefits from a daily or hourly automated answer.
The cost profile is direct: hosting is free on any static CDN, storage costs nothing, and the only spend is provider API calls per execution. The entire data model lives in the browser — nothing to back up server-side, nothing to migrate, and nothing to lose access to if a SaaS subscription lapses.