GitHub Org / Dev-Tool Company Lead Extractor avatar

GitHub Org / Dev-Tool Company Lead Extractor

Pricing

from $8.00 / 1,000 org lead with contacts

Go to Apify Store
GitHub Org / Dev-Tool Company Lead Extractor

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

Virtual Footprint LLC

Maintained by Community

Actor stats

0

Bookmarked

1

Total users

1

Monthly active users

2 days ago

Last modified

Share

github-org-devtool-lead-extractor hero banner

GitHub Org / Dev-Tool Company Lead Extractor

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:

  1. Discovers repos via GitHub's keyless /search/repositories?q=... (topic/language/star/pushed qualifiers) and/or resolves explicit org-logins/URLs. The search response carries owner.type directly, so the Organization gate needs no extra call.
  2. 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.
  3. Resolves the org via /orgs/{login}, which returns the org's OWN declared blog company website (e.g. vercel → vercel.com, puppeteer → pptr.dev) + is_verified trust signal + followers/public_repos/created_at + company/location/twitter_username.
  4. Filters honestly: orgs without a declared blog are dropped (no company website to enrich → not billed) — the data-driven equivalent of Docker Hub's bare-official-image drop. Verified-only is optional.
  5. 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 /orgs email public-profile address is deliberately not surfaced — contact always comes from the org's own declared site (ToS-clean, identical to the App-Store sellerUrl / Steam website / Docker Hub profile_url / JetBrains vendor.url pattern).
  6. 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 newlyActive flag.

Input

FieldTypeDefaultDescription
searchQueriesarray["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").
orgsarray[]Explicit GitHub org logins (e.g. vercel) or github.com/{org} URLs.
maxPerQueryint25Cap on repos per search query (1–100). Keyless core limit = 60 req/hr → keep totals modest; supply a token for 5,000/hr.
organizationsOnlybooltrueKeep only Organization-typed owners (User owners dropped — ToS-clean gate).
blogOnlybooltrueKeep only orgs that declared their own blog website (the clean hop). Orgs without one are dropped, not billed.
verifiedOrgsOnlyboolfalseKeep only is_verified orgs.
activeWithinDaysint0Flag 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.
verifyEmailsbooltrueMX/DNS-validate the best contact email's domain.
githubTokenstring""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.
concurrencyint3Parallel orgs/repos (1–8). Lower if you hit rate limits.
proxyConfigurationobject{}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 as org_lead only) and rtk-ai (MX-verified contact@rtk-ai.app off its own site, socials: {} honestly empty — billed org_lead + verified_email).
  • {"orgs":["vercel","puppeteer","pulumi"]} → 3 orgs incl. pulumi (verified, MX-verified sales@pulumi.com + team@pulumi.com).
  • {"searchQueries":["language:python+stars:>10000"],"verifiedOrgsOnly":true,"activeWithinDays":90,"maxPerQuery":8} → 2 verified orgs, both newlyActive: true, incl. TheAlgorithms (MX-verified hello@the-algorithms.com, readiness A, 222,867 stars) and Significant-Gravitas (AutoGPT / agpt.co, 185,599 stars, newestPush today).
[
{
"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:

EventPriceWhen
org_lead (primary)$0.008per org returning at least one real contact signal + their repo traction
verified_email$0.003per org yielding an MX/DNS-validated email from its own site
org_signal$0.001per org whose newest repo push is within the chosen window
apify-actor-start$0.0001one-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/repositories per 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 githubToken to 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=25 run 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 via orgs.
  • "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 own githubToken.
  • newlyActive not set — the org's newest repo push is older than activeWithinDays; widen the window or leave it 0.
  • An org you expected has no contact — its blog site exposed no email/phone/social, so hasContact: false and 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.

Frequently asked questions

How does this find a company's website if GitHub doesn't require one? It only uses the org's own declared blog field from the GitHub API — if an org hasn't filled that in, the org is dropped rather than guessed at.

Does this work for individual GitHub accounts, not just organizations? No — personal (non-org) accounts are intentionally skipped. The signal this Actor sells is org-level dev-tool/SaaS traction, not individual developer activity.

What counts as "traction" in the scoring? Total stars across the org's repos, follower count, and recent push activity — a org with a stale, unmaintained top repo scores lower than one shipping actively.

Can I search by a specific language or topic instead of stars? Yes — any valid GitHub search qualifier works in searchQueries (e.g. language:rust, topic:developer-tools), not just star-count filters.

Part of a signal-based B2B lead catalog, each sourced from a different official, keyless public API and each pay-per-verified-result: ATS Hiring-Intent Lead Finder (open-roles hiring signal via Greenhouse/Lever/Ashby), GitHub Org / Dev-Tool Lead Extractor (repo-traction signal), Show HN Founder Lead Extractor (launch-traction signal), Hugging Face AI Org Lead Extractor (AI-adoption signal), SEC Form D Funded Company Lead Extractor (fresh-funding signal), Steam Game Studio Lead Extractor (shipped-product signal), Website Contact & Company Extractor (bring-your-own-domain-list enrichment).