CINXE.COM

Peak | Investor Profile, Funding Criteria & Team

<head> <base href="../"> <meta charset="utf-8"> <!-- META DATA --> <meta name="viewport" content="width=device-width, initial-scale=1"> <title>Peak | Investor Profile, Funding Criteria & Team</title> <meta name="description" content="An open platform that connects top founders with the right investors around the world"> <meta name="twitter:title" content="Peak | Investor Profile, Funding Criteria & Team"> <meta name="twitter:description" content="An open platform that connects top founders with the right investors around the world"> <meta name="twitter:image" content="https://www.openvc.app/images/twitter_card.png"> <meta name="twitter:card" content="summary_large_image"> <meta name="twitter:site" content="@OpenVC_"> <meta name="title" property="og:title" content="Peak | Investor Profile, Funding Criteria & Team"> <meta name="image" property="og:image" content="https://www.openvc.app/images/twitter_card.png"> <meta property="og:type" content="website"> <meta name="author" content="Lucas Roquilly and Steph Nass"> <!-- FAVICONS --> <link rel="icon" type="image/png" href="/img/favicon-96x96.png" sizes="96x96" /> <link rel="icon" type="image/svg+xml" href="/img/favicon.svg" /> <link rel="shortcut icon" href="/img/favicon.ico" /> <link rel="apple-touch-icon" sizes="180x180" href="/img/apple-touch-icon.png" /> <link rel="manifest" href="/img/site.webmanifest" /> <!-- FIN FAVICONS --> <link rel="stylesheet" href="css/bootstrap-slider.min.css"> <link rel="stylesheet" href="css/bootstrap.min.css"> <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/5.14.0/css/all.min.css" integrity="sha512-1PKOgIY59xJ8Co8+NE6FZ+LOAZKjy+KY8iq0G4B3CyeY6wYHN3yt9PW0XpSriVlkMXe40PTKnXrLnZ9+fkDaog==" crossorigin="anonymous" /> <link href="https://fonts.googleapis.com/css2?family=Chivo:ital,wght@0,300;0,400;0,700;0,900;1,300;1,400;1,700;1,900&family=Overpass:ital,wght@0,300;0,400;0,700;1,300;1,400;1,700&display=swap" rel="stylesheet"> <link href="https://fonts.googleapis.com/css2?family=Plus+Jakarta+Sans:ital,wght@0,200..800;1,200..800&display=swap" rel="stylesheet"> <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/@tarekraafat/autocomplete.js@10.2.4/dist/css/autoComplete.min.css"> <link rel="stylesheet" href="css/style.min.css"> <link rel="stylesheet" href="https://unpkg.com/leaflet@1.7.1/dist/leaflet.css" /> <!-- Google Tag Manager --> <script>(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({"gtm.start": new Date().getTime(),event:"gtm.js"});var f=d.getElementsByTagName(s)[0], j=d.createElement(s),dl=l!="dataLayer"?"&l="+l:"";j.async=true;j.src= "https://www.googletagmanager.com/gtm.js?id="+i+dl;f.parentNode.insertBefore(j,f); })(window,document,"script","dataLayer","GTM-W97MZBW");</script> <!-- End Google Tag Manager --> <!-- Google Recaptcha --> <script src="https://www.google.com/recaptcha/api.js" async defer></script><style>#fundCont,#submitCont{max-width:858px;}</style> <link rel="canonical" href="https://www.openvc.app/fund/Peak" /> </head> <body> <script> var geocode = undefined; </script> <!-- NAV --> <nav class="navbar py-3 navbar-light sticky-top bg-light d-lg-none flex-md-nowrap p-0 shadow-sm"> <a class="navbar-brand pl-3" href="./"><img src="images/logos/openvc_logo.svg" id="mobileLogo" width="90" class="d-inline-block align-top ml-2 mr-1" alt="" loading="lazy"></a> <ul class="navbar-nav ml-auto flex-row d-flex"> <li class="mr-2 nav-item"> <button class="navbar-toggler border-0 d-lg-none collapsed" type="button" data-toggle="collapse" data-target="#sidebarInner" aria-controls="sidebarInner" aria-expanded="false" aria-label="Toggle navigation"> <i class="fas fa-bars h4 m-0 text-primary"></i> </button> </li> </ul> </nav> <div class="container-fluid"> <div id="templateRow" class="row flex-nowrap"> <nav id="sidebar" class=" col-md-4 col-lg-3 col-xl-2 d-md-flex flex-column bg-light sidebar shadow "> <div id="sidebarInner" class="collapse d-lg-block"> <div class="sidebar-sticky py-3 h-100"> <ul class="nav flex-column flex-nowrap h-100"> <li class="nav-item d-none d-lg-flex align-items-center mb-5"> <a id="bigLogo" class="navbar-brand pl-3" href="./"> <img src="images/logos/openvc_logo.svg" id="sidebarLogo" width="90" class="d-inline-block align-top" alt="" loading="lazy"> </a> <a id="smallLogo" class="navbar-brand d-none pl-3" href="./"> <img src="images/logos/openvc_logo_initial.png" width="40" class="d-inline-block align-top" alt="" loading="lazy"> </a> <i id="sideBarCollapse" class="fas ml-auto cursor-pointer m-0 h6 fa-angle-left text-primary"></i> </li> <li data-toggle="tooltip" data-placement="right" data-boundary="window" data-tooltip="Sign up" class="nav-item"> <a href="#signup" id="signupBtn" class="btn py-2 justify-content-center mx-3 btn-sm btn-dark text-center"> <i class="mb-0 fas fa-user-plus"></i><span class="ml-2 sidebar-link">Sign up</span> </a> </li> <li data-toggle="tooltip" data-placement="right" data-boundary="window" data-tooltip="Log in" class="nav-item pt-2 pb-3"> <a href="#login" class="btn py-2 justify-content-center btn-sm text-center loginBtn"> <i class="fas fa-sign-in-alt mr-2"></i><span class="sidebar-link">Log in</span> </a> </li> <li class="nav-item pb-1"> <small class="nav-link text-muted text-uppercase">Fundraising</small> </li> <li data-toggle="tooltip" data-placement="right" data-boundary="window" data-tooltip="Search investors" class="nav-item pb-1"> <a class="text-dark nav-link text-dark" href="search"> <i class="fas fa-search-dollar mr-2"></i> <span class="sidebar-link">Search investors</span> </a> </li> <li data-toggle="tooltip" data-placement="right" data-boundary="window" data-tooltip="My shortlist" class="nav-item pb-1"> <a id="shortlistLink" class="text-dark nav-link shortListModal" href="shortlist"> <i class="fas fa-list mr-2"></i> <span class="sidebar-link">My shortlist</span> </a> </li> <li data-toggle="tooltip" data-placement="right" data-boundary="window" data-tooltip="CRM" class="nav-item pb-1"> <a class="nav-link text-dark shortListModal" id="CRMbtn" href="CRM"> <i class="fas fa-comment-dollar mr-2"></i><span class="sidebar-link">CRM</span> </a> </li> <li class="nav-item pb-1"> <small class="nav-link text-muted text-uppercase">Resources</small> </li> <li data-toggle="tooltip" data-placement="right" data-boundary="window" data-tooltip="Fundability" class="nav-item pb-1"> <a class="text-dark nav-link" href="fundability"> <i class="fas fa-tachometer-alt mr-2"></i> <span class="sidebar-link">Fundability</span> </a> </li> <li data-toggle="tooltip" data-placement="right" data-boundary="window" data-tooltip="My decks" class="nav-item pb-1"> <a class="text-dark nav-link text-dark" href="decks"> <i class="fas fa-scroll mr-2"></i> <span class="sidebar-link">My decks</span> </a> </li> <li data-toggle="tooltip" data-placement="right" data-boundary="window" data-tooltip="Perks" class="nav-item pb-1"> <a class="text-dark nav-link" href="perks"> <i class="fas fa-tags mr-2"></i> <span class="sidebar-link">Perks</span> </a> </li> <li data-toggle="tooltip" data-placement="right" data-boundary="window" data-tooltip="Learn to raise" class="nav-item pb-1"> <a class="nav-link text-dark" data-toggle="collapse" href="#learn" role="button" aria-expanded="false" aria-controls="learn"> <i class="fas fa-book mr-2"></i> <span class="sidebar-link">Learn to raise</span> </a> <div data-parent="#sidebar" class=" collapse pl-3" id="learn"> <ul class="nav flex-column"> <li class="d-none showOnCollapse nav-item pb-1"> <small class="nav-link text-muted text-uppercase">Learn to raise</small> </li> <li class="nav-item pb-1"> <a class="nav-link ml-2 text-dark" href="masterclass"> Masterclass </a> </li> <li class="nav-item pb-1"> <a class="nav-link ml-2 text-dark" href="ebook"> Ebook </a> </li> <li class="nav-item pb-1"> <a class="nav-link ml-2 text-dark" href="podcast"> Podcast </a> </li> <li class="nav-item pb-1"> <a class="nav-link ml-2 text-dark" href="blog"> Blog </a> </li> </ul> </div> </li> <li data-toggle="tooltip" data-placement="right" data-boundary="window" data-tooltip="Tools" class="nav-item pb-1"> <a class="nav-link text-dark" data-toggle="collapse" href="#tools" role="button" aria-expanded="false" aria-controls="tools"> <i class="fas fa-tools mr-2"></i> <span class="sidebar-link">Tools</span> </a> <div data-parent="#sidebar" class=" collapse pl-3" id="tools"> <ul class="nav flex-column"> <li class="d-none showOnCollapse nav-item pb-1"> <small class="nav-link text-muted text-uppercase">Tools</small> </li> <li class="nav-item pb-1"> <a class="text-dark nav-link" href="pitchDeckTemplate"> Deck template </a> </li> <li class="nav-item pb-1"> <a class="text-dark nav-link" href="pitchDeckReview"> Deck review </a> </li> <li class="nav-item pb-1"> <a class="text-dark nav-link" href="./map"> OpenMap </a> </li> <li class="nav-item pb-1"> <a class="text-dark nav-link" href="opendeck"> OpenDeck </a> </li> </ul> </div> </li> <li data-toggle="tooltip" data-placement="right" data-boundary="window" data-tooltip="Startup Experts" class="nav-item pb-1"> <a class="nav-link text-dark" data-toggle="collapse" href="#experts" role="button" aria-expanded="false" aria-controls="experts"> <i class="fas fa-address-book mr-2"></i> <span class="sidebar-link">Startup Experts</span> </a> <div data-parent="#sidebar" class="collapse pl-3" id="experts"> <ul class="nav flex-column"> <li class="d-none showOnCollapse nav-item pb-1"> <small class="nav-link text-muted text-uppercase">Startup Experts</small> </li> <li class="nav-item pb-1"> <a class="nav-link text-dark ml-2" target="_blank" href="https://www.pitchdeckexperts.app/"> Deck Designers </a> </li> <li class="nav-item pb-1"> <a class="nav-link text-dark ml-2" target="_blank" href="https://www.fundraisingadvisors.app/"> Fundraising Advisors </a> </li> <li class="nav-item pb-1"> <a class="nav-link text-dark ml-2" target="_blank" href="https://startuplawyers.app/ "> Startup Lawyers </a> </li> <li class="nav-item pb-1"> <a class="nav-link text-dark ml-2" target="_blank" href="https://mvpbuilders.app/"> MVP Builders </a> </li> </ul> </div> </li> </ul> </div> <div class="d-lg-none my-3 d-block"> <div class="mb-2 bg-pink rounded p-2"> <span class="h6 text-white">Raise 5x times faster with <span class="text-primary">OpenVC Premium</span> !</span><br> <a href="upgrade" class="btn btn-sm justify-content-center pb-1 text-center mt-2 btn-primary"> <i class="fas fa-rocket mr-2"></i>Upgrade now </a> </div> </div> </div> <div class="mt-auto"> <div class="d-lg-block d-none"> <div class="mb-2 bg-pink text-center sidebar-link rounded p-2"> <span class="h6 text-white">Raise 5x times faster<br>with <span class="text-primary">OpenVC Premium</span>!</span><br> <a href="upgrade" class="btn btn-sm justify-content-center pb-1 text-center mt-2 btn-primary"> <i class="fas fa-rocket mr-2"></i>Upgrade now </a> </div> </div> </div> </nav> <main role="main" class=" d-flex flex-column col-md px-0"> <!-- END NAV --> <div id="fundBody" class=""> <div id="fundHead"> <div class="pt-3 pr-1" style="background-color:#1a1a1a; z-index: 2;"> <div id="fundHeader" class="text-center w-100" style=" line-height: 100px; padding-top:42px; flex-wrap:wrap; display:flex; justify-content:center; align-items:center"> <div> <button data-toggle="tooltip" title="" class="btn btn-success btn-circle badge-verified" data-original-title="This investor is verified"><i class="far fa-check-circle mr-1"></i>Verified</button> <img width="99px" src="./images/funds/rec5wESMZt8QZXBiR.jpg" class="rounded" title="Peak Logo" alt="Peak Logo"> </div> <div class="d-flex flex-column justify-content-center"> <h1 class="mb-3 font-weight-bold text-center text-white px-5" >Peak</h1> <div id="socialIcons" class="d-flex justify-content-center"> <a target="_blank" href="https://www.linkedin.com/company/peak-capital" rel="nofollow" class="fund-social-btn text-decoration-none" style="background-color:#2867B2; color:white"><i class="fab fa-linkedin-in"></i></a><a target="_blank" href="https://www.peak.capital" rel="nofollow" class="fund-social-btn text-decoration-none" style="background-color:white; color:black"><i class="fas fa-link"></i></a> </div> </div> </div> </div> <div class="mb-2" id="fundBg" style=" background-image: url(images/fund_bg.svg); background-repeat: no-repeat; background-size: 100% auto; width:100%; background-position-y: -19px; z-index:1; "> </div> <div id="fundAlert" class="text-center alert alert-warning fade d-none show" role="alert"> <strong>Caution</strong> You are in edit mode ! <a onclick="$('#cancelChangesBtn').click()">Cancel changes</a> </div> </div> <div class="container" id="fundCont"> <div class="my-5 p-5 d-none" id="changesWindow"> <button type="button" class="close" onclick="$('#changesWindow').addClass('d-none')" aria-label="Close"> <span aria-hidden="true">×</span> </button> <h3>Confirm changes</h3> <strong>Please review and confirm your changes below.</strong> <div class="alert alert-success mt-3 mb-3 d-none result"></div> <div class="alert text-center alert-danger fade show d-none" id="captchaError2"> Please validate captcha </div> <div class="row mt-3 justify-content-center mb-3"> <div id="recaptcha2"></div> </div> <div id="changesSuccess" class="alert alert-success mt-3 mb-3 d-none"></div> <div id="changesError" class="alert alert-danger mt-3 mb-3 d-none"></div> <div class="row justify-content-center"> <button type="button" disabled class="btn btn-success mr-3"> <div class="d-none spinner-border spinner-border-sm mr-1" role="status"> <span class="sr-only">Loading...</span> </div> Confirm changes </button> <button type="button" onclick="$('#changesWindow').addClass('d-none')" class="btn btn-danger">Cancel</button> </div> </div> <div class="my-5 p-5 d-none" id="emailWindow"> <button type="button" class="close" onclick="$('#emailWindow').addClass('d-none')" aria-label="Close"> <span aria-hidden="true">×</span> </button> <h3 class="text-center mb-3"><i class="fas fa-exclamation-triangle"></i> Are you an employee of this fund ?</h3> <p class="text-center mb-3"><strong>Add your professional email address below for verification</strong></p> <div class="alert alert-danger mt-3 mb-3 d-none">This email address seems invalid, please retry.</div> <input type="text" value="" placeholder="Your professional email address" class="form-control my-3"/> <div class="row justify-content-center"> <button type="button" class="btn btn-primary mr-3">Submit and start editing</button> <button type="button" onclick="$('#emailWindow').addClass('d-none')" class="btn btn-danger">Cancel</button> </div> </div> <div id="fundBodx" > <h2 id="overview" class="pt-3 ">Overview</h2> <table class="mt-3 table fundDetail mb-5"> <tr><td class="text-nowrap">Who we are</td><td>Early-stage SaaS, Marketplace investors with entrepreneurial roots and the scars to prove it. <br /> </td></tr><tr><td class="text-nowrap">Value add</td><td>Our value add comes from a deep understanding of early-stage SaaS and marketplace dynamics.<br /> </td></tr><tr><td class="text-nowrap">Firm type</td><td>VC</td></tr><tr><td class="text-nowrap">Global HQ</td><td><p>Weesperplein 4B, 1018 XA Amsterdam, Netherlands</p><div class='mt-3 mapContainer' style='border-radius:6px' id='map_5f339d936b'></div><script>geocode = [52.3619237,4.9069833];</script></td></tr><tr class="d-none"><td>Branch office #1<i data-toggle="tooltip" title="Fill in a complete postal address to appear on the VC map" class="ml-1 cursor-pointer fas fa-info-circle"></i></td><td></td></tr><tr class="d-none"><td>Branch office #2<i data-toggle="tooltip" title="Fill in a complete postal address to appear on the VC map" class="ml-1 cursor-pointer fas fa-info-circle"></i></td><td></td></tr><tr class="d-none"><td>Branch office #3<i data-toggle="tooltip" title="Fill in a complete postal address to appear on the VC map" class="ml-1 cursor-pointer fas fa-info-circle"></i></td><td></td></tr><tr class="d-none"><td>Branch office #4<i data-toggle="tooltip" title="Fill in a complete postal address to appear on the VC map" class="ml-1 cursor-pointer fas fa-info-circle"></i></td><td></tr><tr class="d-none"><td>Branch office #5<i data-toggle="tooltip" title="Fill in a complete postal address to appear on the VC map" class="ml-1 cursor-pointer fas fa-info-circle"></i></td><td></td></tr> </table> <h2 class="mt-5 " id="thesis">Thesis</h2> <table class="mt-5 table fundDetail mb-5"> <tr><td>Funding requirements</td><td>We invest in SaaS and Platform/Marketplaces businesses in NW-Europe. Our sweetspot is companies that have some revenue, and are getting ready to scale beyond founder sales. Opportunistically we do pre-revenue/pre-product deals. No sector/industry focus.</td></tr><tr><td>Funding stages</td><td><a href="investor-lists/pre-seed-investors" target="_blank"><span class="badge badge-primary mr-1 mb-1">2. Prototype</span></a><a href="investor-lists/seed-investors" target="_blank"><span class="badge badge-primary mr-1 mb-1">3. Early Revenue</span></a><a href="investor-lists/series-a-investors" target="_blank"><span class="badge badge-primary mr-1 mb-1">4. Scaling</span></a></tr></td><tr class="d-none"><td>Lead</td><td>N/A</td></tr><tr><td data-min="200000" data-max="3000000">Check size</td><td>$200k to $3M</td></tr><tr><td>Target countries</td><td id="countEdit"><a href="country/Austria" target="_blank"><span class="badge badge-primary mr-1 mb-1"><img loading="lazy" alt="Flag of Austria" src="https://www.openvc.app/images/flags/at.png"> Austria</span></a><a href="country/Belgium" target="_blank"><span class="badge badge-primary mr-1 mb-1"><img loading="lazy" alt="Flag of Belgium" src="https://www.openvc.app/images/flags/be.png"> Belgium</span></a><a href="country/Denmark" target="_blank"><span class="badge badge-primary mr-1 mb-1"><img loading="lazy" alt="Flag of Denmark" src="https://www.openvc.app/images/flags/dk.png"> Denmark</span></a><a href="country/Finland" target="_blank"><span class="badge badge-primary mr-1 mb-1"><img loading="lazy" alt="Flag of Finland" src="https://www.openvc.app/images/flags/fi.png"> Finland</span></a><a href="country/Germany" target="_blank"><span class="badge badge-primary mr-1 mb-1"><img loading="lazy" alt="Flag of Germany" src="https://www.openvc.app/images/flags/de.png"> Germany</span></a><a href="country/Iceland" target="_blank"><span class="badge badge-primary mr-1 mb-1"><img loading="lazy" alt="Flag of Iceland" src="https://www.openvc.app/images/flags/is.png"> Iceland</span></a><a href="country/Luxembourg" target="_blank"><span class="badge badge-primary mr-1 mb-1"><img loading="lazy" alt="Flag of Luxembourg" src="https://www.openvc.app/images/flags/lu.png"> Luxembourg</span></a><a href="country/Netherlands" target="_blank"><span class="badge badge-primary mr-1 mb-1"><img loading="lazy" alt="Flag of Netherlands" src="https://www.openvc.app/images/flags/nl.png"> Netherlands</span></a><a href="country/Norway" target="_blank"><span class="badge badge-primary mr-1 mb-1"><img loading="lazy" alt="Flag of Norway" src="https://www.openvc.app/images/flags/no.png"> Norway</span></a><a href="country/Poland" target="_blank"><span class="badge badge-primary mr-1 mb-1"><img loading="lazy" alt="Flag of Poland" src="https://www.openvc.app/images/flags/pl.png"> Poland</span></a><a href="country/Portugal" target="_blank"><span class="badge badge-primary mr-1 mb-1"><img loading="lazy" alt="Flag of Portugal" src="https://www.openvc.app/images/flags/pt.png"> Portugal</span></a><a href="country/Sweden" target="_blank"><span class="badge badge-primary mr-1 mb-1"><img loading="lazy" alt="Flag of Sweden" src="https://www.openvc.app/images/flags/se.png"> Sweden</span></a><a href="country/Switzerland" target="_blank"><span class="badge badge-primary mr-1 mb-1"><img loading="lazy" alt="Flag of Switzerland" src="https://www.openvc.app/images/flags/ch.png"> Switzerland</span></a></tr></td> </table> <div id="teamCont"> <h2 class="mt-5 mb-5" id="team">Team</h2> <table class="fundDetail teamDetail w-100"> <tr class=""> <td data-id="recilPCTv6XczLGJe" class="py-2 d-flex align-items-center"><img src="./images/users/recilPCTv6XczLGJe.jpg" class="mr-3" width="75px" style="width:55px;height:55px;object-fit:cover;border-radius:33%"><div class="d-flex flex-column"><a data-firstname="Thijs" href="u/thijs-dijkman" class="profileCont mr-2 text-nowrap">Thijs Dijkman</a><span class='font-weight-normal'>VP</span></div><td class='py-2 align-top'>I invest €250k to €4M in early stage Saas, Marketplaces and Platforms.</td> </tr> <tr class=""> <td data-id="recyAtkPT9b4cKJwV" class="py-2 d-flex align-items-center"><img src="./images/users/recyAtkPT9b4cKJwV.jpg" class="mr-3" width="75px" style="width:55px;height:55px;object-fit:cover;border-radius:33%"><div class="d-flex flex-column"><a data-firstname="Maximilian" href="u/maximilian-serfling" class="profileCont mr-2 text-nowrap">Maximilian Serfling</a><span class='font-weight-normal'>Analyst</span></div><td class='py-2 align-top'></td> </tr> </table> </div> <div class="d-none" id="noPortfolioCont"> <h2 class="mt-5 mb-5" id="portfolio">Portfolio</h2> <div id="portfolioCont"> </div> </div> <h2 class="settingsElem mt-5 d-none" id="settings">Settings</h2> <table class="settingsElem mt-5 d-none table fundDetail mb-5"> <tr> <td>How to get in touch<i data-toggle="tooltip" title="Select Email address if you want startup founders to be able to send you their deck by email.<br>Select Online form if you prefer to receive submissions through your firm's online form.<br>Select Intro preferred if you do not want to receive deal flow through OpenVC." class="ml-1 cursor-pointer fas fa-info-circle"></i></td> <td> Online form </td> </tr> <tr> <td>Default email or URL to receive deal flow<i data-toggle="tooltip" title="The contact email or the online form URL you want to use to receive deck submissions, depending on what you selected in the field 'How to get in touch'." class="ml-1 cursor-pointer fas fa-info-circle"></i></td> <td> </td> </tr> <tr><td>CRM<i data-toggle="tooltip" title="Your CRM to manage deal flow. Integrations coming soon!" class="ml-1 cursor-pointer fas fa-info-circle"></i></td><td>Affinity</td></tr><tr><td>Linkedin<i data-toggle="tooltip" title="URL to your firm's LinkedIn page. Must be a valid LinkedIn company URL and start with http or https." class="ml-1 cursor-pointer fas fa-info-circle"></i></td><td>https://www.linkedin.com/company/peak-capital</td></tr><tr class="d-none"><td>Twitter<i data-toggle="tooltip" title="Your firm's Twitter handle. Must start with @." class="ml-1 cursor-pointer fas fa-info-circle"></i></td><td></td></tr><tr><td>Website<i data-toggle="tooltip" title="URL to your firm's website. Must be a valid URL and start with http or https." class="ml-1 cursor-pointer fas fa-info-circle"></i></td><td>https://www.peak.capital</td></tr> </table> </div> <span id="preConfirm"></span> <div id="fundFoot" class="mb-4 flex-wrap mt-5 d-flex justify-content-center"> <button id="submitDeckBtn" class="btn btn-secondary mt-1" onclick="submitDeck('rec5wESMZt8QZXBiR')"><i class="fas fa-envelope"></i> Submit deck</button> </div> </div> <div class="container d-none" id="submitCont"> <nav id="submit-navbar" class=" navbar navbar-light bg-light justify-content-center mb-3"> <ul class="nav nav-pills w-100 justify-content-around"> <li class="nav-item"> <a id="confirmFitNavbarBtn" class="cursor-pointer nav-link active">1. Confirm fit</a> </li> <li class="nav-item"> <a id="pickRecipientNavbarBtn" class="cursor-pointer nav-link">2. Pick recipient</a> </li> <li class="nav-item"> <a class="nav-link">3. Submit deck</a> </li> </ul> </nav> <div class="d-none align-items-center" id="loadingRecipient"><div class="spinner-border spinner-border-sm mr-2" role="status"><span class="sr-only">Loading...</span></div>Loading, please wait...</div> <div class="mb-5 d-none" id="confirmWindow"> <div class="pt-3" id="confirmWindowBody"> </div> <p class="text-center mt-4"><b>Are you sure you want to contact this investor ?</b></p> <div class="d-flex justify-content-center"> <button id="fitProceedBtn" class="btn btn-outline-secondary" onclick="validSubmit(this)">Yes, proceed</button> </div> </div> <div class="mb-5 d-none slide-in-right" id="recipientWindow"> <h4 class="mt-3">Pick the best recipient for your submission</h4> <div class="table-responsive"> <table class="mt-3 table"> <tr> <td class="text-nowrap align-middle"><i class="ml-2 mr-3 h5 mb-0 fab fa-wpforms"></i><strong>Default&nbsp;Form</strong></td> <td class="px-2 align-middle" >The fund's default form for cold outreach</td> <td class="text-right"> <a target="_blank" href="https://peakcapitalvc.typeform.com/to/wREuKa" class="recipientSelect text-nowrap btn btn-secondary"> <i class="mr-1 fas fa-external-link-alt"></i>Submit deck </a> </td> </tr> </table> </div> </div> <div class="mb-5 d-none slide-in-right" id="embeddedEmailWindow"> <h4 class="mt-3">Send your email</h4> <div class="alert text-center mt-3 alert-danger">You need to be logged in as a founder to submit your deck to investors.<br><span class="cursor-pointer font-weight-bold" onclick="$('#signupBtn').click()"><i class="fas fa-user-plus mr-1"></i><u>Sign up or log in now</u></span></div> <div class="mt-5" id="fromCont"></div> <div class="form-group mt-4"> <label for="subjectInput"> Subject <br> <small class="text-muted"> Example 1 : <em>"AI/SaaS - +30% MoM revenue - US - Pre-Seed"</em><br> Example 2 : <em>"B2C Delivery - Lead secured - Germany - Seed"</em> </small> </label> <input maxlength="54" type="text" name="subject" value="" placeholder="Email subject" class="form-control" id="subjectInput"> <span id="subjectError" class="d-none"></span> <div id="subjectFeedback" class="w-100 d-none"> <button id="subjectFeedbackHeading" class="w-100 h5 mt-3 mb-0 btn-nozoom btn p-2 text-left collapsed text-white" style="border: none;background-color: #ff007e;font-weight: bold;" data-toggle="collapse" data-target="#subjectFeedbackCollapse" aria-expanded="true" aria-controls="subjectFeedbackCollapse"> <i class="fas fa-lightbulb mr-2"></i><span>Instant Feedback</span> </button> <div id="subjectFeedbackCollapse" class="collapse show" aria-labelledby="subjectFeedbackHeading" data-parent="#subjectFeedback"> <div class="card-body bg-light"> <p class="d-none"><i class="fas fa-long-arrow-alt-right mr-1"></i>Please avoid terms like "pitch", "deck", "intro" or "opportunity" in the email subject.</p> <p class="d-none"><i class="fas fa-long-arrow-alt-right mr-1"></i>Please remove quotation marks from the start and/or the end of the email subject.</p> <p class="d-none"><i class="fas fa-long-arrow-alt-right mr-1"></i>Please don't use full CAPS in the email subject.</p> <p class="d-none"><i class="fas fa-long-arrow-alt-right mr-1"></i>Please do not insert an email address in the email subject.</p> <p class="d-none"><i class="fas fa-long-arrow-alt-right mr-1"></i>Please do not use "!!" or "??" in the email subject.</p> </div> </div> </div> </div> <div class="form-group mt-4"> <label for="messageInput"> Message <br> <small class="text-muted"> Start with <em>"Hi + name"</em> or <em>"Hello XXX team"</em>. Write a custom intro that shows thesis fit.<br> Keep it short. Use bullet points to list 3 strong facts about your team, traction, market.<br> Don't include extra URLs. Close with a clear CTA. Sign with your name and title. </small> </label> <div id="messageInputCont"> <textarea maxlength="1200" name="body" placeholder="Email body" class="d-none form-control" rows="6" id="messageInput"></textarea> </div> <div id="generateAICont" class="d-flex text-center align-items-center border py-3 my-2 rounded justify-content-center bg-light w-100"> <div class="d-flex flex-column"> <button class="showAIGenerateModal btn btn-primary mb-3"><i style="color:#fff400" class="shadow fas fa-bolt mr-2"></i>Generate with AI</button> <div>- OR -</div> <button id="typeItManuallyBtn" class="btn btn-light mt-3 border bg-white">Type it manually</button> </div> </div> <div class="text-right"> <button id="displayTemplateModalBtn" title="Save your email body as a reusable template for your next emails to investors" data-placement="top" data-toggle="tooltip" class="btn btn-nozoom btn-link p-0 m-0 d-inline align-baseline text-muted"> <u>Save as template</u> </button> </div> <span id="messageError" class="d-none"></span> <div id="messageFeedback" class="w-100 d-none"> <button id="feedbackHeading" class="w-100 h5 mt-3 mb-0 btn p-2 btn-nozoom text-left collapsed text-white" style="border: none;background-color: #ff007e;font-weight: bold;" data-toggle="collapse" data-target="#feedbackCollapse" aria-expanded="true" aria-controls="feedbackCollapse"> <i class="fas fa-lightbulb mr-2"></i><span>Instant Feedback</span> </button> <div id="feedbackCollapse" class="collapse show" aria-labelledby="feedbackHeading" data-parent="#messageFeedback"> <div class="card-body bg-light"> <p class="d-none"><i class="fas fa-long-arrow-alt-right mr-1"></i>Start your email with a personal greeting eg. "Hi John," or "Hello XXX Team,".</p> <p class="d-none"><i class="fas fa-long-arrow-alt-right mr-1"></i>Please don't include URLs in your email body to maximize reply rate. We already link to your pitch deck and calendar automatically.</p> <p class="d-none"><i class="fas fa-long-arrow-alt-right mr-1"></i>Make sure to include numbers (growth, revenue, etc.) in your email to capture attention.</p> <p class="d-none"><i class="fas fa-long-arrow-alt-right mr-1"></i>Write shorter paragraphs to improve readibility. You can also use bulletpoints if you need to list down information.</p> <p class="d-none"><i class="fas fa-long-arrow-alt-right mr-1"></i>No need to mention OpenVC in your email. Focus the conversation on your business.</p> </div> </div> </div> </div> <div class="form-group mt-5"> Your pitch deck<br> <div class="accordion" id="pitchDeckAccordion"> <div class="card mt-3"> <div class="card-header active" id="pitchDeckHeadingOne"> <h2 class="mb-0"> <button class="btn p-0 btn-link btn-block text-left" aria-expanded="true" type="button" data-toggle="collapse" data-target="#pitchDeckCollapseOne" aria-expanded="false" aria-controls="pitchDeckCollapseOne"> <i class="fas fa-file-upload mr-2"></i>Share via OpenVC (includes tracking & follow-up) </button> </h2> </div> <div id="pitchDeckCollapseOne" class="collapse show" aria-labelledby="pitchDeckHeadingOne" data-parent="#pitchDeckAccordion"> <div class="card-body border"> <div class="text-muted mb-3"> <small> Choose your pitch deck below: </small> </div> <p class="mt-3 text-center"> You need to sign up to upload your deck to OpenVC. <br> <a class="btn ml-3 mb-3 btn-link text-primary" onclick="$('#signupBtn').click()"><i class="fas fa-user-plus mr-1"></i>Create an account, it's 100% free !</a> </p> </div> </div> </div> <div class="card"> <div class="card-header" id="pitchDeckHeadingThree"> <h2 class="mb-0"> <button class="btn btn-link p-0 btn-block text-left collapsed" type="button" data-toggle="collapse" data-target="#pitchDeckCollapseThree" aria-expanded="false" aria-controls="pitchDeckCollapseThree"> <i class="fas fa-external-link-alt mr-2"></i>Share via external link (DocSend, Dropbox...) </button> </h2> </div> <div id="pitchDeckCollapseThree" class="collapse" aria-labelledby="pitchDeckHeadingThree" data-parent="#pitchDeckAccordion"> <div class="card-body border form-group"> <label for="uploadInput"> <small class="text-muted"> Host your pitch deck on Docsend, Dropbox, Google Drive, etc.<br>Don't password protect it. </small> </label> <input name="deck" type="text" placeholder="Direct URL to your pitch deck" class="form-control" id="uploadInput"> <span id="uploadError" class="d-none"></span> <div id="deckFeedback" class="w-100 d-none"> <button id="deckFeedbackHeading" class="w-100 h5 btn-nozoom mt-3 mb-0 btn p-2 text-left collapsed text-white" style="border: none;background-color: #ff007e;font-weight: bold;" data-toggle="collapse" data-target="#deckFeedbackCollapse" aria-expanded="true" aria-controls="deckFeedbackCollapse"> <i class="fas fa-lightbulb mr-2"></i><span>Instant Feedback</span> </button> <div id="deckFeedbackCollapse" class="collapse show" aria-labelledby="deckFeedbackHeading" data-parent="#deckFeedback"> <div class="card-body bg-light"> <p class="d-none"><i class="fas fa-long-arrow-alt-right mr-1"></i>Please provide a direct link to the pitch deck - not to a folder</p> <p class="d-none"><i class="fas fa-long-arrow-alt-right mr-1"></i>Don't share a read-only Google Slides, it may be poorly perceived by some investors. Instead, host a PDF on DocSend or Google Drive and share that link.</p> <p class="d-none"><i class="fas fa-long-arrow-alt-right mr-1"></i>Your link doesn't work. We recommend hosting your pitch deck as a PDF on Google Drive, Dropbox, DocSend, etc.</p> </div> </div> </div> </div> </div> </div> </div> </div> <div class="alert text-center mt-3 alert-danger">You need to be logged in as a founder to submit your deck to investors.<br><span class="cursor-pointer font-weight-bold" onclick="$('#signupBtn').click()"><i class="fas fa-user-plus mr-1"></i><u>Sign up or log in now</u></span></div> </div> <div class="row justify-content-center" id="submitFoot"> <button type="button" class="d-none btn btn-danger" id="declineAlert">Cancel</button> </div> </div> </div> <!-- FOOTER --> <footer class="mt-5 py-5 bg-light"> <div class="mt-5 container pb-5 pb-lg-0"> <div class="row pb-3"> <div class="col-12 col-xl-6 pb-5"> <span class="h1 font-weight-light">A new fundraising experience</span> <p class="text-muted pt-2"> ©2025 OpenVC. All rights reserved. </p> </div> <div class="col-12 col-xl-6"> <div class="row"> <div class="col-6 col-lg-3"> <h2 class="h6 text-muted">OpenVC</h2> <ul class="list-unstyled"> <li> <a class="text-dark" href="./">For founders</a> </li> <li> <a class="text-dark" href="./invest">For investors</a> </li> <li> <a class="text-dark" href="./pricing">Pricing</a> </li> <li> <a class="text-dark" onclick="$('#signupBtn').click()" href="#">Sign Up</a> </li> </ul> </div> <div class="col-6 col-lg-3"> <h2 class="h6 text-muted">About Us</h2> <ul class="list-unstyled"> <li> <a class="text-dark" href="./blog">Blog</a> </li> <li> <a class="text-dark" href="./newsletter">Newsletter</a> </li> <li> <a class="text-dark" href="./love">Wall of love</a> </li> <li> <a class="text-dark" href="https://www.ovcventures.com">OVC Ventures</a> </li> <li> <a class="text-dark" href="./about">About Us</a> </li> <li> <a class="text-dark" href="./legal">Legal</a> </li> </ul> </div> <div class="col-6 col-lg-3"> <h2 class="h6 text-muted">Premium Resources</h2> <ul class="list-unstyled"> <li> <a class="text-dark" href="./masterclass">Masterclass</a> </li> <li> <a class="text-dark" href="./pitchDeckReview">Pitch deck reviews</a> </li> <li> <a class="text-dark" href="./pitchDeckTemplate">Pitch deck template</a> </li> <li> <a class="text-dark" href="./perks">$2,000,000 Perks</a> </li> </ul> </div> <div class="col-6 col-lg-3"> <h2 class="h6 text-muted">Open Resources</h2> <ul class="list-unstyled"> <li> <a class="text-dark" href="./investor-lists/">100+ investor lists</a> </li> <li> <a class="text-dark" href="./flow">OpenFlow</a> </li> <li> <a class="text-dark" href="./opendeck">OpenDeck</a> </li> <li> <a class="text-dark" href="./map">OpenMap</a> </li> <li> <a class="text-dark" href="./fundability">Fundability</a> </li> <li> <a class="text-dark" href="./ebook">Ebook</a> </li> <li> <a class="text-dark" target="_blank" href="https://www.fundraisingadvisors.app/">Fundraising advisors</a> </li> <li> <a class="text-dark" target="_blank" href="https://www.pitchdeckexperts.app/">Pitch Deck Experts</a> </li> <li> <a class="text-dark" target="_blank" href="https://startuplawyers.app/">Startup Lawyers</a> </li> <li> <a class="text-dark" target="_blank" href="https://mvpbuilders.app/">MVP Builders</a> </li> <li> <a class="text-dark" href="./lp-list">LP Navigator</a> </li> </ul> </div> </div> </div> </div> <div class="border-top d-flex justify-content-between w-100 pt-5 pb-3"> <div> <a class="h5 m-0 d-flex align-items-center font-weight-normal text-muted" href="./"> <img src="images/logos/openvc_logo.svg" class="d-inline-block align-top mr-2" width="120" alt="" loading="lazy"> </a> </div> <div id="socialIcons" class="d-flex"> <a href="https://www.youtube.com/channel/UCvX-CsdLYq-JPbbHs5h9k1A/videos" target="_blank" class="btn mr-3 rounded-circle"><i class="fab fa-youtube"></i></a> <a href="https://linkedin.com/company/openvc-app" target="_blank" class="btn mr-3 rounded-circle"><i class="fab fa-linkedin-in"></i></a> <a href="https://twitter.com/OpenVC_" target="_blank" class="btn rounded-circle"><i class="fab fa-twitter"></i></a> </div> </div> </div> </footer> </main> </div> </div><div class="modal" tabindex="-1" id="VCmodal" role="dialog"> <div class="modal-dialog modal-lg modal-dialog-scrollable modal-dialog-centered" role="document"> <div class="modal-content"> <div class="modal-header" style=" padding:0; display:block; border: none; float: right;"> </div> <div data-offset="0" id="vcModalBody" class="modal-body p-0"> </div> <div class="modal-footer"></div> </div> </div> </div> <div class="modal" tabindex="-1" id="profileModal" role="dialog"> <div class="modal-dialog modal-dialog-scrollable modal-dialog-centered" role="document"> <div class="modal-content"> <div class="modal-header" style=" background-color: #1a1a1a; display:block; border: none;"> <button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">&times;</span></button> </div> <div class="modal-body p-0"></div> <div class="modal-footer"></div> </div> </div> </div> <div class="modal pinkModal" data-backdrop="static" tabindex="-1" id="signupModal" data-keyboard="false" role="dialog"> <div class="modal-dialog modal-xl modal-dialog-scrollable modal-dialog-centered" role="document" style="min-width: min-content;"> <div class="modal-content"> <div class="modal-header" style=" padding:0; display:block; border: none; float: right;"> <h2 class="modal-title text-center text-white pb-3 pt-5 h1" style="background-color:#1a1a1a;">Sign up to OpenVC</h2> <button type="button" style="position:absolute;right:0.5em;top:0.5em;" class="close" data-dismiss="modal" aria-label="Close"> <span class="" aria-hidden="true">&times;</span> </button> </div> <div class="modal-body"> </div> </div> </div> </div> <script src="https://code.jquery.com/jquery-3.6.0.min.js" integrity="sha256-/xUj+3OJU5yExlq6GSYGSHk7tPXikynS7ogEvDej/m4=" crossorigin="anonymous"></script> <script src="https://cdn.jsdelivr.net/npm/popper.js@1.16.1/dist/umd/popper.min.js" integrity="sha384-9/reFTGAW83EW2RDu2S0VKaIzap3H66lZH81PoYlFhbGU+6BZp6G7niu735Sk7lN" crossorigin="anonymous"></script> <script src="https://cdn.jsdelivr.net/npm/bootstrap@4.6.0/dist/js/bootstrap.min.js" integrity="sha384-+YQ4JLhjyBLPDQt//I+STsc9iw4uQqACwlvpslubQzn4u2UU2UFM80nGisd026JF" crossorigin="anonymous"></script> <script src="https://cdnjs.cloudflare.com/ajax/libs/bodymovin/5.10.2/lottie.min.js" integrity="sha512-fTTVSuY9tLP+l/6c6vWz7uAQqd1rq3Q/GyKBN2jOZvJSLC5RjggSdboIFL1ox09/Ezx/AKwcv/xnDeYN9+iDDA==" crossorigin="anonymous" referrerpolicy="no-referrer"></script> <script src="https://unpkg.com/leaflet@1.7.1/dist/leaflet.js"></script> <script src="https://unpkg.com/leaflet.markercluster@1.1.0/dist/leaflet.markercluster.js"></script> <script type="text/javascript" src="js/dropzone.js"></script> <script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.24.0/moment.min.js"></script> <script src="https://cdn.jsdelivr.net/npm/@tarekraafat/autocomplete.js@10.2.4/dist/autoComplete.min.js"></script> <script type="text/javascript" src="js/bootstrap-multiselect.js"></script> <script type="text/javascript" src="js/bootstrap-maxlength.js"></script> <script type="text/javascript" src="js/bootstrap-slider.min.js"></script> <script type="text/javascript" src="js/bootstrap-show-modal.js"></script> <script type="text/javascript" src="js/jquery.highlight-within-textarea.js"></script> <script type="text/javascript" src="js/script.min.js"></script> <script type="text/javascript" src="js/login.min.js"></script> <script> $(document).on('click', '[village-data-url]', function(e) { e.preventDefault() if($('.villageModal').length) return let body = `<h1 class="font-weight-bold"><span class="text-primary">Upgrade now</span> to unlock this feature</h1> <img src="images/village/village_teasing.gif" class="mb-5 rounded img-fluid"> <div class='d-flex flex-column text-center'> <span class='h3 mb-3'>Find <span class="text-primary">warm intros</span> to 5,000+ investors</span> </div> <a href='./upgrade' class='mt-3 px-3 mx-auto btn mb-3 p-3 shadow-sm btn-primary btn-lg'><i class="fas fa-rocket mr-2"></i>Let's do it !</a>` bootstrap.showModal( { modalClass:"villageModal text-center", modalDialogClass:"modal-dialog-centered modal-lg", options: { backdrop: true }, body: body }) }) </script> <script> //Check Dark theme if(localStorage.getItem('enableDarkMode')=='true'){ const data_hub = $('#sidebarLogo').attr('data-hub') document.body.classList.add("darkTheme") if(data_hub){ logo_full = 'images/hubs/'+data_hub+'/dark_full.png' logo_mini = 'images/hubs/'+data_hub+'/dark_mini.png' } else{ logo_full = 'images/logos/openvc_logo_white_pink.svg' logo_mini = 'images/logos/openvc_logo_white_initial.png' } $('#headerLogo').attr('src',logo_full) $('#mobileLogo').attr('src',logo_full) $('#sidebarLogo').attr('src',logo_full) $('#smallLogo img').attr('src',logo_mini) } else if(localStorage.getItem('enableDarkMode')==null){ localStorage.setItem('enableDarkMode', false); } </script> <!-- Start of HubSpot Embed Code --> <script type="text/javascript" id="hs-script-loader" defer src="//js.hs-scripts.com/7205027.js"></script> <!-- End of HubSpot Embed Code --> <!-- END FOOTER --> <script>(function(){function c(){var b=a.contentDocument||a.contentWindow.document;if(b){var d=b.createElement('script');d.innerHTML="window.__CF$cv$params={r:'917961792d3d4d3f',t:'MTc0MDUwNDE4MS4wMDAwMDA='};var a=document.createElement('script');a.nonce='';a.src='/cdn-cgi/challenge-platform/scripts/jsd/main.js';document.getElementsByTagName('head')[0].appendChild(a);";b.getElementsByTagName('head')[0].appendChild(d)}}if(document.body){var a=document.createElement('iframe');a.height=1;a.width=1;a.style.position='absolute';a.style.top=0;a.style.left=0;a.style.border='none';a.style.visibility='hidden';document.body.appendChild(a);if('loading'!==document.readyState)c();else if(window.addEventListener)document.addEventListener('DOMContentLoaded',c);else{var e=document.onreadystatechange||function(){};document.onreadystatechange=function(b){e(b);'loading'!==document.readyState&&(document.onreadystatechange=e,c())}}}})();</script></body> <!-- END BODY --> <script> if(typeof cd =="undefined") var cd = 0; else clearInterval(cd) function nFormatter(num, digits) { var si = [ { value: 1, symbol: "" }, { value: 1E3, symbol: "k" }, { value: 1E6, symbol: "M" }, { value: 1E9, symbol: "B" } ]; var rx = /\.0+$|(\.[0-9]*[1-9])0+$/; var i; for (i = si.length - 1; i > 0; i--) { if (num >= si[i].value) { break; } } return (num / si[i].value).toFixed(digits).replace(rx, "$1") + si[i].symbol; } $('[data-toggle="tooltip"]').tooltip({html:true}) //GTM DL PUSH window.dataLayer = window.dataLayer || []; window.dataLayer.push({ 'event': 'fund_displayed', 'name': "Peak" }); function replaceFirstNameInEmailBody(){ let firstname = $('#recipientCont').find('[data-firstname]').data('firstname') if(!firstname){ firstname = $('#VCmodal h1').text() + " team" } let emailBody = $('#messageInput').val() emailBody = emailBody.replace(/\[Investor name\]/g, firstname) $('#messageInput').val(emailBody) } //SUBMIT DECK function submitDeck(id, clickProceed = true){ //alert('SUBMIT DECK') if($('[data-id='+id+'].badFitInfo').length){ $('#confirmWindowBody').html('<h3 class="h2 text-center text-danger mb-4"><i class="fas fa-exclamation-triangle mr-2"></i>This investor seems to be a bad fit</h3>'+$('[data-id='+id+'].badFitInfo').html()) $('#confirmWindow').removeClass('d-none') $('#submit-navbar > ul > li:nth-child(1) > a').attr('onclick','backtofitconfirm()') } else{ $("#confirmWindow").addClass("d-none") $('#submitCont').removeClass('d-none') $('#submit-navbar > ul > li:nth-child(1) > a').removeClass('active') $('#submit-navbar > ul > li:nth-child(1)').addClass('d-none') $('#submit-navbar > ul > li:nth-child(2) > a').addClass('active').text('1. Pick recipient') $('#submit-navbar > ul > li:nth-child(3) > a').text('2. Submit deck') if(clickProceed) $('#fitProceedBtn').click() } $('#declineAlert').removeClass("d-none") $('#fundCont').addClass('d-none') $('#editFundBtn').addClass('d-none') $('#submitDeckBtn').addClass('d-none') $('#submitCont').removeClass('d-none') $('#fitProceedBtn').attr('data-id', id).prop('disabled', false) document.getElementById("preConfirm").scrollIntoView({ behavior: 'smooth' }) } alreadyFetched = false; function checkSubAllowStatus(elem){ $(elem).prop('disabled', true) return $.ajax({ type: 'get', url: 'serverside/getSubAllowStatus' }) } function validSubmit(elem,isDirectToUser = false,id1,id2){ //alert('VALID SUBMIT') $('#loadingRecipient').removeClass('d-none').addClass('d-flex') confirmValidSubmit(elem) return } function confirmValidSubmit(elem){ //alert('CONFIRM VAID SUBMIT') $(elem).prop('disabled', true) $('#confirmWindow').addClass('d-none'); $('#submit-navbar > ul > li:nth-child(1) > a').removeClass('active') $('#submit-navbar > ul > li:nth-child(2) > a').addClass('active') if(!alreadyFetched){ const oriHtml = $('#recipientWindow').html() $.ajax({ type: 'post', url: 'serverside/getUsers', data : {"id":"rec5wESMZt8QZXBiR"}, success: function (res) { $('#recipientWindow').html(oriHtml) $('#recipientWindow table').append(res) $('#recipientWindow').removeClass("d-none") }, error : function (res){ alert('Error while loading users, please contact us') $('#recipientWindow').html(oriHtml) $('#recipientWindow').removeClass("d-none") }, complete: function(res){ $('#loadingRecipient').addClass('d-none').removeClass('d-flex') } }); alreadyFetched = true } else{ $('#loadingRecipient').addClass('d-none').removeClass('d-flex') $('#recipientWindow').removeClass("d-none") } } // recipient selected function selectRecipient(opt,id,btn){ $('#loadingRecipient').addClass('d-none').removeClass('d-flex') $('#recipientCont').remove() $('#pickRecipientNavbarBtn').attr('onclick','backtorecipient()') if(btn){ recipient = $(btn).parents('tr').html() } else if(id){ recipient = $(`.teamDetail td[data-id=${opt}]`).html() } $.ajax({ type: 'get', url: 'components/modals/loggedOutSignup.html', success: function (res) { bootstrap.showModal( { modalClass:"pinkModal loggedOutSignupModal", modalDialogClass:'modal-lg modal-dialog-centered', options: { backdrop: 'static' }, body: res, title: 'Sign up to OpenVC' }) } }); let modal = $('#embeddedEmailWindow') if(recipient){ $('#fromCont').append('<div id="recipientCont" class="mt-2"><label>Your recipient</label><br><table class="mb-5">'+recipient+'</table></div>') $('#recipientCont').find('td:last-child').remove() } var url = "components/getEmail/sendEmail.php" $('#submit-navbar > ul > li:nth-child(3) > a').addClass('active') $('#submit-navbar > ul > li:nth-child(2) > a').removeClass('active') $('#messageInput').maxlength({ alwaysShow: true, appendToParent: true }) $('#subjectInput').maxlength({ alwaysShow: true, appendToParent: true }) replaceFirstNameInEmailBody() $('#recipientWindow').addClass('d-none') $('#embeddedEmailWindow').removeClass('d-none') getStartupDecks() $('#confirmSubmitDeck').unbind().on('click', function (e) { //Mandatory smart feedbacks const feedbacksToFix = $('#subjectFeedbackCollapse:visible p:not(.d-none), #feedbackCollapse:visible p:not(.d-none), #deckFeedbackCollapse:visible p:not(.d-none)') if(feedbacksToFix.length){ const feedbacks = feedbacksToFix.map(function(){ return $(this).text() }).get() const feedbacksText = feedbacks.join('<br>• ') $('#messageError').html(feedbacksText) $('#messageError').removeClass('d-none') modal.find('.result').removeClass('alert-success').addClass('alert-danger').html('<strong>Please review and fix the following feedback before submitting:</strong><br>• '+feedbacksText).removeClass('d-none'); return } //Rest modal.find('.spinner-border').removeClass('d-none'); modal.find('.result').addClass('d-none'); $('#confirmSubmitDeck').prop('disabled',true); var map = {}; var form_data = new FormData(); $("#embeddedEmailWindow input, #messageInput, #embeddedEmailWindow select[name=deck_id]").each(function() { map[$(this).attr("name")] = $(this).val(); }); form_data.append("id", id) form_data.append("opt", opt) form_data.append("data", JSON.stringify(map)) $.ajax({ type: 'post', url: url, data: form_data, cache: false, contentType: false, processData: false, complete: function (data) { if(data.responseText!="") resp = JSON.parse(data.responseText); else{ modal.find('.result').removeClass('alert-success').addClass('alert-danger').html('<strong>File upload failed. Please check that your file is a valid PDF under 10MB and retry.</strong>').removeClass('d-none'); $('#confirmSubmitDeck').prop('disabled',false); } modal.find('.spinner-border').addClass('d-none'); if(resp.response == "success"){ if(typeof $('#VCmodal #fundBody')[0] !="undefined"){ $('#VCmodal .modal-header').html('<button type="button" style="position:absolute;right:0.5em;top:0.5em;z-index:999" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">×</span></button>'); $('#VCmodal .modal-footer').html(''); $('#VCmodal .modal-body').html('<div class="p-5 modal-body text-center"><div class="mt-4">'+resp.message+'</div></div>'); } else{ $('#submitCont').html('<div class="p-5 modal-body text-center"><div class="mt-4">'+resp.message+'</div></div>'); } //GTM DL PUSH window.dataLayer = window.dataLayer || []; window.dataLayer.push({ 'event': 'valid_submit', 'name': "Peak" }); } else if(resp.response == "error"){ modal.find('.result').removeClass('alert-success').addClass('alert-danger').html('<strong>'+resp.error+'</strong>').removeClass('d-none'); $('#confirmSubmitDeck').prop('disabled',false); } else{ modal.find('.result').removeClass('alert-success').addClass('alert-danger').html('<strong>File upload failed. Please check that your file is a valid PDF under 10MB and retry.</strong>').removeClass('d-none'); $('#confirmSubmitDeck').prop('disabled',false); } } }); }); // SMART FEEDBACKS function smartFeedbackBody(input) { var result = []; input = input.toLowerCase().trim(); if(!input.length){ $('#messageFeedback p').addClass('d-none') return false } else if (input.indexOf(' ') == -1 && input.indexOf('\n') == -1){ $('#messageFeedback p').addClass('d-none') return false } //check if body contains url const urlPattern = /https?:\/\/[^\s]+/g const urls = input.match(urlPattern) const matchedUrls = urls || [] if(matchedUrls.length > 0){ $('#messageFeedback p:eq(1)').removeClass('d-none') result.push(matchedUrls[0]) } else $('#messageFeedback p:eq(1)').addClass('d-none') //check greetings if(input.startsWith('hi,')||input.startsWith('hi\n')){ $('#messageFeedback p:eq(0)').removeClass('d-none'); result.push(input.startsWith('hi,') ? 'hi,' : 'hi\n') } else if(input.startsWith('hello,')||input.startsWith('hello\n')){ $('#messageFeedback p:eq(0)').removeClass('d-none'); result.push(input.startsWith('hello,') ? 'hello,' : 'hello\n') } else if(input.startsWith('greetings,')||input.startsWith('greetings\n')){ $('#messageFeedback p:eq(0)').removeClass('d-none'); result.push(input.startsWith('greetings,') ? 'greetings,' : 'greetings\n') } else if( !input.startsWith('hello') && !input.startsWith('hi') && !input.startsWith('dear') && !input.startsWith('greetings') && !input.startsWith('GM') && !input.startsWith('hey') && !input.startsWith('hola') && !input.startsWith('guten') && !input.startsWith('bonjour') ){ $('#messageFeedback p:eq(0)').removeClass('d-none'); if(input.split('\n').length > 1) result.push(input.split('\n')[0].split(' ')[0]) else result.push(input.split(' ')[0]) } else { $ ('#messageFeedback p:eq(0)').addClass('d-none'); } //check numbers if(!(/\d/.test(input))){ if(!$('#messageFeedback p:eq(2)').attr('data-init')){ setTimeout(function(){ $ ('#messageFeedback p:eq(2)').removeClass('d-none'); }, 3000); $('#messageFeedback p:eq(2)').attr('data-init',true) } else $ ('#messageFeedback p:eq(2)').removeClass('d-none'); } else{ $ ('#messageFeedback p:eq(2)').addClass('d-none'); } //check paragraphs const paragraphs = input.split('\n') var isTooLong = false; for (let i = 0; i < paragraphs.length; i++) { if(paragraphs[i].length > 400){ $('#messageFeedback p:eq(3)').removeClass('d-none'); result.push(paragraphs[i]) isTooLong = true; } } if(!isTooLong) $('#messageFeedback p:eq(3)').addClass('d-none') //check mention of OpenVC if (input.indexOf("openvc") !== -1) { $('#messageFeedback p:eq(4)').removeClass('d-none') result.push("openvc") } else $('#messageFeedback p:eq(4)').addClass('d-none') //display suggestions let nbSuggestions = $('#messageFeedback p:not(.d-none)').length; $('#feedbackHeading > span').html(nbSuggestions > 1 ? 'Instant Feedback: please review <u>'+nbSuggestions+" suggestions</u>" : 'Instant Feedback: please review <u>'+nbSuggestions+" suggestion</u>") if(result.length > 0) return result else return false } function smartFeedbackSubject(input) { if(!input.length){ $('#subjectFeedback p').addClass('d-none') return false } var result = []; const numUpper = input.length - input.replace(/[A-Z]/g, '').length input = input.toLowerCase().trim() //check forbidden words const w = ['pitch','opportunity','deck','intro'] for (i = 0; i<w.length ;i++){ if (input.indexOf(w[i]) !== -1) { $('#subjectFeedback p:eq(0)').removeClass('d-none') result.push(w[i]) } } if(!result.length) $('#subjectFeedback p:eq(0)').addClass('d-none') //check quotes if(input.startsWith('"') || input.endsWith('"')){ $('#subjectFeedback p:eq(1)').removeClass('d-none') result.push('"') } else $('#subjectFeedback p:eq(1)').addClass('d-none') //check caps if(numUpper > 20) $('#subjectFeedback p:eq(2)').removeClass('d-none') else $('#subjectFeedback p:eq(2)').addClass('d-none') //check email addresses const emailPattern = /[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}/g const emails = input.match(emailPattern) const extractedEmails = emails || [] if(extractedEmails.length > 0){ $('#subjectFeedback p:eq(3)').removeClass('d-none') result.push(extractedEmails[0]) } else $('#subjectFeedback p:eq(3)').addClass('d-none') //check "!!" or "??" if(input.indexOf('!!') !== -1){ $('#subjectFeedback p:eq(4)').removeClass('d-none') result.push('!!') } else if(input.indexOf('??') !== -1){ $('#subjectFeedback p:eq(4)').removeClass('d-none') result.push('??') } else $('#subjectFeedback p:eq(4)').addClass('d-none') //display suggestions let nbSuggestions = $('#subjectFeedback p:not(.d-none)').length $('#subjectFeedbackHeading > span').html(nbSuggestions > 1 ? 'Instant Feedback: please review <u>'+nbSuggestions+" suggestions</u>" : 'Instant Feedback: please review <u>'+nbSuggestions+" suggestion</u>") if(result.length > 0) return result else return false } function smartFeedbackDeck(input) { input = input.toLowerCase().trim(); if(input.length < 5){ $('#deckFeedback p').addClass('d-none') return false } if (input.indexOf("docs.google") !== -1 && input.indexOf("mobilepresent") == -1) { $('#deckFeedback p:eq(1)').removeClass('d-none'); return "docs.google" } else $('#deckFeedback p:eq(1)').addClass('d-none'); if (input.indexOf("file://") !== -1) { $('#deckFeedback p:eq(2)').removeClass('d-none'); return "file://" } else $('#deckFeedback p:eq(2)').addClass('d-none'); if (input.indexOf("folders") !== -1) { $('#deckFeedback p:eq(0)').removeClass('d-none'); return "folders" } else $('#deckFeedback p:eq(0)').addClass('d-none'); return false } $('#messageInput').highlightWithinTextarea({ highlight: [smartFeedbackBody], className: 'hwt-highlight' }); $('#subjectInput').highlightWithinTextarea({ highlight: [smartFeedbackSubject], className: 'hwt-highlight' }); $('#uploadInput').highlightWithinTextarea({ highlight: [smartFeedbackDeck], className: 'hwt-highlight' }); $('#uploadInput').on('input', function() { let nbSuggestions = $('#deckFeedback p:not(.d-none)').length; $('#deckFeedbackHeading > span').html(nbSuggestions > 1 ? 'Instant Feedback: please review <u>'+nbSuggestions+" suggestions</u>" : 'Instant Feedback: please review <u>'+nbSuggestions+" suggestion</u>") const feedback = $('#deckFeedback p:not(.d-none)')[0] if(feedback) $('#deckFeedback').removeClass('d-none') else $('#deckFeedback').addClass('d-none') }); $('#fromInput').on('input', function() { let nbSuggestions = $('#addressFeedback p:not(.d-none)').length; $('#addressFeedbackHeading > span').html(nbSuggestions > 1 ? 'Instant Feedback: please review <u>'+nbSuggestions+" suggestions</u>" : 'Instant Feedback: please review <u>'+nbSuggestions+" suggestion</u>") const feedback = $('#addressFeedback p:not(.d-none)')[0] if(feedback) $('#addressFeedback').removeClass('d-none') else $('#addressFeedback').addClass('d-none') }); $('#subjectInput').on('input', function() { let nbSuggestions = $('#subjectFeedback p:not(.d-none)').length; $('#subjectFeedbackHeading > span').html(nbSuggestions > 1 ? 'Instant Feedback: please review <u>'+nbSuggestions+" suggestions</u>" : 'Instant Feedback: please review <u>'+nbSuggestions+" suggestion</u>") const feedback = $('#subjectFeedback p:not(.d-none)')[0] if(feedback) $('#subjectFeedback').removeClass('d-none') else $('#subjectFeedback').addClass('d-none') }); $('#messageInput').on('input', function() { let nbSuggestions = $('#messageFeedback p:not(.d-none)').length; $('#feedbackHeading > span').html(nbSuggestions > 1 ? 'Instant Feedback: please review <u>'+nbSuggestions+" suggestions</u>" : 'Instant Feedback: please review <u>'+nbSuggestions+" suggestion</u>") const feedback = $('#messageFeedback p:not(.d-none)')[0] if(feedback) $('#messageFeedback').removeClass('d-none') else $('#messageFeedback').addClass('d-none') }); } function backtofitconfirm(){ let modal = $('#confirmWindow'); $('#submit-navbar > ul > li:nth-child(1) > a').addClass('active') $('#submit-navbar > ul > li:nth-child(2) > a').removeClass('active') $('#submit-navbar > ul > li:nth-child(3) > a').removeClass('active') $('#recipientWindow').addClass("d-none"); $('#embeddedEmailWindow').addClass('d-none'); $('#confirmWindow').removeClass('d-none'); $('#fitProceedBtn').prop('disabled', false) } function backtorecipient(){ $('#submit-navbar > ul > li:nth-child(1) > a').removeClass('active') $('#submit-navbar > ul > li:nth-child(2) > a').addClass('active') $('#submit-navbar > ul > li:nth-child(3) > a').removeClass('active') $('#recipientWindow').removeClass("d-none"); $('#embeddedEmailWindow').addClass('d-none'); $('#confirmWindow').addClass('d-none'); } // CAPTCHA FUNCTIONS function recaptchaCallback2() { $('#captchaError2').addClass('d-none'); $('#changesWindow').find('button.btn-success').prop('disabled',false) } // DOC READY $( document ).ready(function() { //cancel submit btn $('#declineAlert').unbind().on('click', function (e) { $('#captchaError').addClass('d-none'); $('#submitCont').addClass('d-none'); $('#recipientWindow').addClass('d-none'); $('#embeddedEmailWindow').addClass('d-none'); $('#fundCont').removeClass('d-none'); $('#editFundBtn').removeClass('d-none'); $('#submitDeckBtn').removeClass('d-none'); $('#declineAlert').addClass("d-none"); $('#submit-navbar > ul > li:nth-child(1) > a').addClass('active') $('#submit-navbar > ul > li:nth-child(2) > a').removeClass('active') $('#submit-navbar > ul > li:nth-child(3) > a').removeClass('active') }) //pitch deck accordion $('#pitchDeckAccordion .card-header button').unbind().on('click', function(){ if ($(this).parents('.card-header').hasClass('active')) $('#pitchDeckAccordion .card-header').removeClass('active') else { $('#pitchDeckAccordion .card-header').removeClass('active') $(this).parents('.card-header').addClass('active') } }) $('#otherDeckBtn').unbind().on('click', function(){ $('#pitchDeckAccordion').removeClass('d-none') $('#existingDeckCont').remove() }) //autocomplete values var autocomplete = null; const isRBF = false; const isAccel = false; const isAngel = false; if(isRBF){ investor_types = ['Revenue-based']; } else if(isAccel){ investor_types = ['Incubator, Accelerator']; } else if(isAngel){ investor_types = ['Solo angel']; } else{ investor_types = [ 'VC', 'Corporate VC', 'Family office', 'Angel network', 'Solo angel', 'Public fund', 'PE fund', 'Incubator, Accelerator', 'Startup studio', 'Other' ]; } var stage_list=['1. Idea or Patent','2. Prototype', '3. Early Revenue', '4. Scaling', '5. Growth', '6. Pre-IPO']; var social_list=['Linkedin','Twitter','Website','Other']; var crm_list = ['Affinity','Airtable','Hubspot','Pipedrive','Salesforce','Other']; //MAP function initMap(){ if(typeof geocode !== 'undefined'){ fundmap = L.map('map_5f339d936b').setView(geocode, 2); L.tileLayer('https://tile.openstreetmap.org/{z}/{x}/{y}.png', { maxZoom: 12, minZoom : 2, maxBoundsViscosity: 1.0 }).addTo(fundmap); fundmap.scrollWheelZoom.disable(); L.marker(geocode).addTo(fundmap); } } var fundSchema = [ {"data" : "Who we are", "status" : false}, {"data" : "How to get in touch", "status" : false}, {"data" : "Verification email", "status" : false}, {"data" : "Value add" , "status" : false}, {"data" : "Firm type", "status" : false}, {"data" : "Global HQ", "status" : false}, {"data" : "Branch offices", "status" : false}, {"data" : "Funding requirements", "status" : false}, {"data" : "Funding stages", "status" : false}, {"data" : "Check size", "status" : false}, {"data" : "Target countries", "status" : false}, {"data" : "Linkedin", "status" : false}, {"data" : "Twitter", "status" : false}, {"data" : "Website", "status" : false}, {"data" : "Other", "status" : false}, {"data" : "Default email or URL to receive deal flow", "status" : false}, {"data" : "CRM", "status" : false}, {"data" : "Branch office #1", "status" : false}, {"data" : "Branch office #2", "status" : false}, {"data" : "Branch office #3", "status" : false}, {"data" : "Branch office #4", "status" : false}, {"data" : "Branch office #5", "status" : false} ] if(!isRBF && !isAccel && !isAngel){ fundSchema = fundSchema.concat([{"data" : "Lead", "status" : false}]); } else if(isRBF){ let RBFdata = [ {"data" : "Time to money", "status" : false}, {"data" : "Typical fee", "status" : false} ]; fundSchema = fundSchema.concat(RBFdata); } else if(isAccel){ let accelData = [ {"data" : "Typical terms", "status" : false}, {"data" : "Next deadline to apply", "status" : false}, {"data" : "Application periodicity", "status" : false} ]; fundSchema = fundSchema.concat(accelData); } else if(isAngel){ const index = fundSchema.findIndex(object => { return object.data === 'Who we are'; }); fundSchema[index].data = "Who I am"; } const isoCountries = {"Afghanistan":["AF","Asia"],"Albania":["AL","Europe"],"Algeria":["DZ","MENA"],"Andorra":["AD","Europe"],"Angola":["AO","Africa"],"Antigua and Barbuda":["AG","America"],"Argentina":["AR","America"],"Armenia":["AM","Europe"],"Australia":["AU","Oceania"],"Austria":["AT","Europe"],"Azerbaijan":["AZ","Asia"],"Bahamas":["BS","America"],"Bahrain":["BH","MENA"],"Bangladesh":["BD","Asia"],"Barbados":["BB","America"],"Belarus":["BY","Europe"],"Belgium":["BE","Europe"],"Belize":["BZ","America"],"Benin":["BJ","Africa"],"Bhutan":["BT","Asia"],"Bolivia":["BO","America"],"Bosnia-H":["BA","Europe"],"Botswana":["BW","Africa"],"Brazil":["BR","America"],"Bulgaria":["BG","Europe"],"Burkina Faso":["BF","Africa"],"Burundi":["BI","Africa"],"Cabo Verde":["CV","Africa"],"Cambodia":["KH","Asia"],"Cameroon":["CM","Africa"],"Canada":["CA","America"],"Cayman Islands":["KY","America"],"Central African Republic":["CF","Africa"],"Chad":["TD","Africa"],"Chile":["CL","America"],"China":["CN","Asia"],"Colombia":["CO","America"],"Comoros":["KM","Africa"],"Congo (Congo-Brazzaville)":["CG","Africa"],"DRC Congo":["CD","Africa"],"Costa Rica":["CR","America"],"C\u00f4te d'Ivoire":["CI","Africa"],"Croatia":["HR","Europe"],"Cuba":["CU","America"],"Cyprus":["CY","Europe"],"Czech Republic":["CZ","Europe"],"Denmark":["DK","Europe"],"Djibouti":["DJ","MENA"],"Dominica":["DM","America"],"Dominican Republic":["DO","America"],"Ecuador":["EC","America"],"Egypt":["EG","MENA"],"El Salvador":["SV","America"],"Equatorial Guinea":["GQ","Africa"],"Eritrea":["ER","Africa"],"Estonia":["EE","Europe"],"Ethiopia":["ET","Africa"],"Fiji":["FJ","Oceania"],"Finland":["FI","Europe"],"France":["FR","Europe"],"Gabon":["GA","Africa"],"Gambia":["GM","Africa"],"Georgia":["GE","Europe"],"Germany":["DE","Europe"],"Ghana":["GH","Africa"],"Gibraltar":["GI","Europe"],"Greece":["GR","Europe"],"Grenada":["GD","America"],"Guatemala":["GT","America"],"Guinea":["GN","Africa"],"Guinea-Bissau":["GW","Africa"],"Guyana":["GY","America"],"Haiti":["HT","America"],"Holy See":["VA","Europe"],"Honduras":["HN","America"],"Hong Kong":["HK","Asia"],"Hungary":["HU","Europe"],"Iceland":["IS","Europe"],"India":["IN","Asia"],"Indonesia":["ID","Asia"],"Iran":["IR","MENA"],"Iraq":["IQ","MENA"],"Ireland":["IE","Europe"],"Israel":["IL","MENA"],"Italy":["IT","Europe"],"Jamaica":["JM","America"],"Japan":["JP","Asia"],"Jordan":["JO","MENA"],"Kazakhstan":["KZ","Asia"],"Kenya":["KE","Africa"],"Kiribati":["KI","Oceania"],"Kuwait":["KW","MENA"],"Kyrgyzstan":["KG","Asia"],"Laos":["LA","Asia"],"Latvia":["LV","Europe"],"Lebanon":["LB","MENA"],"Lesotho":["LS","Africa"],"Liberia":["LR","Africa"],"Lybia":["LY","MENA"],"Liechtenstein":["LI","Europe"],"Lithuania":["LT","Europe"],"Luxembourg":["LU","Europe"],"Madagascar":["MG","Africa"],"Malawi":["MW","Africa"],"Malaysia":["MY","Asia"],"Maldives":["MV","Asia"],"Mali":["ML","Africa"],"Malta":["MT","Europe"],"Marshall Islands":["MH","Oceania"],"Mauritania":["MR","MENA"],"Mauritius":["MU","Africa"],"Mexico":["MX","America"],"Micronesia":["FM","Oceania"],"Moldova":["MD","Europe"],"Monaco":["MC","Europe"],"Mongolia":["MN","Asia"],"Montenegro":["ME","Europe"],"Morocco":["MA","MENA"],"Mozambique":["MZ","Africa"],"Myanmar":["MM","Asia"],"Namibia":["NA","Africa"],"Nepal":["NP","Asia"],"Netherlands":["NL","Europe"],"New Zealand":["NZ","Oceania"],"Nicaragua":["NI","America"],"Niger":["NE","Africa"],"Nigeria":["NG","Africa"],"North Macedonia":["MK","Europe"],"Norway":["NO","Europe"],"Oman":["OM","MENA"],"Pakistan":["PK","Asia"],"Palau":["PW","Oceania"],"Palestine":["PS","MENA"],"Panama":["PA","America"],"Papua New Guinea":["PG","Oceania"],"Paraguay":["PY","America"],"Peru":["PE","America"],"Philippines":["PH","Asia"],"Poland":["PL","Europe"],"Portugal":["PT","Europe"],"Qatar":["QA","MENA"],"Romania":["RO","Europe"],"Russia":["RU","Europe"],"Rwanda":["RW","Africa"],"Sant Kitts and Nevis":["KN","America"],"Sant Lucia":["LC","America"],"Saint Vincent and the Grenadines":["VC","America"],"Samoa":["WS","Oceania"],"San Marino":["SM","Europe"],"Sao Tome and Principe":["ST","Africa"],"Saudi Arabia":["SA","MENA"],"Senegal":["SN","Africa"],"Serbia":["RS","Europe"],"Seychelles":["SC","Africa"],"Sierra Leone":["SL","Africa"],"Singapore":["SG","Asia"],"Slovakia":["SK","Europe"],"Slovenia":["SI","Europe"],"Solomon Islands":["SB","Oceania"],"Somalia":["SO","Africa"],"South Africa":["ZA","Africa"],"South Korea":["KR","Asia"],"Spain":["ES","Europe"],"Sri Lanka":["LK","Asia"],"Sudan":["SD","MENA"],"Suriname":["SR","America"],"Sweden":["SE","Europe"],"Switzerland":["CH","Europe"],"Syria":["SY","MENA"],"Taiwan":["TW","Asia"],"Tajikistan":["TJ","Asia"],"Tanzania":["TZ","Africa"],"Thailand":["TH","Asia"],"Timor-Leste":["TL","Asia"],"Togo":["TG","Africa"],"Tonga":["TO","Oceania"],"Trinidad and Tobago":["TT","America"],"Tunisia":["TN","MENA"],"Turkey":["TR","MENA"],"Turkmenistan":["TM","Asia"],"Tuvalu":["TV","Oceania"],"UAE":["AE","MENA"],"UK":["GB","Europe"],"USA":["US","America"],"Uganda":["UG","Africa"],"Ukraine":["UA","Europe"],"Uruguay":["UY","America"],"Uzbekistan":["UZ","Asia"],"Vanuatu":["VU","Oceania"],"Venezuela":["VE","America"],"Vietnam":["VN","Asia"],"Yemen":["YE","MENA"],"Zambia":["ZM","Africa"],"Zimbabwe":["ZW","Africa"]}; const originalData = $('#fundBodx').html(); //SELECTS function populateCountries(val){ const continent= ['Africa', 'America', 'Asia' , 'Europe', 'MENA', 'Oceania'] ; var ori = []; var str= ''; //console.log(val) $(val).find('span').each(function () { ori.push(this.innerText.trim()); }); continent.forEach(function(c){ str+=`<optgroup label=${c}>`; Object.keys(isoCountries).forEach(function (key){ if(c==isoCountries[key][1]){ var selected = false; ori.forEach(function(o){ if(o==key){ selected = true } }); if(selected) str += `<option selected value="${key}">${key}</option>` else str += `<option value="${key}">${key}</option>` } }) str+=`</optgroup>`; }); $(val).html(`<select name="Countries of investment" multiple class="active form-control form-control-sm">${str}</select>`) $(val).children('select').multiselect({ maxHeight: 200, showSelectedValues : true, enableHTML: true, enableClickableOptGroups : false, enableCollapsibleOptGroups: true, collapseOptGroupsByDefault: true, enableFiltering: true, includeFilterClearBtn: false, enableCaseInsensitiveFiltering: true, buttonClass: 'btn btn-default active', templates : { optionGroup: '<a class="multiselect-item multiselect-group"></a>' }, numberDisplayed : 3 }); } function populateSelect(name,val,opt,ori,multiselect,multiOri,enableFilter){ var str = ''; if(multiOri){ ori = []; $(val).children('span').each(function () { ori.push(this.innerText.trim()); }); } if(ori==''&&!multiOri) str = '<option selected value=""></option>'; opt.forEach(function(e){ if(multiOri){ var selected = false; ori.forEach(function(o){ if(o==e){ selected = true } }); if(selected) str += `<option selected value="${e}">${e}</option>` else str += `<option value="${e}">${e}</option>` } else if(ori==e) str += `<option selected value="${e}">${e}</option>` else str += `<option value="${e}">${e}</option>` }) if(multiselect){ $(val).html(`<select name="${name}" multiple class="active form-control form-control-sm">${str}</select>`) $(val).children('select').multiselect({ maxHeight: 200, enableHTML: true, enableFiltering: enableFilter ? true : false, includeFilterClearBtn: false, enableCaseInsensitiveFiltering: enableFilter ? true : false, //nonSelectedText: , buttonClass: 'btn btn-default active', numberDisplayed : 3 }); } else $(val).html(`<select name="${name}" class="form-control form-control-sm">${str}</select>`) } //EDIT BTN function init_editMode(){ //INIT document.getElementById('fundBodx').scrollTop = 0; $("#overview").animate({ scrollTop: 0 }, 500); $('#socialIcons a').addClass('d-none') $('#fundAlert').removeClass('d-none') $('#teamCont').addClass('d-none') $('li.teamElem').addClass('d-none') $('#editFundBtn').prop('disabled',true) $('#confirmChangesBtn').prop('disabled',false) $('#confirmChangesBtn').removeClass('d-none') $('#submitDeckBtn, .warmBtn').prop('disabled',true) $('#submitDeckBtn, .warmBtn').addClass('d-none') $('#editFundBtn').addClass('d-none') $('#cancelChangesBtn').removeClass('d-none') $('.settingsElem').removeClass('d-none') //Map if(typeof fundmap !== "undefined"){ fundmap.off(); fundmap.remove(); } //Populate inputs $('#fundCont table.fundDetail:not(.teamDetail) tr, #socialTable tr').each(function() { const attr = $( this ).children('td')[0]; var val = $( this ).children('td')[1]; var ori = val.innerText; if (ori == 'N/A') ori=''; switch(attr.innerText){ //investor type case 'Firm type' : populateSelect(attr.innerText,val, investor_types,ori); break; case 'Application periodicity' : populateSelect(attr.innerText,val,["In batches","All year round"], ori) break; case 'How to get in touch' : populateSelect(attr.innerText,val, ['Email address','Intro preferred','Online form'],ori); break; case 'Who we are': $(attr).html(attr.innerText+'<i data-toggle="tooltip" title="Introduce your firm\'s vision and some key facts." class="ml-1 cursor-pointer fas fa-info-circle"></i>') $(val).html('<textarea name="'+attr.innerText+'" rows="4" maxlength="350" class="mb-2 form-control form-control-sm">'+ori+'</textarea>') $('textarea[name="'+attr.innerText+'"]').maxlength({ alwaysShow: true, appendToParent: true }); break; case 'Funding requirements': if(isRBF) $(attr).html(attr.innerText+'<i data-toggle="tooltip" title="Be specific about what you invest in: markets, technologies, business models, any other criteria. Must start with \'We finance\'." class="ml-1 cursor-pointer fas fa-info-circle"></i>') else if(isAngel) $(attr).html(attr.innerText+'<i data-toggle="tooltip" title="Be specific about what you invest in: markets, technologies, business models, any other criteria. Must start with \'I invest in\'." class="ml-1 cursor-pointer fas fa-info-circle"></i>') else $(attr).html(attr.innerText+'<i data-toggle="tooltip" title="Be specific about what you invest in: markets, technologies, business models, any other criteria. Must start with \'We invest in\'." class="ml-1 cursor-pointer fas fa-info-circle"></i>') $(val).html('<textarea name="'+attr.innerText+'" rows="4" maxlength="350" class="mb-2 form-control form-control-sm">'+ori+'</textarea>') $('textarea[name="'+attr.innerText+'"]').maxlength({ alwaysShow: true, appendToParent: true }); break; case 'Value add': $(attr).html(attr.innerText+'<i data-toggle="tooltip" title="Be specific about how you help your portfolio companies: sales, recruiting, advice, etc." class="ml-1 cursor-pointer fas fa-info-circle"></i>') $(val).html('<textarea name="'+attr.innerText+'" rows="4" maxlength="350" class="mb-2 form-control form-control-sm">'+ori+'</textarea>') $('textarea[name="'+attr.innerText+'"]').maxlength({ alwaysShow: true, appendToParent: true }); break; case 'Global HQ': $(attr).html(attr.innerText+'<i data-toggle="tooltip" title="Fill in a complete postal address to appear on the VC map" class="ml-1 cursor-pointer fas fa-info-circle"></i>') let pp = $(val).find('p:eq(0)').html(); if(typeof pp=="undefined") pp=""; $(val).html('<input type="text" name="'+attr.innerText+'" class="form-control form-control-sm" value="'+pp+'">') break; //stages of investment case 'Funding stages' : populateSelect(attr.innerText,val,stage_list,ori,true,true); break; case 'Lead' : populateSelect(attr.innerText,val,["Always","Sometimes","Never"], ori) break; case 'Default email or URL to receive deal flow' : $(val).html('<input type="text" name="Contact email" class="form-control form-control-sm" value="'+ori+'">') break; case 'Target countries' : populateCountries(val); break; case 'CRM' : populateSelect(attr.innerText,val,crm_list,ori,false,false,false); break; case 'Check size' : let min = $(attr).attr('data-min') ? $(attr).attr('data-min') : 0 let max = $(attr).attr('data-max') ? $(attr).attr('data-max') : 21000000 let str = `<input disabled onclick="event.stopPropagation();" id="editCheq" class="form-control" data-slider-ticks="[0,1000,5000,10000,25000,50000,100000,200000,300000,400000,500000,600000,700000,800000,900000,1000000,2000000,3000000,4000000,5000000,6000000,7000000,8000000,9000000,10000000,12000000,14000000,16000000,18000000,20000000,21000000]" data-slider-id='ex2Slider' type="text" data-slider-value="[${min},${max}]"/><p class="mt-2" id="preCheq"></p>` $(val).html(str); $('#editCheq').slider({ min: 0, max: 21000000, lock_to_ticks : true, ticks_positions : [0,3,6,9,12,15,20,23,26,29,32,35,38,42,45,50,53,56,59,62,65,68,71,74,77,80,83,86,89,96,100], tooltip_position: 'top', formatter: function(value) { return updateCheq(value); } }); $("#editCheq").on("change", function(slideEvt) { $("#preCheq").text(updateCheq(slideEvt.value.newValue)); }); let n = $('#editCheq').slider('getValue') $("#preCheq").text(updateCheq(n)); break; default: $(val).html('<input type="text" name="'+attr.innerText+'" class="form-control form-control-sm" value="'+ori+'">') } let l = fundSchema.findIndex((fund => fund.data == attr.innerText)); //console.log(attr.innerText, ori) fundSchema[l].status = true; }); function updateCheq(value){ if((value[0] === 0 && value[1] > 20000000) || (value[0] === 0 && value[1] === 0) || (value[1] > 20000000 && value[0] > 20000000)){ return "N/A — Slide handles to specify"; } else if(value[0] === 0 ){ let r =" max. $" + nFormatter(value[1], 2); return r } else if(value[1] > 20000000){ let r = " min. $" + nFormatter(value[0], 2); return r } else{ let r = "$"+nFormatter(value[0], 2) + " to $" + nFormatter(value[1], 2); return r } } // PORTFOLIO function createPortfolioElement(url,img,name,key,add,id){ if(!id) id = 0; if(!name) name = 0; if(!img) img = 0; if(!url) url = 0; portfolioStr += ` <div class="card portElem"> <div class="card-header" id="portHead${key}"> <h2 class="mb-0"> <button class="btn btn-link btn-block text-left collapsed" type="button" data-toggle="collapse" data-target="#portCollapse${key}" aria-expanded="true" aria-controls="portCollapse${key}"> <i class="fas fa-edit mr-1"></i> ${name} </button> </h2> </div> <div id="portCollapse${key}" class="collapse" aria-labelledby="portHead${key}" data-parent="#portfolioAccordeon"> <div class="card-body"> <p><button onclick="$(this).closest('.card').remove()" class="btn btn-default"><i class="fas fa-trash-alt"></i> Remove from portfolio</button></p> <p><input type="hidden" value="${id}" data-port="portfolioID" class="form-control form-control-sm"/></p> <p><input type="hidden" value="${url}" data-port="portfolioURL" class="form-control form-control-sm"/></p> <p><input type="hidden" value="${name}" data-port="portfolioName" class="form-control form-control-sm"/></p> </div> </div> </div> ` if(add){ $('#portfolioAccordeon').append(portfolioStr); } } var portfolioStr = ` <div class="accordion" id="portfolioAccordeon"> <div class="card mb-5"> <div class="card-header" id="portHead"> <h2 class="mb-0"> <button class="btn btn-link btn-block text-left" type="button" data-toggle="collapse" data-target="#portCollapse" aria-expanded="true" aria-controls="portCollapse"> <i class="fas fa-plus mr-1"></i> Add company to portfolio </button> </h2> </div> <div id="portCollapse" class="collapse" aria-labelledby="portHead" data-parent="#portfolioAccordeon"> <div class="card-body"> <p>Add a portfolio company by searching below</p> <p><input type="text" id="startupName" placeholder="Company name" class="form-control form-control-sm"/></p> <div id="portfolioConfirm" class="d-none">Do you want to add this company to your portfolio ? <div class="my-2"></div> <button id="addExistingPortfolio" class="btn btn-success"><i class="fas fa-plus mr-1"></i> Yes</button> <button id="cancelExistingPortfolio" class="btn btn-danger"><i class="fas fa-times mr-1"></i> No</button> </div> <p><button id="newPortfolio" class="btn btn-primary"><i class="fas fa-plus mr-1"></i> My portfolio company is not on the list</button></p> <p><input type="text" id="newCompany" placeholder="Company name" class="d-none form-control form-control-sm"/></p> <p><input type="text" id="websiteURL" placeholder="Website URL" class="d-none form-control form-control-sm"/></p> <p><button id="addToPortfolioBtn" class="btn btn-success d-none"><i class="fas fa-check mr-1"></i> Confirm</button></p> </div> </div> </div> `; $('.portfolioElement').each(function(key, elem) { let url = $(elem).attr('data-url'); let name = $(elem).attr('data-company'); let img = $(elem).attr('data-logo'); let id = $(elem).attr('data-id'); createPortfolioElement(url,img,name,key,false,id) }) portfolioStr += '</div>'; $('#noPortfolioCont').removeClass('d-none') $('#portfolioCont').html(portfolioStr); //get porfolio autocomplete var portfolio_url = "serverside/portfolioList.php"; $.ajax({ type: 'get', url: portfolio_url, complete: function (data) { resp = JSON.parse(data.responseText); if (typeof autoCompleteJS == "undefined"){ //console.log(resp) const autoCompleteJS = new autoComplete({ selector: "#startupName", placeHolder: "Search for a company", data: { src: resp, cache: true, keys: ['name'] }, resultItem: { highlight: true }, events: { input: { selection: (event) => { const selection = event.detail.selection.value; autoCompleteJS.input.value = selection.name; str = "<p id='confirmPortfolio'>"; $('#portfolioConfirm').removeClass('d-none'); $('#portfolioConfirm > div').html(`<img width="36px" src="${selection.logo}"> ${selection.name}`); $('#cancelExistingPortfolio').on('click', function (e) { $('#portfolioConfirm > div').html(''); $('#portfolioConfirm').addClass('d-none'); }); $('#addExistingPortfolio').unbind().on('click', function (e) { portfolioStr=''; let ids = $('[data-port="portfolioID"]').map(function() { return $(this).val(); }).get(); //console.log(ids) if (ids.includes(selection.id)){ alert("This company is already in this fund's portfolio"); return; } else { $('#startupName').val(''); $('#portfolioConfirm').addClass('d-none'); createPortfolioElement(null,selection.logo,selection.name,selection.id,true,selection.id) } }); } } }, resultsList: { element: (list, data) => { if (!data.results.length) { const message = document.createElement("div"); message.setAttribute("class", "no_result"); message.innerHTML = `<span>Found No Results for "${data.query}"</span>`; list.appendChild(message); } }, noResults: true, } }); } } }); $('#newPortfolio').on('click', function (e) { $('#websiteURL').removeClass('d-none'); $('#newCompany').removeClass('d-none'); $('#logoURL').removeClass('d-none'); $('#addToPortfolioBtn').removeClass('d-none'); }) $('#addToPortfolioBtn').on('click', function (e) { let url = $('#websiteURL').val(); let name = $('#newCompany').val(); let regex = new RegExp(/[-a-zA-Z0-9@:%._\+~#=]{1,256}\.[a-zA-Z0-9()]{1,6}\b([-a-zA-Z0-9()@:%_\+.~#?&//=]*)?/gi); if(url == ''||name==''){ alert('Some fields are empty. Please check Website URL, Company Name and Company Logo fields.') return } if(!url.match(regex)){ alert('Website URL is invalid (must start with http or https)') return } let key = $('#portfolioAccordeon > .card').length; portfolioStr = ''; createPortfolioElement(url,null,name,key,true) $('#websiteURL').addClass('d-none'); $('#newCompany').addClass('d-none'); $('#logoURL').addClass('d-none'); $('#websiteURL').val(''); $('#newCompany').val(''); $('#logoURL').val(''); $('#addToPortfolioBtn').addClass('d-none'); $('#portCollapse').collapse('hide') }) $('#fundBody table tr.d-none').removeClass('d-none') $('[data-toggle="tooltip"]').tooltip() }//end init_editmode //EDIT BTN $('#editFundBtn').on('click', function (e) { }) //CANCEL CHANGES BTN $('#cancelChangesBtn').on('click', function (e) { if(!confirm("You are about to leave the edit mode and discard all changes made. Are you sure ?")) return false; $('#fundAlert').addClass('d-none'); $('#editFundBtn').removeClass('d-none'); $('#socialIcons a').removeClass('d-none'); $('#teamCont').removeClass('d-none'); $('li.teamElem').removeClass('d-none'); $('#editFundBtn').prop('disabled',false); $('#submitDeckBtn, .warmBtn').removeClass('d-none'); $('#cancelChangesBtn').addClass('d-none'); $('#confirmChangesBtn').prop('disabled',true); $('#submitDeckBtn, .warmBtn').prop('disabled',false); $('#confirmChangesBtn').addClass('d-none') $('.settingsElem').addClass('d-none'); $('#fundBodx').html(originalData); initMap(); }) //CONFIRM CHANGES BTN $('#confirmChangesBtn').on('click', function (e) { document.getElementById('fundBodx').scrollTop = 0; if($('[name="Funding requirements"]').val().trim().length==0){ alert('Please specify your investment thesis in the "Funding requirements" field.'); return false; } if(typeof $('[name="Who we are"]')[0] != "undefined"){ if($('[name="Who we are"]').val().length > 350){ alert('"Who we are" field must not be more than 350 characters long'); return false; } } else if(typeof $('[name="Who I am"]')[0] != "undefined"){ if($('[name="Who I am"]').val().length > 350){ alert('"Who I am" field must not be more than 350 characters long'); return false; } } if($('[name="Value add"]').val().length > 350){ alert('"Value add" field must not be more than 350 characters long'); return false; } if($('[name="Twitter"]').val().length>0 && !$('[name="Twitter"]').val().startsWith('@')){ alert('"Twitter" handle must start with "@" (e.g. @yourFund)'); return false; } if(isRBF){ if($('[name="Funding requirements"]').val().length>0 && !$('[name="Funding requirements"]').val().startsWith('We finance')){ alert('"Funding requirements" field must start with "We finance"'); return false; } } else if(isAngel){ if($('[name="Funding requirements"]').val().length>0 && !$('[name="Funding requirements"]').val().startsWith('I invest in')){ alert('"Funding requirements" field must start with "I invest in"'); return false; } } else if(!isAccel){ if($('[name="Funding requirements"]').val().length>0 && !$('[name="Funding requirements"]').val().startsWith('We invest in')){ alert('"Funding requirements" field must start with "We invest in"'); return false; } } if($('[name="Linkedin"]').val().length>0){ if(!$('[name="Linkedin"]').val().startsWith('https://www.linkedin.com/')&&!$('[name="Linkedin"]').val().startsWith('https://linkedin.com/')){ alert('"LinkedIn" must be a valid LinkedIn URL starting with https://www.linkedin.com/ or https://linkedin.com/'); return false; } } const isValidUrl = urlString=> { try { return Boolean(new URL(urlString)); } catch(e){ return false; } } if($('[name="Website"]').val().length>0){ if(!isValidUrl($('[name="Website"]').val())){ alert('The Website URL must be a valid absolute URL e.g. https://www.openvc.app/'); return false; } } $('#changesWindow .btn-success').prop('disabled',false); $('#changesSuccess').addClass('d-none'); $('#changesSuccess').html(''); $('#changesError').addClass('d-none'); $('#changesError').html(''); $('#changesWindow').removeClass('d-none'); document.getElementById("changesWindow").scrollIntoView({ behavior: 'smooth' }); try{grecaptcha.reset()} catch{null} let theme = $('body').hasClass('darkTheme') ? 'dark' : 'light' try{ submitCaptcha2 = grecaptcha.render('recaptcha2', { 'sitekey' : '6Lf1uoQaAAAAAKxByW26frHqUiQexdOdWV9Lp3yr', 'theme' : theme, 'callback' : 'recaptchaCallback2' }); } catch{null} }); //VALIDATE CONFIRM CHANGES BTN $('#changesWindow .btn-success').on('click', function (e) { $('#changesWindow .btn-success').prop('disabled',true) $('#changesSuccess').addClass('d-none'); $('#changesSuccess').html(''); $('#changesError').addClass('d-none'); $('#changesError').html(''); let captcha = grecaptcha.getResponse( submitCaptcha2 ) if(!captcha){ $('#captchaError2').removeClass('d-none'); return; } var resp = { "Investor name" : "Peak", "id":"rec5wESMZt8QZXBiR", "Verified" : true, "First cheque minimum" : $('#editCheq').slider('getValue')[0] !== 0 ? $('#editCheq').slider('getValue')[0] : null, "First cheque maximum" : $('#editCheq').slider('getValue')[1] !== 21000000 ? $('#editCheq').slider('getValue')[1] : null, "Verification email" : $('#emailWindow input').val() }; //replacing display values by database values $('#fundBodx [name]').each(function() { let value = $(this).val(); let key = $(this).attr('name') if(isAccel && key=='Typical terms') key='Typical fee' if(isAccel && key=='Next deadline to apply') key = 'Application deadline' if(isAngel && key=='Who I am') key='Who we are' if(key=='Funding stages') key = 'Stage of investment' if(key=='Firm type') key = 'Investor type' if(key=='Funding requirements') key = 'Investment thesis' if(value!='') resp[key] = value; else resp[key] = null; }) var portElem = $('.portElem').map(function() { if($(this).find('[data-port="portfolioID"]').val() !== "0"){ return { id : $(this).find('[data-port="portfolioID"]').val() } } else{ return { url : $(this).find('[data-port="portfolioURL"]').val(), img : $(this).find('[data-port="portfolioIMG"]').val(), name : $(this).find('[data-port="portfolioName"]').val() } } }).get(); var url = "serverside/editFund.php"; $('#changesWindow .spinner-border').removeClass('d-none'); $.ajax({ type: 'post', url: url, data: {"data" : JSON.stringify(resp), "token" : captcha, "data2" : JSON.stringify(portElem)}, complete: function (data) { $('#changesSuccess').addClass('d-none'); $('#changesSuccess').html(''); $('#changesError').addClass('d-none'); $('#changesError').html(''); resp = JSON.parse(data.responseText); if(resp.response == "success"){ $('#VCmodal .modal-header').html('<button type="button" style="position:absolute;right:0.5em;top:0.5em;" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">×</span></button>'); $('#VCmodal .modal-footer').html(''); $('#VCmodal .modal-body').html('<div class="p-5 modal-body text-center"><div class="mt-4">'+resp.message+'</div></div>'); /*$('#changesSuccess').removeClass('d-none'); $('#changesSuccess').html(resp.message);*/ //GTM DL PUSH window.dataLayer = window.dataLayer || []; window.dataLayer.push({ 'event': 'edit_fund', 'name': "Peak" }); } else if(resp.response == "error"){ $('#changesError').removeClass('d-none'); $('#changesError').html(resp.message); } $('#changesWindow .spinner-border').addClass('d-none'); } }); }); initMap(); }) document.addEventListener("login_success", () => { window.location.replace(location.href); return }); </script> </html>

Pages: 1 2 3 4 5 6 7 8 9 10