VOOZH about

URL: https://apify.com/giovannibiancia/gitlab-star-gazer-actor

⇱ Gitlab Star Gazer Actor Β· Apify


Pricing

from $30.00 / 1,000 profiles

Go to Apify Store

Gitlab Star Gazer Actor

Extract profiles of users who starred any GitLab repository β€” with emails, linkedin, instagram and phone numbers scraped from personal websites. Built for B2B lead generation and developer outreach.

Pricing

from $30.00 / 1,000 profiles

Rating

0.0

(0)

Developer

πŸ‘ Giovanni Bianciardi

Giovanni Bianciardi

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

a month ago

Last modified

Share

GitLab Star Gazer - Scrape GitLab Starrers and Extract Contact Info

GitLab Star Gazer is an Apify Actor that collects every user who starred a GitLab repository and enriches their profile with contact information: email addresses, phone numbers, and social media profiles scraped from their personal websites.

Use it for developer lead generation, open-source community outreach, sales prospecting, and competitive intelligence on GitLab repositories.


πŸ’‘ Before you run this scraper

πŸ‘ Image

Some datasets like this one are already available ready-to-use on bananalitycs.com β€” download instantly or request custom delivery.

πŸ‘ Image
  πŸ‘ Image

What It Does

  1. Fetches all starrers of any public GitLab repository with full pagination support
  2. Enriches each profile via the GitLab API - name, bio, location, organization, follower count, LinkedIn, Twitter
  3. Scrapes the personal website listed on the GitLab profile to extract:
    • Email address (mailto links + regex fallback)
    • Phone number (tel links + regex fallback)
    • LinkedIn, Twitter/X, Instagram, YouTube, Reddit, Facebook, TikTok profile URLs

The result is a ready-to-use contact list of developers who expressed interest in a specific technology or project.


Key Features

FeatureDetails
Full starrers paginationCollects every star, no artificial cap
GitLab profile enrichmentName, bio, organization, location, followers, LinkedIn, Twitter
Email extractionFrom GitLab public email and personal website
Phone extractionFrom personal website (tel links and regex)
Social media discoveryLinkedIn, Twitter/X, Instagram, YouTube, Reddit, Facebook, TikTok
GitLab token supportPersonal Access Token for higher rate limits and private repos
Max results limitSet a cap for quick tests or cost control
Configurable enrichmentToggle profile enrichment and website scraping independently

Use Cases

  • Sales prospecting: Build a contact list of developers who starred a competitor repo and reach out directly
  • Developer outreach: Contact contributors or early adopters of an open-source project
  • Community growth: Find active GitLab users in your niche who have public contact info
  • Market research: Analyze who is watching a repository - organization, location, follower count
  • Talent sourcing: Identify developers interested in a specific technology stack

Input Parameters

ParameterTypeRequiredDefaultDescription
ownerstringYes-GitLab username, group or namespace (e.g. gitlab-org)
repostringYes-Repository name (e.g. gitlab)
gitlab_tokenstringNo-Personal Access Token - increases rate limits and allows private repos
max_resultsintegerNo0Max starrers to collect. 0 = unlimited
enrich_profilesbooleanNotrueFetch full profile data for each user via GitLab API
scrape_websitesbooleanNotrueVisit each personal website to extract contact info and social links

Getting a GitLab Token

  1. Go to gitlab.com/-/user_settings/personal_access_tokens
  2. Click Add new token
  3. Select the read_api scope (read-only access is sufficient)
  4. Copy the token and paste it into the gitlab_token field

Without a token the actor uses unauthenticated requests, which are subject to GitLab's IP-based rate limits. For repositories with hundreds or thousands of stars, a GitLab token is strongly recommended.


Output Data

Each record in the dataset represents one starrer. Example output:

{
"repo_owner":"gitlab-org",
"repo_name":"gitlab",
"username":"johndoe",
"gitlab_id":1234567,
"name":"John Doe",
"company":"Acme Corp",
"location":"San Francisco, CA",
"bio":"Full-stack developer. Open source enthusiast.",
"followers":342,
"following":120,
"profile_url":"https://gitlab.com/johndoe",
"avatar_url":"https://secure.gravatar.com/avatar/...",
"website":"https://johndoe.dev",
"email":"john@example.com",
"email_from_website":"contact@johndoe.dev",
"phone_from_website":"415-555-0123",
"linkedin":"https://www.linkedin.com/in/johndoe",
"twitter":"https://twitter.com/johndoe",
"instagram":"https://www.instagram.com/johndoe",
"youtube":null,
"reddit":null,
"facebook":null,
"tiktok":null,
"starred_since":"2024-03-15T10:22:00Z"
}

Output Fields Reference

FieldSourceDescription
usernameGitLab APIGitLab login handle
gitlab_idGitLab APIUnique numeric GitLab user ID
nameGitLab APIDisplay name
companyGitLab APIOrganization field from GitLab profile
locationGitLab APILocation field from GitLab profile
bioGitLab APIProfile bio text
followers / followingGitLab APIFollower and following counts
profile_urlGitLab APILink to the GitLab profile
websiteGitLab APIPersonal website URL as listed on GitLab
emailGitLab APIPublic email if set on the GitLab profile
linkedinGitLab API / scrapeLinkedIn URL from GitLab profile or website
twitterGitLab API / scrapeTwitter / X URL from GitLab profile or website
email_from_websiteWebsite scrapeEmail address found on personal website
phone_from_websiteWebsite scrapePhone number found on personal website
instagramWebsite scrapeInstagram profile URL
youtubeWebsite scrapeYouTube channel URL
redditWebsite scrapeReddit profile URL
facebookWebsite scrapeFacebook profile URL
tiktokWebsite scrapeTikTok profile URL
starred_sinceGitLab APIISO 8601 timestamp when the star was added

How Website Scraping Works

When scrape_websites is enabled, the actor visits the URL in each user's GitLab website_url field and:

  1. Parses the HTML with BeautifulSoup
  2. Looks for mailto: anchor tags first, then falls back to regex scanning the full page text
  3. Looks for tel: anchor tags first, then falls back to regex for phone numbers
  4. Searches all anchor tags for known social media domain patterns (LinkedIn, Twitter/X, Instagram, YouTube, Reddit, Facebook, TikTok)

Only the first match per field is returned. The scraping step is skipped if the user has no personal website listed. LinkedIn and Twitter found directly in the GitLab profile take priority over values scraped from the website.


Rate Limits and Performance

ConditionGitLab API Rate Limit
No token (unauthenticated)IP-based limits (varies by endpoint)
With Personal Access TokenPer-user limits (higher, varies by endpoint)

With enrich_profiles enabled, each starrer costs 1 API call. A repo with 1,000 stars requires approximately 1,010 requests total (10 paginated starrer pages + 1,000 profile lookups). A GitLab token is recommended for repos with many stars.

The actor automatically waits when a rate limit is hit (HTTP 429) and resumes when the reset window opens (up to 10 minutes). If the wait would exceed 10 minutes, the actor stops early and logs a warning with instructions to add a GitLab token.


Tips

  • Test with max_results set to 10 before running a full collection
  • Set enrich_profiles: false and scrape_websites: false for a lightweight list of usernames only
  • Export to CSV directly from the Apify Console for use in CRMs or email outreach tools
  • Schedule the actor to run on a recurring basis to capture new starrers as they appear
  • GitLab exposes LinkedIn and Twitter directly in user profiles β€” no website scraping needed for those fields

You might also like

Gitlab Email Scraper - Advanced, Fast & Cheapest

contacts-api/gitlab-email-scraper-fast-advanced-and-cheapest

πŸ§‘β€πŸ’» GitLab Email Scraper allows you to extract developer and organization emails from GitLab profiles πŸ”Ž Scale tech hiring and B2B outreach πŸ“§

Github Star Gazer Actor

giovannibiancia/github-star-gazer-actor

Extract every user who starred any GitHub repository. Get name, company, location, website, email, and linkedin. Perfect for B2B lead generation and DevRel outreach.

πŸ‘ User avatar

Giovanni Bianciardi

14

GitLab Jobs & Companies Scraper

crawlerbros/gitlab-jobs-companies-scraper

Scrape public GitLab job listings and company-careers profile data from GitLab's live Greenhouse board

GitLab Email Scraper – Advanced, Cheapest & Reliable πŸ“§βš‘πŸ“·

contactminerlabs/gitlab-email-scraper---advanced-cheapest-reliable

πŸ” Scrape GitLab Emails Enter your search parameters to collect verified contact emails from public GitLab profiles, along with profile title, bio snippet, source URL & platform info βœ‰οΈπŸ“Š Perfect for lead generation, influencer outreach & data enrichment in tools like Google Sheets or CRMs⚑🧩

πŸ‘ User avatar

ContactMinerLabs

3

GitLab Public Projects Scraper | Stars, Forks, Topics

parseforge/gitlab-public-projects-scraper

Harvest records from multiple Gitlab sources in a single run and get a unified, normalized result set. Pull names, identifiers, dates, descriptions, status flags and source links per record. Perfect for research, lead generation and intelligence pipelines.

GitLab.com Public Projects Scraper

gio21/gitlab-projects-scraper

Search and scrape public GitLab.com projects by query. Returns name, namespace, description, stars, forks, default branch, topics, URLs, dates. Pay per project returned.

Gitlab Scraper | Fast & Reliable | $2 / 1k

fatihtahta/gitlab-scraper

Turn GitLab into a clean dataset. Scrape public projects and user profiles with rich metadata: names, namespaces, descriptions, topics, stars, forks, visibility and activity timestamps. Great for tech research, competitor tracking, lead lists and spotting fast-moving projects.

GitLab Jobs Scraper

moving_beacon-owner1/gitlab-jobs-scraper

An Actor scrapes public job postings from GitLab’s Greenhouse board and lets you filter results by department, location, or title. It returns structured job data such as title, location, department, job URL, and optional full description and salary info, with a limit on total jobs per run.

2