Minimize before collecting
Privacy and data handling
The website, integration assets, source-job Actors, and candidate scorer have different data flows. Use the narrowest payload, retention, destination, and credential scope for each.
Static website
The public site requires no account and contains no form for entering a résumé, token, or personal profile. Its first-party script creates no cookies, user identifiers, query-string capture, or network request by itself. It dispatches sanitized page and CTA events locally and respects Global Privacy Control or Do Not Track.
A site operator can connect a consent-aware dataLayer, Plausible installation, or subscriber. Event properties are limited to declared categories such as page path, placement, product, destination, content, and format; page code should never place contact data or secrets in those attributes.
Credentials
- Use OAuth where supported and least-privilege tokens elsewhere.
- Keep tokens in credential managers, process environments, or platform secret stores—not URLs, Actor input, workflow JSON, logs, screenshots, or issue reports.
- Integration assets are credential-free. Importing one does not authenticate or activate it.
- Rotate a credential immediately if it is exposed, then remove it from history and logs.
Public job records
A public vacancy can still contain protected text, named contacts, email addresses, or other personal information. Public access is not authorization to collect or republish it. Review source terms, licensing, privacy rules, purpose, geography, and applicable law before running an Actor.
Disable includeRaw unless raw descriptions are necessary. Retain canonical source links and provenance, avoid copying named contacts into broad-access tables, and define deletion and access controls for every destination.
Candidate profiles and résumés
The AI Job Search & Fit Scorer processes one candidate per run. Prefer a structured profile containing only facts required for the decision. Obtain suitable consent before using a real résumé and do not infer constraints the candidate did not provide.
Résumé content is processed in memory by the Actor, but the original Apify Actor input or upload remains subject to the account’s configured retention. Extracted evidence follows the configured OpenRouter/OpenAI path with provider data collection denied. This is not a claim of zero data retention.
Destinations and derived records
Google Sheets, Airtable, Slack, Telegram, email, databases, and webhooks each have their own access, retention, sharing, and deletion behavior. A flat projection can make redistribution easier, but does not change the sensitivity or licensing of the source data.
- Store canonical records only where nested evidence is genuinely needed.
- Limit descriptions and contacts in collaborative tables and chat channels.
- Use opaque deduplication scopes instead of names or email addresses.
- Protect candidate hashes, fit evidence, gaps, and evaluation JSON as candidate data.
- Test with fictional profiles and disposable destinations before real data.
Public support is public
GitHub issues are visible to others. Never include API tokens, résumés, profile text, personal contact details, private dataset or run links, screenshots containing secrets, proprietary job descriptions, or real applicant data. Reduce a problem to synthetic input and redacted structural evidence before reporting it.
Your operating checklist
- Document purpose, source rights, fields, processors, destination, access, and retention.
- Disable optional raw, enrichment, translation, analytics, and cross-run state by default.
- Use a small fictional-data canary.
- Verify which records and logs each platform stores.
- Set deletion procedures before scheduling.
- Stop and seek privacy or legal review when personal data or redistribution is material.
This page describes project behavior and safer defaults; it is not legal advice and cannot determine compliance for a specific organization or jurisdiction.