[{"data":1,"prerenderedAt":237},["ShallowReactive",2],{"post-\u002Fblog\u002Fscrape-3000-founders\u002F":3,"surround-\u002Fblog\u002Fscrape-3000-founders\u002F":155,"related-\u002Fblog\u002Fscrape-3000-founders\u002F":156},{"id":4,"title":5,"body":6,"canonicalUrl":138,"category":139,"cover":140,"coverImage":141,"date":142,"description":143,"extension":144,"meta":145,"minutes":138,"navigation":146,"path":147,"seo":148,"stem":149,"tags":150,"__hash__":154},"blog\u002Fblog\u002Fscrape-3000-founders.md","Scraping 3,000 YC Founder Profiles With Nothing but curl",{"type":7,"value":8,"toc":133},"minimark",[9,13,16,21,29,85,93,97,119,123,126,129],[10,11,12],"p",{},"Cold outreach starts with a clean list. In one evening, using nothing but curl, I scraped every YC batch from the last two years: 1,546 companies, 3,034 founders, 99.4% LinkedIn coverage.",[10,14,15],{},"No headless browser. No paid API. No proxy pool.",[17,18,20],"h2",{"id":19},"the-key-discovery-the-data-is-right-there-in-the-html","The key discovery: the data is right there in the HTML",[10,22,23,24,28],{},"YC's company detail pages are rendered with Inertia.js, which embeds the full page data as JSON inside a ",[25,26,27],"code",{},"data-page"," attribute. Which means:",[30,31,36],"pre",{"className":32,"code":33,"language":34,"meta":35,"style":35},"language-bash shiki shiki-themes github-light github-dark","curl -s https:\u002F\u002Fwww.ycombinator.com\u002Fcompanies\u002Fxxx \\\n  | grep -o 'data-page=\"[^\"]*\"' \\\n  | # HTML-entity decode → complete JSON\n","bash","",[25,37,38,58,76],{"__ignoreMap":35},[39,40,43,47,51,55],"span",{"class":41,"line":42},"line",1,[39,44,46],{"class":45},"sScJk","curl",[39,48,50],{"class":49},"sj4cs"," -s",[39,52,54],{"class":53},"sZZnC"," https:\u002F\u002Fwww.ycombinator.com\u002Fcompanies\u002Fxxx",[39,56,57],{"class":49}," \\\n",[39,59,61,65,68,71,74],{"class":41,"line":60},2,[39,62,64],{"class":63},"szBVR","  |",[39,66,67],{"class":45}," grep",[39,69,70],{"class":49}," -o",[39,72,73],{"class":53}," 'data-page=\"[^\"]*\"'",[39,75,57],{"class":49},[39,77,79,81],{"class":41,"line":78},3,[39,80,64],{"class":63},[39,82,84],{"class":83},"sJ8bj"," # HTML-entity decode → complete JSON\n",[10,86,87,88,92],{},"One pipeline, and you get the company profile, the founder list, and every social link. A lot of sites that look like they \"need Playwright\" have shortcuts like this — ",[89,90,91],"strong",{},"read the page source first, then decide whether to bring out the heavy machinery",".",[17,94,96],{"id":95},"three-engineering-decisions","Three engineering decisions",[98,99,100,107,113],"ol",{},[101,102,103,106],"li",{},[89,104,105],{},"Batch isolation",": ten batches, each with its own directory and its own checkpoint — one failing batch never touches the others",[101,108,109,112],{},[89,110,111],{},"If it can't be verified, mark it not-found",": never pad the numbers. A real 99.4% LinkedIn coverage beats a fake 100%",[101,114,115,118],{},[89,116,117],{},"Machine data physically separated from human notes",": refreshing the database can never clobber my handwritten follow-up notes",[17,120,122],{"id":121},"one-trap-dont-trust-the-tags","One trap: don't trust the tags",[10,124,125],{},"In the W26 and Sp26 batches, 80% of companies have no industry tags at all. Filter by the AI tag and you'll miss most of the real AI companies. The right move is running every company description through a classifier.",[10,127,128],{},"This list is now the first cornerstone of my outreach database, people.db. Next up: the 2,240 makers from Product Hunt.",[130,131,132],"style",{},"html pre.shiki code .sScJk, html code.shiki .sScJk{--shiki-default:#6F42C1;--shiki-dark:#B392F0}html pre.shiki code .sj4cs, html code.shiki .sj4cs{--shiki-default:#005CC5;--shiki-dark:#79B8FF}html pre.shiki code .sZZnC, html code.shiki .sZZnC{--shiki-default:#032F62;--shiki-dark:#9ECBFF}html pre.shiki code .szBVR, html code.shiki .szBVR{--shiki-default:#D73A49;--shiki-dark:#F97583}html pre.shiki code .sJ8bj, html code.shiki .sJ8bj{--shiki-default:#6A737D;--shiki-dark:#6A737D}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}",{"title":35,"searchDepth":60,"depth":60,"links":134},[135,136,137],{"id":19,"depth":60,"text":20},{"id":95,"depth":60,"text":96},{"id":121,"depth":60,"text":122},null,"Growth Engineering","sunset","\u002Fimages\u002Fcovers\u002Fscrape-3000-founders.jpg","2026-08-08","No headless browser, no paid database — ten batches, 1,546 companies, 3,034 founders, 99.4% LinkedIn coverage.","md",{},true,"\u002Fblog\u002Fscrape-3000-founders",{"title":5,"description":143},"blog\u002Fscrape-3000-founders",[151,152,153],"Scraping","Outreach","Data Engineering","bQbtga9VLxqwpYby_AQE1-27BpvAdJr0nZC_f68Tyjo",[138,138],{"id":4,"title":5,"body":157,"canonicalUrl":138,"category":139,"cover":140,"coverImage":141,"date":142,"description":143,"extension":144,"meta":234,"minutes":138,"navigation":146,"path":147,"seo":235,"stem":149,"tags":236,"__hash__":154},{"type":7,"value":158,"toc":229},[159,161,163,165,169,201,205,207,221,223,225,227],[10,160,12],{},[10,162,15],{},[17,164,20],{"id":19},[10,166,23,167,28],{},[25,168,27],{},[30,170,171],{"className":32,"code":33,"language":34,"meta":35,"style":35},[25,172,173,183,195],{"__ignoreMap":35},[39,174,175,177,179,181],{"class":41,"line":42},[39,176,46],{"class":45},[39,178,50],{"class":49},[39,180,54],{"class":53},[39,182,57],{"class":49},[39,184,185,187,189,191,193],{"class":41,"line":60},[39,186,64],{"class":63},[39,188,67],{"class":45},[39,190,70],{"class":49},[39,192,73],{"class":53},[39,194,57],{"class":49},[39,196,197,199],{"class":41,"line":78},[39,198,64],{"class":63},[39,200,84],{"class":83},[10,202,87,203,92],{},[89,204,91],{},[17,206,96],{"id":95},[98,208,209,213,217],{},[101,210,211,106],{},[89,212,105],{},[101,214,215,112],{},[89,216,111],{},[101,218,219,118],{},[89,220,117],{},[17,222,122],{"id":121},[10,224,125],{},[10,226,128],{},[130,228,132],{},{"title":35,"searchDepth":60,"depth":60,"links":230},[231,232,233],{"id":19,"depth":60,"text":20},{"id":95,"depth":60,"text":96},{"id":121,"depth":60,"text":122},{},{"title":5,"description":143},[151,152,153],1786455181502]