Last Updated: 2026-11-01
This notice describes the information handled by Specify Work and the behavior of the current product. Deployment configuration and product features can change, so this page should be updated when a data flow changes.
Information the product handles
Account and organization information
Specify Work uses an authentication service for sign-in. The application can receive and store the authenticated account's provider identifier, name, email address, and profile image, when those fields are supplied. It also creates a tenant, membership, and human actor record so requests can be authorized within the correct organization.
Content you create
The service stores the information you enter into its product features. Depending on the features you use, this can include:
- Work items, comments, priorities, ownership, due dates, tags, and status history
- Ideas and their promotion history
- Memories, corrections, citations, review items, and Memory searches
- Agent client records, scoped credentials, sessions, events, handoffs, and approval requests
- Notifications and audit events
- Optional Life observations and the agent-specific grants used to share them
Avoid entering secrets or sensitive information that the product does not need.
Technical and usage information
Authentication requires browser session data. The interface also uses browser storage for local UI state such as theme or open workspace tabs.
When configured for a deployment, error monitoring can receive errors, logs, and performance traces. Product analytics receives a pseudonymous user ID, and for each page viewed the kind of page (its route pattern, never the full address), the product area, a coarse screen-width bucket, and whether the account is personal or an organization, plus identifiers the analytics library needs to count sessions and devices. The current client configuration disables analytics autocapture, session recording, heatmaps, dead-click capture, exception capture, and performance capture. It also configures error monitoring not to send default personally identifying fields. After a signed-in session is admitted, browser error reports include only your internal Specify user ID as user context, not your email, name, sign-in provider identity or authentication session ID. This context is cleared on sign-out, session revocation, identity changes and leaving the signed-in pages. Public-page and pre-admission errors remain anonymous. These controls reduce collection, but an error or an explicitly authored event could still contain information supplied by application code.
When the file gateway refuses a file transfer or meets an internal error, it keeps a short record in Cloudflare Workers Logs: a fixed reason or error code, whether the request came from the app or an agent, the kind of route, a random request identifier, and the request's address, which includes the identifier of the upload, file or data export. These records never contain file names, file contents, access tokens, keys, IP addresses, or your name or email. Cloudflare deletes them after 7 days.
How information is used
Information is processed to:
- Authenticate requests and keep tenant data separated
- Provide Work, Ideas, Agents, Inbox, Reflection, Memory, Life, and related settings
- Enforce visibility, scopes, credential expiry, revocation, and explicit Life grants
- Maintain audit and operational history
- Index and retrieve active memories
- Diagnose failures and understand basic product usage when optional observability is configured
Active memory content is divided into chunks and sent to OpenAI to create vectors for semantic Memory search. Search text is also sent to OpenAI when search by meaning is used: Memory searches, memory searches by agents, and questions asked in Ask. OpenAI does not train on this information. By default it keeps API requests in abuse monitoring logs for up to 30 days. It keeps them longer when the law requires it or when it is needed to protect its services or others from harm. We asked OpenAI for zero data retention on 2026-10-01. Until OpenAI approves it and we turn it on, these logs apply. If embedding fails, Memory search can use lexical search instead. Do not curate content into active memory if it should not be processed for this purpose.
Audio briefings use two providers. To write the script, the text of the sources you pick is sent to OpenAI. The same terms as above apply: no training, and abuse monitoring logs kept by default for up to 30 days, longer when the law or abuse prevention requires it. To read the script aloud, the script text and the voice you chose are sent to ElevenLabs, our voice provider. Training on our data is switched off in our ElevenLabs account, and every request asks ElevenLabs not to log it. On our current plan, ElevenLabs may still keep the script and the audio it makes in its request history. ElevenLabs states no period for this history, Specify does not delete it, and items deleted from it stay in ElevenLabs backups for up to 30 days. If ElevenLabs ever refuses the request not to log, the audio is not made. Leave a source out of a briefing if it should not be processed this way.
For accounts we move to our own voice model (Kyutai's open Pocket TTS), the script text and the voice you chose go first to a machine Specify runs at Fly.io in the United States. That machine keeps the script only for the request that makes its audio, writes it nowhere and logs no script text. When that machine is unavailable, ElevenLabs makes the audio instead, and what this notice says above about ElevenLabs then applies to that script.
Written briefings use OpenAI only. To write and check a written briefing, the text of the Work documents and memories you pick, and any instructions you add, is sent to OpenAI. Only sources you can open at that moment are sent; a source you can no longer open is left out and named in the result. OpenAI is asked not to store the response, and the same terms as above apply: no training, and abuse monitoring logs kept by default for up to 30 days, longer when the law or abuse prevention requires it. The briefing is saved as a file in your organization, private until you publish it to your organization's members.
Tailor resume to a job sends OpenAI the wording of your resume (headline, summary, jobs with their employers, titles, dates and highlights, skills and degrees), the job posting you paste and any instructions you add, so it can suggest edits. Your name, contact details, links and address are not sent. The resume you send and the tailored resume are saved as files only you can open, also in an organization you share with others, where other members and admins cannot open them. The same terms apply: no training, and abuse monitoring logs kept by default for up to 30 days, longer when the law or abuse prevention requires it.
Access and disclosure
Access inside Specify Work is controlled by tenant membership, record visibility, actor scopes, and, for Life observations, explicit agent-specific grants. Agent keys are scoped, expiring, and revocable. A user who grants an agent access is responsible for the client in which that key is configured.
Information is processed by the service providers listed below. Their handling of information is also governed by their own terms and policies. Information may also be disclosed when required to comply with a valid legal process or to protect the service and its users. This notice does not make a broader promise about business practices that cannot be verified from the product configuration.
Service providers
These services receive information from Specify Work to run the features named. When a feature is not available to your account, you cannot start new use of it, but information you already stored and background work already queued, such as indexing a memory for Memory search, can still be processed by its providers.
Convex
- What it receives
- Everything stored in Specify Work
- Used for
- Database and application backend
- Where
- United States
Vercel
- What it receives
- Web requests and session cookies
- Used for
- Hosting the website and app
- Where
- Global network; app servers in the United States
Cloudflare
- What it receives
- Uploaded files, previews, data exports, a canvas while it is open, and records of refused file transfers
- Used for
- File storage, live canvas editing and diagnosing refused transfers
- Where
- Cloudflare data centers
WorkOS
- What it receives
- Name, email, profile picture, IP address and browser for sign-in
- Used for
- Sign-in and account security
- Where
- United States
Stripe
- What it receives
- Account name and email, billing address, payment details, invoices
- Used for
- Plans and payments
- Where
- United States and other countries
Resend
- What it receives
- Recipient address and message
- Used for
- Email: sign-in codes, contact form, account notices, invitations, briefings
- Where
- United States
OpenAI
- What it receives
- Active memory text, Memory searches, Ask questions, briefing source text, resume wording and job postings
- Used for
- Memory search, Ask, briefing scripts, written briefings and resume tailoring
- Where
- United States and other regions
ElevenLabs
- What it receives
- Briefing script text and the chosen voice
- Used for
- Briefing audio
- Where
- ElevenLabs data centers
Fly.io
- What it receives
- Briefing script text and the chosen voice, for accounts on our own voice model
- Used for
- Briefing audio from our own voice model
- Where
- United States
fal.ai
- What it receives
- An image you choose to cut out or upscale, without its metadata for upscales, and the result
- Used for
- HD background cutouts and Upscale image in Convert
- Where
- fal data centers
PostHog
- What it receives
- A pseudonymous user ID and which kind of page was viewed
- Used for
- Product analytics
- Where
- United States
Sentry
- What it receives
- Error reports; internal Specify user ID only for admitted signed-in browser errors, without other default personal fields
- Used for
- Error monitoring
- Where
- United States and other countries
Google Drive
- What it receives
- Copies of the Specify Work database
- Used for
- Backups
- Where
- Google data centers
GitHub
- What it receives
- Repository owner/name, requesting device IP and HTTPS request metadata; your existing local GitHub credential only for the default-branch query, no source contents
- Used for
- Default-branch verification in unreleased Security adapter 0.4.0
- Where
- Not region-pinned; handling for this flow not yet verified
The GitHub lookup is implemented in adapter source but has not been released. It first checks GitHub anonymously. If that fails, the adapter may use your existing local GitHub CLI sign-in only for a read-only query for repository identity and default-branch name. The credential is sent directly to GitHub, never to Specify. The adapter does not store it or include it in events, logs, errors or telemetry. It does not send the proposed push refspec or source contents. Each request has a short timeout and rejects redirects. Branch answers and their source are cached in memory for 15 seconds, without credentials. Only remotes on github.com are looked up on GitHub. For any other remote, such as an SSH host alias, and when GitHub cannot answer, the adapter asks the server being pushed to for its default branch with one read-only Git request, the same server a fetch would reach. No GitHub sign-in or repository name goes to GitHub for those remotes. If no lookup answers, the adapter marks the decision unverified, protects main, master and locally recorded default branches, and allows other literal branches subject to remaining policies. Provider-side retention and processing guarantees for this flow remain to be verified before release; this notice makes no zero-retention, training or residency promise for it.
Retention and deletion
The product supports actions such as archiving records, revoking agent credentials, and revoking Life grants. Some records, including audit history, are intentionally retained as append-only operational history. The current product does not promise a universal retention period or a self-service deletion workflow for every record. Backup, log, and service-provider retention can differ from the state visible in the interface.
Security
The application uses authenticated browser sessions, tenant-scoped authorization, scoped machine credentials, hash-only storage of agent key secrets, request bounds, and append-only audit events. No online service can guarantee that information will never be lost, misused, or accessed without authorization. See the Security Policy for the currently documented controls and reporting guidance.
Your choices
You can choose what content to enter, whether to activate memories for Memory search indexing, which scopes to grant an agent key, and whether to share an individual Life observation with an eligible agent. You can revoke agent credentials and Life grants in the product. Other requests can be submitted through the published contact route. The availability and scope of additional privacy rights depend on applicable law; this notice does not attempt to enumerate rights for every jurisdiction.
Changes to this notice
This notice may change as Specify Work changes. The date at the top identifies the latest published revision. Material product data flows should not be described as active until the implementation and this notice agree.
Questions
Use the contact page for questions about this notice or the information handled by Specify Work. Do not include passwords, agent keys, session cookies, or other secrets in a report.