GitHub Repo Audience Scraper — Forkers & Watchers
Pricing
from $1.50 / 1,000 results
GitHub Repo Audience Scraper — Forkers & Watchers
Export the developers engaged with any GitHub repository — the people who forked, watch, or contributed to it — enriched with name, company, location, website and X/Twitter. Build high-intent developer lead lists. No token needed for forkers and contributors.
Pricing
from $1.50 / 1,000 results
Rating
0.0
(0)
Developer
Haketa
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
0
Monthly active users
2 days ago
Last modified
Features
Share
🎯 GitHub Repo Audience Scraper — Forkers, Watchers & Contributors as Developer Leads
Export the developers who forked, watch, or contributed to any repository on GitHub — as an enriched, spreadsheet-ready developer lead list with 1,000+ deep pagination unlocked.
This high-performance GitHub scraper extracts the real engineers actively building with any open-source framework or developer tool. Every developer is enriched with full name, current company, geographical location, personal website, X/Twitter handle, follower count, and public email (optional). No login or token required for forkers and contributors — just paste a repo and press Start.
Export every developer record directly to JSON, CSV, Excel, or API.
Built for dev-tool & SaaS marketers, technical sourcers, DevRel teams, open-source founders, B2B sales development representatives (SDRs), and tech market researchers seeking high-intent developer audiences.
⚡ At a glance
| Feature | Capability | Details |
|---|---|---|
| Target Platform | GitHub | World's premier software collaboration network |
| Audience Signals | Forkers, Watchers, Contributors | Highest-intent developer engagement mechanisms |
| Authentication | Optional Token | Forkers & contributors require zero token; token unlocks watchers |
| Pagination Scale | 1,000+ developers per run | Uncapped multi-page pagination (maxItems: 0 = unlimited) |
| Profile Enrichment | Automatic Data Mining | Company, bio, location, website, Twitter, follower counts |
| Deduplication Engine | Multi-Source Deduplication | Cross-engagement deduplication merges duplicates into unified rows |
| Extraction Speed | ~50 profiles / 20s | Concurrent profile resolution and batched GraphQL API |
| Multi-Repo Support | Batch Category Sweeps | Mine multiple repos in one run with automatic per-repo quotas |
| Output Formats | JSON, CSV, Excel, XML | Apify Dataset, REST API, Webhooks, Google Sheets, Make, Zapier |
🔎 Why scrape GitHub repo audiences?
GitHub is the global registry of developer talent and software adoption. While starring a repository is a passive, low-commitment action, forking, watching, and contributing represent unmistakable proof of active technical evaluation:
- 🍴 Forkers: Engineers who cloned the codebase to customize, build, or deploy. This is the single highest-intent buyer and user signal for developer tooling.
- 👁️ Watchers: Developers actively tracking releases, breaking changes, and issues, indicating architectural investment in that ecosystem.
- 💻 Contributors: Experienced practitioners who have written and committed production code to the project.
Collecting this developer audience manually is tedious. Fork lists are paginated, profiles must be clicked individually, and rate limits obstruct bulk research.
A dedicated GitHub repo audience data extractor automates this entire pipeline:
- 🎯 High-Intent Dev-Tool Lead Generation: Target engineers who forked competitor repositories or complementary libraries (e.g. scrape forkers of
supabase/supabaseif offering database tools). - 🧲 Technical Recruiting & Executive Sourcing: Discover talent with proven hands-on expertise in specific frameworks (e.g., PyTorch, Rust, LangChain), filtered by corporate affiliation and city.
- 🚀 Developer Relations (DevRel) & Community Engagement: Identify your project's power users, top advocates, and most prolific forkers to invite them to community programs or beta tests.
- 📊 Ecosystem & Market Share Analytics: Quantify the overlap between competing frameworks (e.g., Next.js vs. Remix vs. SvelteKit) by cross-referencing active forkers.
- 🏢 B2B Account Mapping & Tech Stack Discovery: Map corporate adoption by grouping forkers by their
@companyhandle to uncover hidden enterprise usage.
✨ Key features & capabilities
- ✅ Three Distinct Audience Segments: Choose any combination of forkers, watchers, and contributors depending on your intent criteria.
- ✅ Token-Free Operation: Extract hundreds of forkers and contributors without configuring a GitHub Personal Access Token.
- ✅ Deep 1,000+ Pagination: Multi-page crawling across cursor-based GraphQL endpoints and REST pagination without artificial limits.
- ✅ Automatic Profile Enrichment: Enriches usernames with display name, bio, company handle, location, website, Twitter, follower count, and hireable status.
- ✅ Engagement Tagging: Merges multi-action users into a single deduplicated row with unified tags (
forker,contributor). - ✅ Multi-Repository Batch Mining: Supply multiple repositories (e.g.
facebook/react,vercel/next.js,sveltejs/svelte) to build comprehensive ecosystem rosters. - ✅ Balanced Per-Repo Caps: Use
maxPerRepoto ensure multi-repo runs collect a balanced cross-section across different projects. - ✅ Rate-Limit Resilience: Incorporates exponential backoff and proxy rotation to gracefully navigate GitHub API rate limits.
🎯 High-impact use cases
1. Developer Tool Lead Generation
Dev-tool founders can export the forkers of an open-source project in their category. If you offer a monitoring tool for Next.js, scrape the forkers of vercel/next.js to build an outbound email and social outreach campaign.
2. High-Precision Technical Recruiting
Sourcers can discover candidates based on real code engagement rather than self-reported LinkedIn keywords. Filter by location (e.g. London, Berlin, San Francisco) and company to identify engineers working at elite tech firms.
3. Open-Source Ecosystem Research
Venture capital investors can analyze the velocity and caliber of developers engaging with emerging open-source repositories to identify break-out infrastructure startups.
4. Account-Based Marketing (ABM) for Tech Infrastructure
B2B sales teams can detect developer groundswell inside Fortune 500 targets by identifying employees using company handles (@google, @microsoft, @stripe) to fork specific open-source components.
🔍 Understanding developer engagement signals
Not all GitHub activities convey equal intent. Here is how to evaluate each signal for commercial and recruiting campaigns:
| Signal | Effort Level | Technical Intent | Best For |
|---|---|---|---|
| Stars | Low (Single Click) | Curiosity / Bookmarking | Broad awareness lists |
| Watchers | Medium (Notification Subscription) | Long-term Tracking | Ecosystem monitoring, beta product feedback |
| Forkers | High (Repository Clone & Workspace Setup) | Active Building & Evaluation | Direct Dev-Tool Sales, High-Value Outreach |
| Contributors | Very High (Code Creation & PR Merges) | Core Domain Expertise | Senior Technical Recruiting, Advisory Roles |
By prioritizing Forkers and Contributors, technical recruiters and B2B SDRs avoid wasting time on passive lurkers and focus solely on builders.
⚙️ Step-by-step tutorial
- Select Target Repositories: Identify 1 to 5 repositories whose audience matches your ideal developer profile (e.g.,
langchain-ai/langchainfor AI engineers). - Configure Audience Types: Choose
forkersandcontributorsfor high-intent builders, or tickwatchers(adding your token) for continuous community members. - Set Quotas: Define your
maxItems(e.g.1000for deep sweeps) and optionalmaxPerRepoto keep multi-repo comparisons balanced. - Run the Actor: Click Start on the Apify Console. Monitor live enrichment status in the run log.
- Export Your Dataset: Download the results as a CSV, Excel, or JSON file.
- Integrate with CRM or Email Tools: Upload your enriched developer roster into Apollo, HubSpot, Clay, or your internal ATS.
📥 Input parameters
The Actor is pre-configured for immediate execution. Provide one or more repositories and choose your audience filters.
| Parameter | Type | Default | Description |
|---|---|---|---|
repos | array | ["facebook/react"] | Repositories to analyze. Enter as owner/repo (e.g. facebook/react) or paste full repository URLs. |
audienceTypes | array | ["forkers", "watchers", "contributors"] | Types of engaged users to collect: forkers, watchers, contributors. |
githubToken | string | "" | Optional personal access token. Unlocks watchers audience and captures public emails. |
maxItems | integer | 50 | Maximum total developers to collect across all repos. Set 0 for auto/unlimited. |
maxPerRepo | integer | 0 | Maximum developers to collect per individual repository. 0 = no limit. |
enrichProfiles | boolean | true | Fetch rich profile metadata (name, company, location, social links). Disable for fast username-only lists. |
proxyConfiguration | object | { "useApifyProxy": true } | Standard Apify Datacenter proxy configuration for request rotation. |
Sample Input JSON
{"repos": ["facebook/react","vercel/next.js"],"audienceTypes": ["forkers","contributors"],"maxItems": 200,"maxPerRepo": 100,"enrichProfiles": true,"proxyConfiguration": {"useApifyProxy": true}}
📤 Output dataset & field structure
Each record represents an individual developer enriched with firmographics, social handles, and engagement tags.
Real Output Example
{"username": "acdlite","name": "Andrew Clark","bio": "React core team, Next.js, Vercel","company": "@vercel","location": "New York","websiteUrl": "https://andrewclark.io","email": "andrew@example.com","twitter": "acdlite","followersCount": 15200,"followingCount": 140,"hireable": null,"avatarUrl": "https://avatars.githubusercontent.com/u/3624098?v=4","profileUrl": "https://github.com/acdlite","type": "User","repo": "facebook/react","engagements": "contributor,forker"}
📊 Extracted fields & data coverage
👤 Core Developer Identity
| Field Name | Type | Coverage | Description |
|---|---|---|---|
username | string | 🟢 High (100%) | Developer's GitHub username handle |
name | string | 🟢 High (~80%) | Full display name set on the public profile |
profileUrl | string | 🟢 High (100%) | Direct link to their GitHub profile |
type | string | 🟢 High (100%) | Entity classification: User, Organization, or Bot |
avatarUrl | string | 🟡 Conditional (~75%) | CDN URL to their profile avatar image |
🏢 Professional & Geographical Details
| Field Name | Type | Coverage | Description |
|---|---|---|---|
company | string | 🟡 Conditional (~40%) | Corporate employer or organization (often formatted as @handle) |
location | string | 🟡 Conditional (~55%) | Self-reported residential or office location |
bio | string | 🟡 Conditional (~50%) | Personal biography / developer summary |
hireable | boolean | 🟡 Conditional (~20%) | Indicates whether developer flagged their profile open to work |
🌐 Online Presence & Social Handles
| Field Name | Type | Coverage | Description |
|---|---|---|---|
websiteUrl | string | 🟡 Conditional (~40%) | Link to personal portfolio, blog, or company website |
twitter | string | 🟡 Conditional (~25%) | X / Twitter handle linked directly on the profile |
email | string | 🟡 Conditional (~10%) | Public developer email (requires token with user:email scope) |
📊 Influence & Engagement Signals
| Field Name | Type | Coverage | Description |
|---|---|---|---|
followersCount | number | 🟢 High (~75%) | Total followers on GitHub (key developer influence metric) |
followingCount | number | 🟢 High (~85%) | Total accounts followed |
repo | string | 🟢 High (100%) | Target repository where engagement was detected (owner/repo) |
engagements | string | 🟢 High (100%) | Detected activities: forker, watcher, contributor |
💻 Developer integration examples
Node.js / JavaScript (Apify Client)
import { ApifyClient } from 'apify-client';const client = new ApifyClient({token: 'YOUR_APIFY_TOKEN',});// Run GitHub Repo Audience Scraperconst run = await client.actor('haketa/github-repo-audience-scraper').call({repos: ['facebook/react', 'vercel/next.js'],audienceTypes: ['forkers', 'contributors'],maxItems: 300,enrichProfiles: true,});// Fetch dataset itemsconst { items } = await client.dataset(run.defaultDatasetId).listItems();console.log(`Collected ${items.length} developers.`);items.forEach((dev) => {console.log(`${dev.username} (${dev.name || 'N/A'}) | ${dev.company || 'Independent'} | ${dev.engagements}`);});
Python (Apify Client)
from apify_client import ApifyClientclient = ApifyClient("YOUR_APIFY_TOKEN")run_input = {"repos": ["supabase/supabase", "prisma/prisma"],"audienceTypes": ["forkers"],"maxItems": 250,"maxPerRepo": 125,"enrichProfiles": True,}run = client.actor("haketa/github-repo-audience-scraper").call(run_input=run_input)for item in client.dataset(run["defaultDatasetId"]).iterate_items():print(f"@{item.get('username')} — {item.get('company')} — {item.get('location')}")
cURL (Apify REST API)
curl "https://api.apify.com/v2/acts/haketa~github-repo-audience-scraper/runs?token=YOUR_APIFY_TOKEN" \-H "Content-Type: application/json" \-d '{"repos": ["facebook/react"],"audienceTypes": ["forkers", "contributors"],"maxItems": 100,"enrichProfiles": true}'
📈 DevRel & Outbound Outreach Strategies
1. Reaching Out to Forkers
When contacting engineers who forked a repository, acknowledge their active project engagement:
"Hi [Name], noticed you recently forked [Repository]. We built an open-source extension that simplifies [Key Pain Point, e.g. state management or local caching] for that exact architecture. Would love your candid technical feedback on whether this solves [Specific Problem]."
2. Sourcing Candidates by Code Ownership
When recruiting for specialized roles, cross-reference engagements === "contributor" with followersCount:
- Engineers who contributed to complex open-source infrastructure (e.g. Kubernetes, Chromium, or Rust compilers) possess verified systems architecture capabilities.
- Personal websites and X/Twitter handles provide direct channels for non-recruiter outreach that yield significantly higher response rates than generic LinkedIn InMails.
💡 Pro tips & best practices
- 💡 Focus on Forkers for Commercial Lead-Gen: Forkers have taken active steps to clone code to their personal namespace. They are actively evaluating tools and building solutions.
- 💡 Filter by Company for Account-Based Marketing: Export results to CSV or Excel and filter by
companycontaining@company_nameto identify shadow IT or developer interest within target enterprise logos. - 💡 Sort by
followersCountfor Influencer Sourcing: Sort your export descending by follower count to discover the most respected engineering voices in that technology stack. - 💡 Use Personal Access Tokens for Large Jobs: While forkers and contributors work without a token, adding a personal access token unlocks GraphQL batching (~80 profiles per call) and dramatically accelerates multi-thousand record sweeps.
- 💡 Turn Off Enrichment for High-Speed Sweeps: If you only need a list of GitHub usernames for custom matching, toggle
enrichProfiles: falseto harvest thousands of handles in seconds. - 💡 Target Complementary Libraries: Instead of only scraping direct competitors, scrape the audience of complementary libraries your target audience uses (e.g. scrape
tailwindlabs/tailwindcssif you offer UI component kits). - 💡 Geographical Filtering for Local Dev Events: Filter by
location(e.g.Berlin,Tokyo,Austin) to invite local developers to meetups, hackathons, or regional developer conferences.
❓ Frequently Asked Questions (FAQ)
Do I need a GitHub token to use this scraper?
No. Collecting forkers and contributors works 100% token-free out of the box. Adding a free Personal Access Token unlocks the watchers audience and enables faster batch profile enrichment.
How many developers can I collect from a single repository?
You can collect up to thousands of developers. The Actor paginates through entire audience lists until your maxItems or maxPerRepo cap is reached.
Does this Actor extract developer emails?
GitHub only exposes emails that developers choose to make publicly visible on their profiles. Supplying a token with the user:email scope allows extraction of public email addresses.
Are bot accounts excluded?
The type field distinguishes between User, Organization, and Bot. You can easily filter out bots during downstream processing.
Can I run this scraper on multiple repositories at once?
Yes. Add multiple repositories in the repos array. Use maxPerRepo to ensure the collection remains evenly balanced across all targets.
How do I generate a free GitHub Personal Access Token?
- Log in to GitHub and navigate to Settings → Developer settings.
- Select Personal access tokens → Tokens (classic).
- Click Generate new token (classic).
- You do not need to check any administrative scopes for basic reading; check
user:emailif you wish to collect public email addresses. - Copy the generated token and paste it into the
githubTokeninput field.
What are the GitHub API rate limits?
Without a token, GitHub limits unauthenticated requests to 60 per hour per IP. The Actor automatically uses Apify Proxy to rotate IPs, allowing significant data collection without limits. With a personal token, GitHub grants 5,000 requests per hour, allowing you to enrich tens of thousands of developer profiles rapidly.
What export formats are supported?
JSON, CSV, Excel, and XML formats are supported directly through the Apify Console. You can also integrate the dataset stream into Google Sheets, Airtable, Zapier, Make, n8n, and custom webhooks.
Can I enrich existing lists of GitHub usernames?
Yes! If you already have a list of usernames, you can pass them into our companion GitHub Developer Scraper to extract full biographical and social profiles.
🔗 Related developer intelligence actors
- GitHub Developer Scraper — Find Devs by Location & Language
- GitHub Repository Scraper — Search Repos by Topic & Stars
- GitHub Followers Scraper — Developer Leads
- npm Package Scraper — Downloads, Maintainers & Metadata
- WordPress Plugin & Theme Scraper — Installs, Downloads, Ratings
- ProductHunt Launches & Makers Scraper
📋 Changelog
- v1.2 (2026-11):
- 🔓 Unlocked 1,000+ deep pagination: Standardized
maxItems: 0for auto/unlimited audience collection and removed artificial batch caps. - ⚡ Optimized prefill execution: Configured default test prefill to 50 for rapid platform verification in under 30 seconds.
- 🛠️ Refined field normalization: Improved parsing for multi-engagement combinations, social handles, and location cleaning.
- 🛡️ Enhanced rate-limit backoff: Upgraded retry policies and proxy failover for high-volume GitHub API calls.
- 🔓 Unlocked 1,000+ deep pagination: Standardized
- v1.1 (2026-10):
- Added support for multi-repository quota balancing (
maxPerRepo). - Integrated concurrent token-free HTML profile enrichment fallback.
- Added support for multi-repository quota balancing (
- v1.0 (2026-09):
- Initial public release featuring forkers, watchers, and contributors extraction.