Privacy policy
This policy explains how personal data is handled when you use JEFF: the JEFF Chrome extension and the JEFF web service at https://app.jeffscreens.com. JEFF is operated by Klikwork (“we”, “us”), Assendorperdijk 1, 8012 EG Zwolle, the Netherlands, Chamber of Commerce (KvK) 24388851, hello@klikwork.com.
1. What JEFF does
JEFF helps recruiters assess candidate profiles in LinkedIn Recruiter against role criteria the recruiter sets. When the recruiter asks it to, the extension reads the profiles (at most 25) on the Recruiter results page the recruiter is viewing and sends the professional profile text to the JEFF service. The service returns an indicative score per criterion. JEFF is decision support: recruiters make the decisions about candidates.
AI can make mistakes. Scores and explanations are generated by an AI model and can be wrong or incomplete. Always check them against the profile itself before acting on them.
2. Who is responsible for what
- Candidate data (profile text of people in LinkedIn Recruiter): the recruitment agency that uses JEFF is the controller. It decides which candidates to look at and for which role. Klikwork is the processor and handles this data only on the agency’s instructions, under a data processing agreement.
- Account data of recruiters and agency administrators: Klikwork processes this to provide, secure and bill the service.
- If you are a candidate and have a question about your data, please contact the recruitment agency that looked at your profile first. We will help that agency answer your request.
3. What data we process
3.1 Account data (recruiters and administrators)
| Data | Purpose | Where |
|---|---|---|
| Name, email address, role, agency, active or disabled | Sign-in, access management, invitations | JEFF database (Supabase, Frankfurt) |
| Password | Sign-in. Stored only as a hash by Supabase Auth; JEFF itself never stores your password | Supabase Auth (Frankfurt) |
| Session token | Keeping you signed in. The server stores only a hash, valid for up to 8 hours | JEFF database; the token itself stays in your browser (section 6) |
| Invitation data: name, email, role, hashed invitation code, expiry time | Sending and accepting an invitation | JEFF database; emails sent through Resend |
| Usage counts and one bookkeeping row per scoring request (who, when, status; no profile content) | Fair use, limits and billing | JEFF database |
| Hashed rate-limit keys, for example sign-in attempts per email address | Protection against misuse | JEFF database |
| History of administrative actions, for example “recruiter disabled”, including the email address concerned | Accountability and support | JEFF database |
3.2 Candidate data (profile text)
- What: the professional information LinkedIn includes in the result data for each profile on the results page: headline, location, summary, current and past positions, education, skills, languages, certifications, industry, years of experience, open-to-work status and search highlights.
- What is left out: names, photos, profile links and identifiers, contact details, reviewer notes, connections and recruiting activity, and fields that directly reveal protected characteristics such as pronouns, gender or date of birth. If the result data cannot be read, JEFF falls back to the visible text of the result card and removes the candidate’s name from it.
- How it is obtained: only from data LinkedIn has already loaded in the recruiter’s browser for the current page. JEFF opens no profiles, visits no other pages and sends no extra requests to LinkedIn.
- What goes to the server: the profile text (at most 20,000 characters per profile) and the role criteria. The recruiter can check, edit or remove the text first.
- Scoring: the JEFF server forwards the profile text and criteria to our model provider (section 5) and returns the scores.
- Not stored on the JEFF server: profile text, criteria and scores exist only in the server’s memory for the duration of the request (up to about 30 seconds). The server keeps only the bookkeeping row from 3.1, which holds no content. What the model provider does with the text is set out in its own policy (section 5).
- Stored in the recruiter’s browser: saved searches, including profile names, links, text, scores and notes, stay in the recruiter’s own Chrome profile (section 6).
- Protected characteristics: JEFF refuses criteria about age, gender, ethnicity, religion, pregnancy, sexual orientation, skin colour, health, disability, nationality and political views, and the model is instructed not to infer them.
3.3 Network indicator for possibly shared accounts
- Purpose: monitoring only, to notice an account that may be used by several people. It never blocks access.
- What is recorded at sign-in: a keyed pseudonym (HMAC) of the network prefix of the connection (IPv4 /24, IPv6 /48). The IP address itself is not stored. This is pseudonymous personal data.
- Who sees it: only Klikwork as the operator, as a count (for example, the number of different networks for an account), never as a value. Agency administrators and recruiters do not see it.
- Retention: deleted after 30 days.
4. Legal bases
- Account data: performance of the contract with the agency (Art. 6(1)(b) GDPR) and our legitimate interest in security and preventing misuse (Art. 6(1)(f)).
- Network indicator: our legitimate interest in noticing account sharing (Art. 6(1)(f)). It is used for monitoring only.
- Candidate data: the legal basis of the agency as controller, usually its legitimate interest in recruitment (Art. 6(1)(f)). Informing candidates (Art. 14 GDPR) is the agency’s responsibility.
5. Sub-processors
| Party | Role | Location |
|---|---|---|
| Vercel Inc. | Hosting of the website and API | Functions run in Frankfurt (EU); US company |
| Supabase Inc. | Database and sign-in | Frankfurt (EU); US company |
| Resend Inc. | Invitation and password-reset emails | US company |
| TypeSafe AI, Inc. (Jev model) | Scoring profile text against the criteria | United States |
TypeSafe states in its privacy policy that it does not train or fine-tune AI models on the input it receives and does not disclose that input to third parties other than its own service providers. Its services are hosted in the United States, and it keeps data for as long as reasonably necessary to provide them.
Where a sub-processor is established outside the EU, transfers rely on the safeguards in that party’s data processing agreement. We do not sell personal data, and we do not use it for advertising, for profiling beyond the scoring purpose, or to train our own models.
6. Data in your browser
The extension uses no cookies. It uses Chrome’s extension storage:
| What | Where | How long |
|---|---|---|
| Session token | Chrome session storage (memory) | Until you sign out, close the browser, or the session expires (8 hours) |
| Saved searches: role, criteria, profiles read (name, link, text), scores, notes, page address | Chrome local storage, per account, up to 20 searches | Until you delete the search, clear the page, or remove the extension |
This data is not synced to Google or to the JEFF server. Anyone with access to your Chrome profile can see it, so delete saved searches you no longer need.
The website at app.jeffscreens.com keeps your session token in the browser’s session storage while you are signed in; it is removed when you sign out or close the tab. The website uses no cookies and no analytics or tracking.
7. Retention
| Data | Retention |
|---|---|
| Profile text, criteria, scores (JEFF server) | Not stored; only for the duration of the request |
| Profile text and criteria (model provider) | According to TypeSafe’s privacy policy (section 5) |
| Session tokens (hash) | Up to 8 hours |
| Rate-limit keys (hash) | About 1 day after they expire |
| Invitations | Valid for 24 hours |
| Network indicator | 30 days |
| Account data, usage counts and action history | For as long as the agency’s contract runs; on request we delete or anonymise it afterwards |
Deleted data may remain in database backups for the backup retention period of our database provider.
8. Security
- All connections use HTTPS, and the database connection verifies its certificate.
- Passwords are managed by Supabase Auth. Session tokens and invitation codes are stored only as hashes.
- The model provider’s key is stored encrypted (AES-256-GCM).
- Each agency sees only its own data; access is checked on the server.
- The extension loads no external code.
9. Your rights
You have the right to access, correct, delete, restrict and port your data, and to object to processing. Recruiters and administrators can contact us at hello@klikwork.com.
10. LinkedIn
JEFF is not affiliated with, endorsed by or sponsored by LinkedIn Corporation. Using JEFF does not change your own obligations under LinkedIn’s terms.
11. Changes and contact
We may update this policy; the date at the top shows the current version. We tell agencies about material changes in advance.
Klikwork · Assendorperdijk 1, 8012 EG Zwolle, the Netherlands · KvK 24388851 · hello@klikwork.com