GitHub Org / Dev-Tool Company Lead Extractor
Pricing
from $8.00 / 1,000 org lead with contacts
GitHub Org / Dev-Tool Company Lead Extractor
Verified dev-tool / SaaS company leads from GitHub: MX/DNS emails + phones + socials + tech stack scraped from the org's OWN declared website, an A-D lead score, repo traction (stars + recency), an is_verified trust signal, and an org-readiness grade. No API keys, no proxy. Per-result pricing.
Pricing
from $8.00 / 1,000 org lead with contacts
Rating
0.0
(0)
Developer
Virtual Footprint LLC
Maintained by CommunityActor stats
0
Bookmarked
1
Total users
1
Monthly active users
6 hours ago
Last modified
Categories
Share
Turn GitHub into verified dev-tool / SaaS-company sales leads — MX/DNS-validated contact emails, phones, social profiles, tech stack and an A–D lead score, all scraped from the organization's OWN declared website (/orgs/{login} blog field), plus the org's repo traction (total stars / newest push / top repos), an is_verified trust badge, an org-readiness grade, and an "actively maintained within the window" signal.
Per-result pricing. You're charged only when an org returns a real contact signal — not for empty lookups. No API keys, no proxy required (GitHub's REST API is a public keyless endpoint). Supply your own optional GitHub token to lift the keyless rate limit from 60 req/hr to 5,000/hr for larger batches.
Why this exists
GitHub is the largest dev-tool / SaaS company directory on the planet — every dev-tool company has a GitHub organization namespace. Existing GitHub Apify actors are raw profile/email scrapers — they dump usernames or commit metadata and stop there. None produce verified B2B sales leads. This actor is the only one that turns GitHub Organization owners into ready-to-pitch company leads: it discovers repos by topic/language/star qualifiers, rolls them up to Organization-typed owners, walks to the org's own declared blog company website, and verifies a real business contact there (MX/DNS-checked email, phone, socials, tech stack) — the data a B2B sales team actually buys.
Incumbents (raw scrapers, none verified-contact lead-gen): louisdeconinck/github-email-scraper (5,587 totalRuns, no rating), kawsar/github-profile-scraper (1,139 runs), viralanalyzer/github-trending-scraper (376 runs).
What it does
For each GitHub Organization:
- Discovers repos via GitHub's keyless
/search/repositories?q=...(topic/language/star/pushed qualifiers) and/or resolves explicit org-logins/URLs. The search response carriesowner.typedirectly, so the Organization gate needs no extra call. - Keeps only Organization-typed owners — User/personal-account owners are dropped (the ToS-clean gate identical to the Show-HN / HuggingFace individual-author skip). GitHub user/org emails are never mined.
- Resolves the org via
/orgs/{login}, which returns the org's OWN declaredblogcompany website (e.g.vercel→ vercel.com,puppeteer→ pptr.dev) +is_verifiedtrust signal +followers/public_repos/created_at+company/location/twitter_username. - Filters honestly: orgs without a declared
blogare dropped (no company website to enrich → not billed) — the data-driven equivalent of Docker Hub's bare-official-image drop. Verified-only is optional. - Enriches the org's own website with the shared enrichment layer — MX/DNS-verified emails, NANP phones, socials, tech stack, A–D lead score. The
/orgsemailpublic-profile address is deliberately not surfaced — contact always comes from the org's own declared site (ToS-clean, identical to the App-StoresellerUrl/ Steamwebsite/ Docker Hubprofile_url/ JetBrainsvendor.urlpattern). - Rolls up all of an org's discovered repos into one lead (total stars, newest push, top repos) and emits an org-readiness grade (verified badge + traction + catalog + followers + reachability + maintenance recency → A–D) + a
newlyActiveflag.
Input
| Field | Type | Default | Description |
|---|---|---|---|
searchQueries | array | ["topic:developer-tools+stars:>500"] | GitHub search qualifiers passed to /search/repositories (e.g. "topic:developer-tools+stars:>500", "language:rust+stars:>1000", "topic:llm stars:>200"). |
orgs | array | [] | Explicit GitHub org logins (e.g. vercel) or github.com/{org} URLs. |
maxPerQuery | int | 25 | Cap on repos per search query (1–100). Keyless core limit = 60 req/hr → keep totals modest; supply a token for 5,000/hr. |
organizationsOnly | bool | true | Keep only Organization-typed owners (User owners dropped — ToS-clean gate). |
blogOnly | bool | true | Keep only orgs that declared their own blog website (the clean hop). Orgs without one are dropped, not billed. |
verifiedOrgsOnly | bool | false | Keep only is_verified orgs. |
activeWithinDays | int | 0 | Flag orgs whose newest repo pushed_at is within the trailing N days as newlyActive (0 = off). pushed_at is the newest repo activity, so this is an actively maintained within the window signal, not a created within the window claim. |
verifyEmails | bool | true | MX/DNS-validate the best contact email's domain. |
githubToken | string | "" | Your own optional GitHub PAT (public-read). Empty = keyless (60 req/hr); your token lifts to 5,000/hr. This is YOUR token, entered by you — never stored by us. |
concurrency | int | 3 | Parallel orgs/repos (1–8). Lower if you hit rate limits. |
proxyConfiguration | object | {} | Optional — only if you hit IP rate limits. |
Provide either searchQueries or orgs (or both).
Output (per org lead)
{"orgLogin": "TheAlgorithms","orgName": "The Algorithms","orgBlog": "https://the-algorithms.com/","isVerified": true,"company": null,"location": "India","twitterUsername": "the_algorithms","followers": 63118,"publicRepos": 44,"orgCreatedAt": "2016-07-16T08:17:02Z","orgHtmlUrl": "https://github.com/TheAlgorithms","repoCount": 1,"totalStars": 222867,"newestPush": "2026-07-11T00:39:35+00:00","topRepos": [{"name": "TheAlgorithms/Python", "stars": 222867, "pushedAt": "2026-07-11T00:39:35Z", "language": "Python", "description": "All Algorithms implemented in Python", "repoUrl": "https://github.com/TheAlgorithms/Python"}],"newlyActive": true,"emails": ["hello@the-algorithms.com"],"emailVerified": true,"phones": [],"socials": {"twitter": "https://twitter.com/the_algorithms", "linkedin": "https://www.linkedin.com/company/thealgorithms"},"techStack": ["Cloudflare", "Nginx"],"orgReadiness": "A","orgLabel": "Prime target — verified org, strong repo traction, broad catalog, reachable contact.","leadScore": "A","hasContact": true}
When an org's own website yields no email, the record still returns honestly — billed as an org_lead if it exposes a phone or social, or hasContact: false (not billed at all) if it exposes nothing.
Real run sample
Verified live on Apify (2026-07-19). The three records below are copied verbatim from the actual run datasets across three distinct inputs — not fabricated or rounded:
{"searchQueries":["topic:developer-tools+stars:>500"],"maxPerQuery":10}→ 7 orgs incl. ComposioHQ (verified, 3 real socials, no email — billed asorg_leadonly) and rtk-ai (MX-verifiedcontact@rtk-ai.appoff its own site,socials: {}honestly empty — billedorg_lead+verified_email).{"orgs":["vercel","puppeteer","pulumi"]}→ 3 orgs incl. pulumi (verified, MX-verifiedsales@pulumi.com+team@pulumi.com).{"searchQueries":["language:python+stars:>10000"],"verifiedOrgsOnly":true,"activeWithinDays":90,"maxPerQuery":8}→ 2 verified orgs, bothnewlyActive: true, incl. TheAlgorithms (MX-verifiedhello@the-algorithms.com, readiness A, 222,867 stars) and Significant-Gravitas (AutoGPT / agpt.co, 185,599 stars,newestPushtoday).
[{"orgLogin": "TheAlgorithms","orgName": "The Algorithms","orgBlog": "https://the-algorithms.com/","isVerified": true,"location": "India","followers": 63118,"publicRepos": 44,"repoCount": 1,"totalStars": 222867,"newestPush": "2026-07-11T00:39:35+00:00","topRepos": [{"name": "TheAlgorithms/Python", "stars": 222867, "pushedAt": "2026-07-11T00:39:35Z", "language": "Python", "repoUrl": "https://github.com/TheAlgorithms/Python"}],"newlyActive": true,"emails": ["hello@the-algorithms.com"],"emailVerified": true,"socials": {"twitter": "https://twitter.com/the_algorithms", "linkedin": "https://www.linkedin.com/company/thealgorithms"},"techStack": ["Cloudflare", "Nginx"],"orgReadiness": "A","leadScore": "A","hasContact": true},{"orgLogin": "ComposioHQ","orgName": "Composio","orgBlog": "https://composio.dev","isVerified": true,"location": "United States of America","followers": 2125,"publicRepos": 16,"repoCount": 1,"totalStars": 68056,"newestPush": "2026-05-22T03:17:49+00:00","topRepos": [{"name": "ComposioHQ/awesome-claude-skills", "stars": 68056, "pushedAt": "2026-05-22T03:17:49Z", "language": "Python", "repoUrl": "https://github.com/ComposioHQ/awesome-claude-skills"}],"newlyActive": false,"emails": [],"emailVerified": false,"socials": {"twitter": "https://x.com/composio", "linkedin": "https://www.linkedin.com/company/composiohq/", "youtube": "https://www.youtube.com/@Composio"},"techStack": ["Cloudflare", "Google Analytics", "Google Tag Manager", "HubSpot", "Mailchimp", "React"],"orgReadiness": "B","leadScore": "C","hasContact": true},{"orgLogin": "rtk-ai","orgName": "rtk-ai","orgBlog": "https://www.rtk-ai.app","isVerified": false,"location": "France","followers": 657,"publicRepos": 7,"repoCount": 1,"totalStars": 71740,"newestPush": "2026-07-18T23:09:36+00:00","topRepos": [{"name": "rtk-ai/rtk", "stars": 71740, "pushedAt": "2026-07-18T23:09:36Z", "language": "Rust", "description": "CLI proxy that reduces LLM token consumption by 60-90% on common dev commands. Single Rust binary, zero dependencies", "repoUrl": "https://github.com/rtk-ai/rtk"}],"newlyActive": false,"emails": ["contact@rtk-ai.app"],"emailVerified": true,"socials": {},"techStack": ["Google Analytics", "Google Tag Manager"],"orgReadiness": "C","leadScore": "B","hasContact": true}]
The three records illustrate the full range: a verified-email A-grade lead (TheAlgorithms — MX-validated hello@the-algorithms.com off its own site, 222K stars, newlyActive), a verified-org socials-only lead (ComposioHQ — GitHub is_verified, three real company socials, no email exposed so billed org_lead only, not verified_email), and a verified-email lead with no socials (rtk-ai — contact@rtk-ai.app MX-validated, socials: {} honestly empty rather than a junk share-widget URL). Web-form placeholders such as you@company.com (seen on rtk-ai's site pre-cleaning) are dropped — never billed.
Cost
Pay-per-event, charged only on a successful result:
| Event | Price | When |
|---|---|---|
org_lead (primary) | $0.008 | per org returning at least one real contact signal + their repo traction |
verified_email | $0.003 | per org yielding an MX/DNS-validated email from its own site |
org_signal | $0.001 | per org whose newest repo push is within the chosen window |
apify-actor-start | $0.0001 | one-time run start |
Zero upstream compose cost (self-contained: keyless GitHub search/orgs APIs + the org's own public site). Primary event priced well above per-run compute — positive unit margin from day one.
Performance & limits
- Pure keyless JSON (one
/search/repositoriesper query + one/orgs/{login}per org, then one site fetch per org). No anti-bot, no proxy, no API key by default. - Honest keyless cap: GitHub's core rate limit is 60 req/hr unauthenticated (search has its own 10/min limit) → batch ≤~50 orgs/run wall-clock with throttling. Supply your own
githubTokento lift the core limit to 5,000/hr for larger batches. - The actor retries 429/403-rate-limit responses with backoff, and silently drops orgs it cannot fetch (not billed).
- A
maxPerQuery=25run typically resolves 25 repos → ~10–20 distinct Organization-typed owners after the User/owner gate → 5–15 sellable orgs after the blog-only filter, in well under a minute plus per-org site enrichment.
Troubleshooting
- No results / "no Organization-typed owners" — the qualifiers resolved only to User/personal-account owners. Use org-level qualifiers (
topic:,language:+stars:>) or pass explicit org logins viaorgs. - "Org not found / not an org" — an explicit login resolved to a User (404 on
/orgs); skipped, not billed. Personal-account owners are deliberately not sold. - Fewer orgs than repos — expected: repos roll up one-per-org (keyed by owner login), and User + no-blog orgs are dropped.
- Rate-limited (empty search results) — the keyless 60/hr core limit was hit mid-run. Lower
concurrency, reduce the batch, or supply your owngithubToken. newlyActivenot set — the org's newest repo push is older thanactiveWithinDays; widen the window or leave it0.- An org you expected has no contact — its
blogsite exposed no email/phone/social, sohasContact: falseand it is not billed at all.
Data sourcing & ToS
Discovery uses GitHub's public keyless /search/repositories + /orgs/{login} REST endpoints. Contact data is scraped only from the organization's OWN declared blog company website — the /orgs email public-profile address and GitHub user/commit/author emails are never mined for outreach (GitHub ToS §H). No login, no API key (optional user token only lifts rate limits), no residential proxy.