legal

Privacy Policy

Effective date: June 15, 2026 · Last updated: June 15, 2026

the short version — local-first by default

Terminalhire is a local-first developer job-matching tool: a command-line interface (CLI) plus a Claude Code plugin, together with the website terminalhire.com. By default, your profile and job matching live entirely on your own device. Identifying information only leaves your machine when you take an explicit, per-event action and confirm a named-recipient consent prompt. We do not build a hidden server-side profile of you, and matching never sends your profile or a fingerprint to our servers.

1. Who we are

Terminalhire is operated by Staqs, Inc. (“staqs”, “we”, “us”), registered at 251 Little Falls Drive, Wilmington, DE 19808, USA. For privacy questions or to exercise your rights, contact us at privacy@staqs.io.

Data protection / privacy contact: No Data Protection Officer has been appointed; privacy inquiries are handled by Staqs, Inc. at privacy@staqs.io. . EU/EEA representative under Article 27 GDPR: No EU representative has been appointed at this time; EU/EEA users may contact privacy@staqs.io. . UK representative, if applicable: No UK representative has been appointed at this time; UK users may contact privacy@staqs.io.

2. What data we handle

We group everything into three buckets, in order of how protective each is of your privacy.

2a. Data that stays on your device (never transmitted unless you consent)

The following lives only in your local Terminalhire installation and is never sent to us unless you take a specific opt-in action described in bucket 2c:

  • An encrypted local profile (~/.terminalhire/profile.enc, encrypted at rest with AES-256-GCM): your skill tags, GitHub-derived public data, an optional display name and contact email you set yourself, and your saved jobs.
  • A GitHub OAuth token, stored encrypted on your device, with scope read:user (public data only — we never request or access private repositories).
  • Job matching runs on your device against an anonymously downloaded job index. No fingerprint and no profile is sent to perform matching.
  • Employer-repository sessions are excluded by default from profile building, to avoid capturing an employer's confidential or proprietary information.

2b. Anonymous processing (no developer identity)

  • Job index download (GET /api/index): an anonymous download of the public job index. No cookies, no identifiers, and no profile are included in the request.
  • Click tracking: links of the form terminalhire.com/j/<source>/<id> redirect (HTTP 302) to the real job listing and log an anonymous event consisting of the job id, source, company, and timestamp. This event contains no developer identity and no profile. Our hosting provider may transiently process IP addresses for security and operational purposes.
  • Website analytics: the website loads Google Tag Manager (container GTM-WGX6BW5T), which enables analytics and sets cookies. See the Cookies & analytics section below.

2c. Consented data egress (explicit, per-event, opt-in)

These are the only ways identifying data leaves your device. Each requires a deliberate command and an on-screen confirmation that names the recipient.

  • Tier-1 opt-in profile sync. When you run terminalhire sync --push and type “yes” to a consent card that names “staqs (terminalhire.com)”, a one-time snapshot of your GitHub-public profile fields (GitHub login, name, public email, top languages, skill tags) plus the display name and contact email you set yourself is stored on our server (a Neon PostgreSQL database). It is revocable at any time with terminalhire sync --delete, which performs a hard delete. This sync never stores private repositories, employer-repo-derived tags, raw code, access tokens, session context, or file paths.
  • Lead sharing. Per opportunity, you are shown an explicit named-buyer prompt (for example, “Share with Northstar Talent Partners? yes/no”), and only if you answer “yes” is a lead payload (the approved profile fields) sent to that named partner agency. Each partner agency signs a per-partner DPA before it can receive any lead. The partner agency is an independent controller for recruiting purposes, governed by our Data Processing / Data Sharing Agreement.

3. Purposes and lawful bases

For developers in the EU/EEA and UK, we rely on the following lawful bases under the GDPR / UK GDPR:

  • Consent (Art. 6(1)(a)): Tier-1 profile sync and each lead share. You give consent through the named, per-event prompts described above, and you may withdraw it at any time.
  • Legitimate interests (Art. 6(1)(f)): anonymous click analytics and the security/operational processing of transient IP addresses, to understand aggregate engagement and to protect the service. We have weighed this against your rights and freedoms (balancing test); because these events carry no developer identity, the impact on you is minimal. You can object — see your rights below.

4. Cookies & analytics

terminalhire.com loads Google Tag Manager (container GTM-WGX6BW5T, provided by Google LLC), which may set analytics cookies and similar technologies. The Terminalhire CLI and plugin do not use cookies.

You can opt out of analytics by blocking cookies in your browser, by using the Google Analytics opt-out browser add-on, or via [to be finalized with counsel: consent banner / cookie-preference mechanism, if implemented]. The specific cookies set, their durations, and our legal basis for non-essential cookies are subject to counsel review: [to be finalized with counsel: confirm cookie inventory, durations, and consent mechanism (ePrivacy / PECR)].

5. Sub-processors & third parties

PartyPurposeLocationData involved
Vercel Inc.Website hosting, edge/CDN delivery of terminalhire.comUnited StatesAnonymous web requests; transient IP for security/operations
Neon Inc.Managed PostgreSQL database storing consented Tier-1 profilesUnited StatesConsented Tier-1 profile fields (only if you push a sync)
GitHub Inc.OAuth identity provider (you authenticate directly with GitHub)United StatesOAuth scope read:user — public profile data only
Google LLCGoogle Tag Manager / analytics on the websiteUnited StatesWebsite analytics events and cookies
Each partner agency (per-partner DPA)Named recipient of consented leads (independent controller for recruiting); each partner agency signs a per-partner DPA before it can receive any leadUnited StatesOnly the approved lead fields you explicitly chose to share with that named partner agency

This list is current as of the effective date. We will update it as our sub-processors change: The sub-processors listed above (Vercel, Neon, GitHub, and Google) are the complete current list; data-processing terms are in place with each. .

6. International transfers

Our servers and the third parties above are located in the United States (Vercel and Neon host in the US). If you are in the EU/EEA or the UK, any transfer of your personal data to the United States relies on appropriate safeguards — the EU Standard Contractual Clauses (SCCs), the UK International Data Transfer Agreement (IDTA) or Addendum, and/or an adequacy mechanism, as applicable. Specifics to confirm: [to be finalized with counsel: confirm transfer mechanism per recipient (SCCs / UK IDTA / adequacy / DPF certification)].

7. Data retention

  • On-device data: kept locally on your machine until you delete it. You control it directly.
  • Tier-1 synced profile: retained until you revoke it (terminalhire sync --delete) or after 24 months of inactivity, whichever comes first.
  • Anonymous click logs: retained for 12 months , then deleted or further aggregated.
  • Shared leads: once a lead is shared with a named buyer, that buyer becomes an independent controller and applies its own retention; see the DPA.

8. Your rights

EU/EEA & UK (GDPR / UK GDPR)

Subject to applicable law, you have the rights of access, rectification, erasure (“right to be forgotten”, Art. 17 — including via terminalhire sync --delete, which hard-deletes your synced profile), restriction of processing, data portability, objection to processing, and the right to withdraw consent at any time without affecting processing already carried out. You also have the right to lodge a complaint with your supervisory authority.

California (CCPA / CPRA)

If you are a California resident, you have the rights to know, access, correct, and delete your personal information, the right to opt out of the sale or sharing of personal information, and the right not to be discriminated against for exercising these rights.

We do not sell your personal information — with one possible exception you control: the consented, developer-initiated lead share that you explicitly approve to a named buyer. [to be finalized with counsel: counsel to confirm whether the consented lead share constitutes a “sale” or “sharing” under CCPA/CPRA and update this disclosure and any opt-out mechanism accordingly]. We never sell or share the anonymous or on-device data described above.

9. Automated decision-making & profiling

Terminalhire does not make solely-automated decisions that produce legal or similarly significant effects about you (GDPR Art. 22). Job matching is a suggestion tool: it matches public job postings to your skills, the matching runs on your device, and you decide whether to apply. This profiling has no legal effect and never determines an outcome on its own.

10. Security

  • Your local profile is encrypted at rest with AES-256-GCM.
  • Data in transit is protected with TLS.
  • GitHub access is minimized to the read:user scope (public data only).
  • Employer-repository sessions are excluded from profile building by default.
  • Server-side Tier-1 data is stored in Neon with encryption at rest.

No system is perfectly secure, but we work to protect your data using measures appropriate to the risk.

11. Children

Terminalhire is not directed to, and is not intended for use by, individuals under the age of 16. We do not knowingly collect personal information from children. If you believe a child has provided us data, contact us at privacy@staqs.io.

12. How to exercise your rights

Email us at privacy@staqs.io. For the data you control directly, you can also use the CLI:

  • terminalhire sync --delete — hard-delete your server-side Tier-1 profile (erasure).
  • Delete your local installation and ~/.terminalhire/ directory to remove all on-device data.

13. Changes to this policy

We may update this policy from time to time. When we do, we will revise the “last updated” date and, where required, provide a more prominent notice. Material changes will be communicated as required by law.

Effective date: June 15, 2026 · Governing law / jurisdiction: the laws of the State of Delaware, USA, without regard to its conflict-of-laws principles · This draft is pending legal review and is not legal advice.