<!doctype html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <!-- Google tag (gtag.js) - deferred until idle to keep off the critical path -->
    <script>
      window.dataLayer = window.dataLayer || [];
      function gtag(){dataLayer.push(arguments);}
      function loadGA(){
        if (window.__gaLoaded) return;
        window.__gaLoaded = true;
        var s = document.createElement('script');
        s.async = true;
        s.src = 'https://www.googletagmanager.com/gtag/js?id=G-HV8YPL7P6E';
        document.head.appendChild(s);
        gtag('js', new Date());
        gtag('config', 'G-HV8YPL7P6E');
      }
      if ('requestIdleCallback' in window) {
        requestIdleCallback(loadGA, { timeout: 4000 });
      } else {
        window.addEventListener('load', function(){ setTimeout(loadGA, 1500); });
      }
    </script>

    <!-- Preconnect / dns-prefetch for performance (LCP, INP) -->
    <link rel="preconnect" href="https://fonts.googleapis.com">
    <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
    <link rel="preconnect" href="https://www.googletagmanager.com">
    <link rel="preconnect" href="https://assets.calendly.com">
    <link rel="dns-prefetch" href="https://lunaprompts.com">
    <link rel="dns-prefetch" href="https://calendly.com">
    <link rel="dns-prefetch" href="https://api.lunaprompts.com">

    <!-- Non-blocking font loading (was CSS @import - caused 1800ms mobile render-block).
         Note: do NOT preload a specific gstatic .woff2 by URL here - Google rotates the
         file hashes, which 404s the preload and wastes the request. The stylesheet below
         handles Inter loading with display=swap. -->
    <link
      rel="preload"
      as="style"
      href="https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&family=JetBrains+Mono:wght@400;500;600&display=swap"
      onload="this.onload=null;this.rel='stylesheet'">
    <noscript>
      <link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&family=JetBrains+Mono:wght@400;500;600&display=swap">
    </noscript>

    <!-- AI-search hints -->
    <link rel="alternate" type="text/markdown" href="/llms.txt" title="LLM-friendly site description">
    <link rel="alternate" type="text/markdown" href="/llms-full.txt" title="Full LLM-friendly content">

    <!-- Feed auto-discovery (Perplexity polls RSS every 1-6 hours; Google Discover + Feedly + agent crawlers) -->
    <link rel="alternate" type="application/rss+xml" href="/rss.xml" title="LunaPrompts RSS">
    <link rel="alternate" type="application/feed+json" href="/feed.json" title="LunaPrompts JSON Feed">

    <!-- Agent / AI plugin discovery -->
    <link rel="alternate" type="application/json" href="/.well-known/ai-plugin.json" title="AI plugin manifest">

    <!-- Identity / verified founder (IndieAuth, Mastodon, etc.) -->
    <link rel="me" href="https://twitter.com/LunaPrompts">
    <link rel="me" href="https://github.com/luna-prompts">

    <!-- Favicon -->
    <link rel="icon" type="image/svg+xml" href="/luna-logo.svg" />
    <link rel="apple-touch-icon" href="/luna-logo.svg">
    <link rel="manifest" href="/manifest.json">
    
    <!-- Primary Meta Tags -->
    <meta name="viewport" content="width=device-width, initial-scale=1.0, viewport-fit=cover" />
    <title>LunaPrompts · Hire AI engineers who actually ship</title>
    <meta name="title" content="LunaPrompts · Hire AI engineers who actually ship">
    <meta data-rh="true" name="description" content="LunaPrompts is the AI-native technical screen for hiring AI engineers. Test prompts, agents, RAG, real Python projects, SQL, and system design in a sandbox. Founder-led pilots, 1,000+ engineers screened.">
    <meta name="keywords" content="LunaPrompts, Luna Prompts, Luna Prompts Enterprise, LunaPrompts Enterprise, AI engineer hiring, AI native technical assessment, prompt engineering interview, RAG engineer hiring, agent engineer test, LLM engineer screening, AI engineer assessment platform, hire AI engineers, technical screen AI, hire prompt engineer, hire RAG engineer, AI engineering interview, GenAI hiring, applied AI hiring, HackerRank alternative, CodeSignal alternative, Codility alternative, AI coding interview, sandbox coding interview, founder-led pilot, candidate scorecard, multi-file Python sandbox, Judge0, DuckDB SQL interview, FaceMesh proctoring, anti-cheat coding interview, AI assessment, technical assessment 2026">
    <meta name="author" content="LunaPrompts">
    <meta name="publisher" content="LunaPrompts">
    <meta data-rh="true" name="robots" content="index, follow, max-image-preview:large, max-snippet:-1">
    <meta name="googlebot" content="index, follow">
    <link data-rh="true" rel="canonical" href="https://lunaprompts.com/">
    <link rel="alternate" hreflang="en" href="https://lunaprompts.com/">
    <link rel="alternate" hreflang="x-default" href="https://lunaprompts.com/">
    <meta name="last-modified" content="2026-05-03">

    <!-- Theme Color -->
    <meta name="theme-color" content="#FFFFFF">

    <!-- SSR fallback: visible to AI crawlers / JS-disabled clients, hidden from sighted users via CSS.
         Same content as the React app, not cloaking, just fallback. React replaces #root on hydration. -->
    <style>
      .ssr-fallback{position:absolute;left:-9999px;top:-9999px;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);clip-path:inset(50%);white-space:normal;border:0;padding:0;margin:0;}
    </style>
    <meta name="msapplication-TileColor" content="#FFFFFF">

    <!-- Open Graph / Facebook -->
    <meta data-rh="true" property="og:type" content="website">
    <meta data-rh="true" property="og:url" content="https://lunaprompts.com/">
    <meta property="og:site_name" content="LunaPrompts">
    <meta data-rh="true" property="og:title" content="Hire AI engineers who actually ship.">
    <meta data-rh="true" property="og:description" content="LunaPrompts is the AI-native technical screen. Test prompts, agents, and RAG. Not algorithm puzzles. Founder-led pilots.">
    <meta data-rh="true" property="og:image" content="https://lunaprompts.com/og-image.png">
    <meta property="og:image:width" content="1200">
    <meta property="og:image:height" content="630">
    <meta property="og:image:alt" content="LunaPrompts: Hire AI engineers who actually ship">
    <meta property="og:locale" content="en_US">

    <!-- Twitter -->
    <meta name="twitter:card" content="summary_large_image">
    <meta name="twitter:site" content="@LunaPrompts">
    <meta name="twitter:creator" content="@LunaPrompts">
    <meta name="twitter:url" content="https://lunaprompts.com/">
    <meta name="twitter:title" content="Hire AI engineers who actually ship.">
    <meta name="twitter:description" content="AI-native tests for prompts, agents, and RAG. Not algorithm puzzles.">
    <meta name="twitter:image" content="https://lunaprompts.com/og-image.png">
    <meta name="twitter:image:alt" content="LunaPrompts: Hire AI engineers who actually ship">

    <!-- Structured Data / JSON-LD - Organization (site-wide, entity anchor for AI search) -->
    <script type="application/ld+json">
    {
      "@context": "https://schema.org",
      "@type": "Organization",
      "@id": "https://lunaprompts.com/#organization",
      "name": "LunaPrompts",
      "alternateName": ["Luna Prompts", "Luna Prompts Enterprise", "LunaPrompts Enterprise", "Luna"],
      "url": "https://lunaprompts.com",
      "logo": {
        "@type": "ImageObject",
        "url": "https://lunaprompts.com/og-image.png",
        "width": 1200,
        "height": 630
      },
      "image": "https://lunaprompts.com/og-image.png",
      "description": "LunaPrompts is the AI-native technical screen for hiring AI engineers. Tests prompts, agents, RAG, real Python projects, SQL, and system design with built-in proctoring and auto-grading.",
      "slogan": "Hire AI engineers who actually ship.",
      "email": "contact@lunaprompts.com",
      "areaServed": "Worldwide",
      "knowsAbout": [
        "AI engineering hiring",
        "Technical assessments for AI engineers",
        "Prompt engineering interviews",
        "Retrieval-augmented generation (RAG) evaluation",
        "AI agent code interviews",
        "LLM engineer hiring",
        "Multi-file Python sandbox assessments",
        "AI-native technical screens",
        "Proctored coding interviews",
        "Founder-led pilots for technical assessment",
        "AI candidate scorecard",
        "Hiring assessments that allow AI use",
        "HackerRank alternative for AI hiring",
        "CodeSignal alternative for AI hiring"
      ],
      "knowsLanguage": ["en"],
      "sameAs": [
        "https://twitter.com/LunaPrompts",
        "https://discord.gg/SPDhHy9Qhy",
        "https://github.com/luna-prompts"
      ],
      "contactPoint": {
        "@type": "ContactPoint",
        "contactType": "sales",
        "email": "contact@lunaprompts.com",
        "url": "https://calendly.com/contact-lunaprompts/luna-prompts-20-min-intro",
        "availableLanguage": "en"
      },
      "makesOffer": {
        "@type": "Offer",
        "name": "LunaPrompts Enterprise: AI-native technical screen",
        "url": "https://lunaprompts.com/",
        "category": "Technical assessment software",
        "businessFunction": "https://schema.org/Sell"
      },
      "publishingPrinciples": "https://lunaprompts.com/privacy",
      "termsOfService": "https://lunaprompts.com/terms"
    }
    </script>

    <!-- Structured Data / JSON-LD - WebSite with sitelinks search -->
    <script type="application/ld+json">
    {
      "@context": "https://schema.org",
      "@type": "WebSite",
      "@id": "https://lunaprompts.com/#website",
      "url": "https://lunaprompts.com/",
      "name": "LunaPrompts",
      "alternateName": ["Luna Prompts", "LunaPrompts Enterprise", "Luna Prompts Enterprise"],
      "description": "AI-native technical screen for hiring AI engineers.",
      "inLanguage": "en-US",
      "publisher": { "@id": "https://lunaprompts.com/#organization" },
      "potentialAction": {
        "@type": "SearchAction",
        "target": "https://lunaprompts.com/challenges?q={search_term_string}",
        "query-input": "required name=search_term_string"
      }
    }
    </script>

    <!-- Structured Data / JSON-LD - Person (founder entity for AI citation) -->
    <script type="application/ld+json">
    {
      "@context": "https://schema.org",
      "@type": "Person",
      "@id": "https://lunaprompts.com/#founder",
      "jobTitle": "Founder",
      "worksFor": { "@id": "https://lunaprompts.com/#organization" },
      "url": "https://lunaprompts.com/",
      "email": "contact@lunaprompts.com",
      "knowsAbout": [
        "AI engineering hiring",
        "Prompt engineering",
        "Retrieval-augmented generation",
        "AI agent code interviews",
        "Technical assessment design"
      ]
    }
    </script>

    <!-- Structured Data / JSON-LD - Service (the actual offering) -->
    <script type="application/ld+json">
    {
      "@context": "https://schema.org",
      "@type": "Service",
      "@id": "https://lunaprompts.com/#service",
      "name": "AI-native technical screen for hiring AI engineers",
      "serviceType": "Technical Assessment Platform",
      "provider": { "@id": "https://lunaprompts.com/#organization" },
      "areaServed": "Worldwide",
      "audience": {
        "@type": "BusinessAudience",
        "audienceType": "CTOs, VPs of Engineering, Heads of Talent, AI engineering leaders"
      },
      "category": "Hiring assessment software",
      "description": "AI-native assessments covering prompt engineering, multi-file Python agents, RAG, SQL, system design, algorithms, and MCQ. Real sandbox, in-browser proctoring, async auto-grading.",
      "offers": {
        "@type": "Offer",
        "url": "https://calendly.com/contact-lunaprompts/luna-prompts-20-min-intro",
        "availability": "https://schema.org/InStock",
        "priceSpecification": {
          "@type": "PriceSpecification",
          "description": "Pilot first, no commitment. Subscriptions include unlimited tests and authorized team seats, with no per-test or per-seat charge."
        }
      },
      "hasOfferCatalog": {
        "@type": "OfferCatalog",
        "name": "Assessment types",
        "itemListElement": [
          { "@type": "Offer", "itemOffered": { "@type": "Service", "name": "Prompt engineering challenges" } },
          { "@type": "Offer", "itemOffered": { "@type": "Service", "name": "Agent code (multi-file Python)" } },
          { "@type": "Offer", "itemOffered": { "@type": "Service", "name": "RAG retrieval challenges" } },
          { "@type": "Offer", "itemOffered": { "@type": "Service", "name": "Algorithm challenges" } },
          { "@type": "Offer", "itemOffered": { "@type": "Service", "name": "SQL on DuckDB" } },
          { "@type": "Offer", "itemOffered": { "@type": "Service", "name": "System design" } },
          { "@type": "Offer", "itemOffered": { "@type": "Service", "name": "Multiple choice" } }
        ]
      }
    }
    </script>
    <script type="module" crossorigin src="/assets/index-CAvc9iot.js"></script>
    <link rel="modulepreload" crossorigin href="/assets/react-vendor-Hw19jkNh.js">
    <link rel="modulepreload" crossorigin href="/assets/supabase-JF4vL5ky.js">
    <link rel="modulepreload" crossorigin href="/assets/motion-CwZLFu9Y.js">
    <link rel="modulepreload" crossorigin href="/assets/analytics-DQZFRQjk.js">
    <link rel="modulepreload" crossorigin href="/assets/charts-BlVkuUcn.js">
    <link rel="stylesheet" crossorigin href="/assets/index-DVM2qOZB.css">
  </head>
  <body>
    <!-- Prevent flash of wrong theme by forcing the site to light mode immediately -->
    <script>
      (function() {
        try {
          localStorage.setItem('luna-theme', 'light');
        } catch (error) {}

        document.documentElement.classList.remove('dark');
        document.documentElement.classList.add('light');
        document.documentElement.setAttribute('data-theme', 'light');
      })();
    </script>
    <div id="root">
      <!--
        SEO + AI-crawler fallback. Replaced by React on hydration.
        AI agent crawlers (GPTBot, ClaudeBot, PerplexityBot, etc.) often skip JS execution;
        this block ensures the core marketing content + FAQ Q&A is readable without JS.
      -->
      <main role="main" data-ssr-fallback class="ssr-fallback" itemscope itemtype="https://schema.org/WebPage">
        <header itemscope itemtype="https://schema.org/Organization">
          <meta itemprop="name" content="LunaPrompts">
          <meta itemprop="url" content="https://lunaprompts.com/">
          <meta itemprop="logo" content="https://lunaprompts.com/og-image.png">
          <h1 itemprop="slogan">Hire AI engineers who actually ship.</h1>
          <p itemprop="description">LunaPrompts is the AI-native technical screen. AI-native tests for prompts, agents, and RAG. Not algorithm puzzles. Founder-led pilots. <span itemprop="numberOfEmployees">1,000+ engineers screened</span>.</p>
          <p>
            <a href="https://calendly.com/contact-lunaprompts/luna-prompts-20-min-intro" rel="nofollow" itemprop="url">Book a 20-minute founder-led demo</a>
            ·
            <a href="/challenges">Try a sample assessment</a>
          </p>
        </header>

        <section aria-labelledby="why">
          <h2 id="why">When AI solves the test in 5 seconds, you stop testing the test.</h2>
          <p>71% of hiring leaders say AI is making technical skills harder to assess. The legacy assessment stack (HackerRank, CodeSignal, Codility) was built for 2018 SWE hiring. LunaPrompts is the rebuild: prompt engineering, agent code, and RAG are first-class assessment types with their own grading pipelines.</p>
        </section>

        <section aria-labelledby="what-we-test">
          <h2 id="what-we-test">What LunaPrompts tests</h2>
          <ul>
            <li><strong>Prompt engineering:</strong> iterate against test cases with model picker (gpt-5.1, gpt-4.1, kimi-k2, llama-3.2, gemini-2.5-flash) and full hyperparameter control (temperature, top_p, max_tokens, frequency and presence penalty).</li>
            <li><strong>Agent code:</strong> multi-file Python projects in real Judge0 sandbox with tool-call loops and .env files.</li>
            <li><strong>Algorithms:</strong> 9 languages with public + hidden tests.</li>
            <li><strong>SQL:</strong> in-memory DuckDB on real datasets.</li>
            <li><strong>System design:</strong> visual canvas, rubric-graded.</li>
            <li><strong>Multiple choice:</strong> fast top-of-funnel filter.</li>
          </ul>
        </section>

        <section aria-labelledby="ai-stance">
          <h2 id="ai-stance">AI isn't a tool we allow. It's the test itself.</h2>
          <p>Every challenge puts an LLM in the candidate's hands. They prompt, iterate, pick models, debug. We grade the craft, not the final answer. Anti-cheat is for impersonation, not AI tool use.</p>
        </section>

        <section aria-labelledby="pilot">
          <h2 id="pilot">How a pilot works</h2>
          <ol>
            <li><strong>Day 0: Pick a role.</strong> Send one open AI engineering req. Custom challenge mix assembled within 24 hours.</li>
            <li><strong>Days 1–7: Run candidates.</strong> 10 to 30 invites by CSV or one-by-one. Browser-based, auto-graded, with built-in proctoring (FaceMesh, fullscreen, tab-switch, clipboard, devtools blocking).</li>
            <li><strong>Day 7: 20-minute readout.</strong> Walk the scorecards together, side-by-side with your current screen.</li>
          </ol>
          <p>No procurement cycle. No platform commitment. <a href="https://calendly.com/contact-lunaprompts/luna-prompts-20-min-intro" rel="nofollow">Book a pilot call</a>.</p>
        </section>

        <section aria-labelledby="faq">
          <h2 id="faq">Frequently asked questions</h2>
          <article>
            <h3>How is LunaPrompts different from HackerRank or CodeSignal?</h3>
            <p>HackerRank and CodeSignal bolt AI questions on top of 2018 software engineering assessments. LunaPrompts rebuilt the whole thing AI-native: prompt engineering, agent code, and RAG are first-class assessment types with their own grading pipelines.</p>
          </article>
          <article>
            <h3>Can candidates use ChatGPT during the test?</h3>
            <p>Yes. LunaPrompts hands candidates a model picker and hyperparameter controls inside the assessment. We grade iteration, judgment, and final signal, not whether they avoided AI.</p>
          </article>
          <article>
            <h3>Can we run LunaPrompts alongside our current screen?</h3>
            <p>Yes. Most pilots run LunaPrompts in parallel with your existing assessment platform so you can compare signal directly. No integration is required to start.</p>
          </article>
          <article>
            <h3>How do you prevent impersonation and outsourcing?</h3>
            <p>In-browser MediaPipe FaceMesh face detection, fullscreen enforcement, tab-switch detection, clipboard and devtools blocking, with auto-submit on configurable warning thresholds.</p>
          </article>
          <article>
            <h3>Does LunaPrompts integrate with ATS like Greenhouse, Lever, Ashby, or have SAML SSO?</h3>
            <p>Greenhouse has a documented LunaPrompts assessment workflow, and Ashby has an assessment integration. Confirm the enabled workflow for your account and discuss other enterprise requirements with the team.</p>
          </article>
          <article>
            <h3>How does LunaPrompts pricing work?</h3>
            <p>Pilot first with no commitment, typically one role and 10 to 30 candidates. Subscriptions include unlimited tests and authorized team seats, with no per-test or per-seat charge. Confirm the features and scoped services for your plan.</p>
          </article>
        </section>

        <footer>
          <p>LunaPrompts · The technical screen for AI engineers · <a href="mailto:contact@lunaprompts.com">contact@lunaprompts.com</a> · <a href="/community">For developers</a> · <a href="/privacy">Privacy</a> · <a href="/terms">Terms</a></p>
        </footer>
      </main>
      <noscript>
        <div style="background:#0A0A0B;color:#fff;padding:48px 24px;font-family:Inter,sans-serif;text-align:center;min-height:100vh;">
          <h1 style="font-size:32px;font-weight:600;margin:0 0 16px;">Hire AI engineers who actually ship.</h1>
          <p style="font-size:16px;color:#9ca3af;max-width:480px;margin:0 auto 32px;">LunaPrompts is the AI-native technical screen. JavaScript is required for the full experience.</p>
          <a href="https://calendly.com/contact-lunaprompts/luna-prompts-20-min-intro" style="display:inline-block;background:white;color:black;padding:14px 28px;border-radius:8px;font-weight:600;text-decoration:none;">Book a 20-min demo</a>
        </div>
      </noscript>
    </div>
  </body>
</html>
