Privacy policy
Last updated 27 August 2026
[FILL IN] need real values before publication.This policy explains how BlueGrid.io (“we”) handles personal data in GitSearch. It covers two very different groups of people, and it is important to know which one you are:
- Users — people who sign in to GitSearch on behalf of a customer company. Section 3 is about you.
- Profiles — people who have a public account on GitHub and whose public profile information GitSearch collects and stores. We did not get your data from you, and you probably did not know we had it. Sections 4 to 6 are about you, and section 9 explains how to make us delete it.
Both the EU General Data Protection Regulation (GDPR) and the Serbian Law on Personal Data Protection (Zakon o zaštiti podataka o ličnosti, “ZZPL”) apply to this service: we are established in Serbia, our servers are in Germany, and the people whose data we process include residents of the EU.
1. Who is responsible
The controller for the processing described here is:
[FILL IN — registered company name, e.g. BlueGrid d.o.o.]
[FILL IN — street and number]
[FILL IN — postal code and city]
Serbia
Email: [FILL IN — privacy@bluegrid.io]
Representative in the Union under Article 27 GDPR: [FILL IN — name and address of the Article 27 representative in the EU, or state that none is appointed and why]
Data protection officer: [FILL IN — name and contact details, or state that no DPO is required under Article 37 GDPR / Article 56 ZZPL and why].
Where a customer company uses GitSearch to build its own candidate records, that company is a separate controller for what it does with exported data. Our role in relation to a customer's own account data is described in the data processing agreement summary.
2. What GitSearch does
GitSearch is a recruitment research tool. It queries the public GitHub API for developer profiles matching criteria such as programming language, location and activity, stores the results in its own database so that repeated searches do not have to hit GitHub again, and lets our customers browse and export them.
Everything GitSearch collects about a GitHub profile is information that GitHub publishes openly and that anyone can read without an account. We do not scrape github.com web pages; we only use GitHub's official REST and GraphQL APIs, and we do not attempt to access private repositories, private email addresses held by GitHub, or any information behind a login.
3. If you are a user of GitSearch (Article 13 GDPR)
What we store. Your email address, your name if you provide one, a hash of your password (never the password itself), your role and status, the account you belong to, the time of your last sign-in, the searches you run and their parameters, and an audit record of administrative actions you take. Audit records include your IP address and browser user agent.
Why, and on what legal basis.
- To give you access to the service and keep your session working — Article 6(1)(b) GDPR, performance of the contract between us and your employer, and our legitimate interest in operating the service, Article 6(1)(f).
- To keep the service secure, prevent abuse and investigate incidents, including the audit log — Article 6(1)(f), legitimate interest in security and accountability.
- To honour usage limits and bill your employer correctly — Article 6(1)(b) and, for retention of invoices, Article 6(1)(c), legal obligation.
How long. Your user record lasts as long as your employer's account exists and you are a member of it. When your user is deleted we remove the record; audit entries that name you are kept for [FILL IN — proposed: 24 months] so that administrative actions remain accountable, then deleted. Search history is kept for [FILL IN — proposed: 12 months].
Administrators can see your activity.Administrators of your company's account can see your searches, your role and your sign-in times. Super users employed by BlueGrid.io can additionally impersonate your user for support purposes; every impersonated action is written to the audit log with both identities, and a banner is shown for the duration.
4. If you are a GitHub user whose profile we hold (Article 14 GDPR)
We hold personal data about you that we did not obtain from you. Article 14 GDPR requires us to tell you the following.
Where we got it. Exclusively from the public GitHub API at api.github.com — the user search, user, repository, followers and commit-history endpoints. Your GitHub account is the source; we have no other. We do not scrape github.com web pages.
What we hold. Your GitHub login and numeric id, display name, avatar URL, profile URL, company, location, biography, website, social handles, public email address if you have chosen to publish one, follower and following counts, public repository count, account creation date, your “available for hire” flag, a list of your public non-fork repositories with their names, descriptions, programming languages, star and fork counts and last push dates, a derived summary of which languages you use most, and the list of accounts that follow you. Where a customer has explicitly requested it, we may additionally hold an email address taken from the metadata of your public commits — see section 6.
Why we process it, and our legitimate interest. The legal basis is Article 6(1)(f) GDPR: the legitimate interests pursued by us and by our business customers in identifying candidates with relevant technical skills for recruitment purposes. We have carried out a balancing test and concluded that:
- the data is information you have chosen to publish on a professional platform whose stated purpose includes making your work visible;
- none of it falls into a special category under Article 9 GDPR, and we do not enrich it with data from other sources, infer characteristics about you, score you, or make automated decisions about you;
- recruitment outreach based on published professional information is a use you can reasonably anticipate; and
- the intrusion is limited by short retention, no profiling, and an unconditional right for you to have the record deleted (see section 9).
If you disagree with that assessment, section 9 tells you how to object. We will act on an objection without asking you to justify it.
Who receives it. Our business customers, who are recruiters and hiring companies, see your record inside GitSearch and can export it to a spreadsheet or an applicant tracking system. Once exported, that customer is an independent controller for its own copy. We do not sell profile data and we do not publish it.
How long we keep it. See section 8.
Why you did not hear from us sooner. Article 14(1) would normally require us to contact you directly. Article 14(5)(b) relieves us of that where doing so would involve disproportionate effort. GitSearch holds records for a large number of GitHub users, most of whom have not published a contact address; writing individually to each would be disproportionate and would itself amount to unsolicited contact with people who have not asked to hear from us. Instead, as that provision permits, we make this notice publicly available here. [FILL IN — confirm this reasoning with counsel and record the assessment; consider whether a link to this page should be included in any outreach message a customer sends.]
5. Caching and how records get created
When a user runs a search, GitSearch asks GitHub for a list of matching accounts and then fetches full details only for the profiles actually displayed on the page the user is looking at. Those profiles are stored in a shared database used by all customers, so that the same profile is not fetched twice. A profile record therefore exists because at least one customer's search returned it, not because anyone selected you personally.
Each record notes when it was first seen, when it was last refreshed from GitHub, and when it last appeared in any search result. Records that no user has opened or matched are still subject to the retention rule in section 8.
There is no background crawler. GitSearch does not systematically harvest GitHub; it only stores what its users' searches surface.
6. Email addresses taken from commit metadata
Git records an author email address inside every commit, and GitHub publishes that metadata for public repositories. Where a profile has no published contact address, GitSearch offers our customers a button that looks for an address in the metadata of your recent public commits.
Concretely, we ask GitHub's API for up to thirty recent commits that it has already attributed to your account, across at most five repositories — your own, and ones you have contributed commits to. We do not read commits GitHub has not attributed to you, and we do not clone repositories.
This is never automatic. It happens only when a user explicitly asks for it, one profile at a time or for a set of profiles they have selected, and only if the feature is enabled for that customer. We skip addresses that GitHub generates to protect you (@users.noreply.github.com), automation and bot addresses, and role addresses such as admin@ or noreply@. We also discard any address whose commit we cannot confidently attribute to you, so that a colleague's address in your repository is not recorded against your name. Addresses found this way are labelled “commit” in the interface so that our customers can see they were not published as contact details.
We recognise that an address in commit metadata is published for the technical purpose of attributing code, not for recruitment outreach, and that using it for a different purpose is a more intrusive processing activity than the rest of this service. It relies on the same legitimate interest basis, with a narrower margin. If you have published commits with a personal address and do not want it used this way, tell us and we will delete it and suppress your profile (section 9). [FILL IN — counsel should review whether this feature should be enabled by default, and whether a separate balancing record is required for it.]
7. Recipients, processors and hosting
We share personal data with:
- [FILL IN — hosting provider name] (Germany) — hosting of the application, database and queue. Processor under Article 28 GDPR.
- GitHub, Inc. — not a recipient of profile data, but the source of it. When GitSearch queries the GitHub API, GitHub sees the query and the credentials we use, not the identity of the user who typed it.
- Our business customers — as described in section 4, in their capacity as independent controllers for what they export.
- [FILL IN — email delivery provider, once one is chosen.]
- [FILL IN — any error monitoring or analytics provider, once one is introduced. None is used today.]
We do not sell personal data and we do not use it for advertising.
8. How long we keep things
- GitHub profile records: refreshed or deleted according to the profile cache lifetime, which defaults to 30 days. A record older than that is either refreshed from GitHub because someone opened it again, or becomes eligible for deletion. [FILL IN — confirm the deletion sweep is implemented and state its frequency; as of this draft, records are refreshed on access and no automatic purge job exists yet.]
- Email addresses found in commit metadata: the same lifetime as the profile record they belong to, and deleted immediately on request.
- Suppression list: when we delete a profile at someone's request we keep only the GitHub numeric id, in order to prevent the profile being collected again. This is a minimal record kept in your interest, on the basis of Article 17(3) and our legitimate interest in honouring your request durably. It is kept indefinitely unless you ask us to remove it.
- User accounts: for the life of the customer account.
- Audit log: [FILL IN — proposed 24 months].
- Search history: [FILL IN — proposed 12 months].
- Invoices and accounting records: as required by Serbian tax law, [FILL IN — typically 10 years].
9. Your rights, and how to delete your profile
Under the GDPR and the ZZPL you have the right to ask us for access to your data, to have it corrected or erased, to restrict or object to its processing, and to receive it in a portable form. Where processing rests on legitimate interest — which is the case for every GitHub profile record — you have the right to object at any time under Article 21 GDPR.
To have your GitHub profile removed, email [FILL IN — privacy@bluegrid.io] from an address associated with your GitHub account, or from any address quoting your GitHub login. We will:
- delete your profile record, your stored email addresses, your repository records and your follower relationships; and
- add your GitHub numeric id to a suppression list so that future searches never store your profile again.
We will not ask you to justify the request and we will not charge for it. We aim to act within 72 hours and will in any event respond within one month, as Article 12(3) requires.
We cannot recall copies that a customer exported before your request. If you tell us which employer contacted you, we will identify the customer and pass your objection on to them.
Complaints. You can complain to a supervisory authority. In Serbia this is the Commissioner for Information of Public Importance and Personal Data Protection (Poverenik za informacije od javnog značaja i zaštitu podataka o ličnosti), Bulevar kralja Aleksandra 15, 11000 Belgrade. In the EU you can complain to the authority in your country of residence, or to the authority with jurisdiction over our hosting in Germany, [FILL IN — the competent German state authority for the hosting location].
10. International transfers
Production data is stored in Germany, inside the European Economic Area. However, BlueGrid.io is established in Serbia and our staff administer the service from there, which means personal data is accessed from outside the EEA.
Serbia is not covered by an adequacy decision of the European Commission. Transfers of personal data from the EEA to us in Serbia therefore rely on appropriate safeguards under Article 46 GDPR, specifically the Commission's Standard Contractual Clauses, supplemented by [FILL IN — describe the technical and organisational supplementary measures actually in place: encryption in transit and at rest, access control, logging] and by a transfer impact assessment. [FILL IN — counsel must confirm the correct SCC module and that a transfer impact assessment has been completed and recorded.]
Serbia has ratified the Council of Europe Convention 108+ and its ZZPL is modelled closely on the GDPR, which supports but does not by itself substitute for those safeguards.
11. Security
We use TLS for all connections, store passwords only as salted hashes, keep API credentials encrypted at rest, restrict access to production data to the smallest possible number of staff, and log administrative actions. Sessions are held in cookies that are marked HttpOnly, SameSite=Lax and, in production, Secure.
No system is perfectly secure. If a breach occurs that is likely to result in a risk to your rights, we will notify the competent supervisory authority within 72 hours and, where the risk is high, notify affected people directly.
12. Automated decision-making
GitSearch ranks search results by relevance and by counts that GitHub publishes, such as follower numbers. That ranking is a search ordering, not a decision about you: it produces no legal or similarly significant effect, and no hiring decision is made by the system. There is no profiling within the meaning of Article 22 GDPR.
13. Changes to this policy
We will update this page when the service changes. The date at the top always reflects the current version. Where a change materially affects how we use profile data, we will describe it here rather than silently amending the text.