Hackathon Winner & Repo Extractor
Pricing
Pay per usage
Hackathon Winner & Repo Extractor
Paste a Devpost or ETHGlobal hackathon URL — get every project's name, GitHub repo, description, and hackathon-specific notes (How it's Made, tech stack) in one structured dataset.
Pricing
Pay per usage
Rating
0.0
(0)
Developer
Gabriel Antony Xaviour
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
11 days ago
Last modified
Categories
Share
Paste a hackathon URL — get every project's name, GitHub repo, description, and tech notes in seconds.
Built for recruiters, VCs, dev relations teams, and journalists who want to source talent or build datasets from real hackathon results without manually clicking through dozens of project pages.
Supports Devpost and ETHGlobal out of the box.
What it does
For every project in a hackathon's showcase / project gallery, this actor extracts:
| Field | Devpost | ETHGlobal |
|---|---|---|
project — project name | ✅ | ✅ |
repoUrl — canonical GitHub URL (no deep /tree/... paths) | ✅ | ✅ |
description — what the project does | ✅ | ✅ |
hackathonName + hackathonUrl | — (in input URL) | ✅ |
howItsMade — tech stack notes (freetext) | — | ✅ |
team — submitter names | ✅ | — (not on showcase pages) |
techStack — labeled tech tags | ✅ | — (parse howItsMade instead) |
prize — winner / prize info | ✅ | — (ETHGlobal showcase doesn't expose prizes per project) |
Use cases
- Recruiters sourcing builders by tech stack ("everyone who used Foundry at ETHGlobal Bangkok")
- VCs scouting hackathon winners before they fundraise
- Dev relations finding teams that used your protocol/tool
- Researchers building academic datasets of hackathon projects
- Journalists writing recap articles with verified project links
- Builders scanning prior work to avoid duplication
Input
{"hackathonUrl": "https://ethglobal.com/showcase?event=bangkok","maxProjects": 50}
| Field | Type | Description |
|---|---|---|
hackathonUrl | URL | Devpost gallery (https://my-event.devpost.com/project-gallery), Devpost project page, or ETHGlobal showcase page (https://ethglobal.com/showcase?event=<slug>) |
maxProjects | integer | Cap (default 50, max 500) |
Output (example, ETHGlobal Bangkok)
{"project": "Superps","repoUrl": "https://github.com/mangekyou-labs/superps","description": "Superps is agent swarms that govern risk of perp dex positions and verified through persistent memories...","hackathonName": "Open Agents","hackathonUrl": "https://ethglobal.com/events/openagents","howItsMade": "This project used 0G for the openclaw agents and uniswap v4 for creating perpetuals hook...","sourceUrl": "https://ethglobal.com/showcase/superps-o7sfj"}
Performance
Measured on real ETHGlobal Bangkok run:
- 3 projects: 13s, $0.003
- 50 projects (typical hackathon): ~3 min, ~$0.05
- Full ETHGlobal showcase (200+ projects): ~12 min, ~$0.20
Pricing
Pay-per-result: $0.01 per project extracted.
You pay only for projects we successfully parsed. Failed parses don't count. Stops automatically at maxProjects.
| Use case | Projects | Cost |
|---|---|---|
| Quick preview | 5 | $0.05 |
| Single hackathon | 50 | $0.50 |
| Full showcase | 200 | $2.00 |
FAQ
Why doesn't this scrape MLH / DoraHacks / HackerEarth? Only Devpost and ETHGlobal are supported in this version. Open a feature request if you need more — adding a new source takes ~1 hour.
Can I run this on a single project URL?
Yes — pass https://devpost.com/software/<project-slug> directly. Single-project mode returns one row.
What if the hackathon page is behind a login? Not supported. This actor only reads public showcase pages.
Why are team / prize fields empty for ETHGlobal?
ETHGlobal's project pages don't expose those — they're on the event/prize page, not the project page. To enrich with prize info you'd need a second pass on the event's "winners" tab (not yet implemented).
Reliability
- Built on a documented HTML structure (Devpost + ETHGlobal). When the source HTML changes, we'll typically patch within 24 hours.
- Empty fields (rather than crashes) when something is missing — your dataset always has the same shape.
- All fetches go through a normal HTTP
fetch()with a desktop UA — no proxies, no JS execution needed.
Author
Built and maintained by gabrielaxy. Source: contact via Apify message for issues / feature requests.
