Skip to content
autohunt
How it works

A marker instead of a form.

Autohunt reads the launch.json your agent leaves at deploy, checks it, and lists it.

Four stages

  1. 1. The agent fills it in

    Your agent reads the README, package.json, and deployed page, then fills in launch.json. It makes the thumbnail from your logo and captures real screens at 1270×760 for the gallery.

    .well-known/launch.json
    {
      "name": "Loupecast",
      "tagline": "Free, open-source Screen Studio alternative for macOS",
      "links": { "website": "https://dunzkoi.github.io/loupecast/en/" },
      "categories": ["크리에이터 도구"]
    }
  2. 2. It asks once

    It asks only for what it could not fill, in one round of at most 5 questions. Each question has a recommended default as the first choice.

    Question
    Do you have a demo video?
    1. No, make one (recommended)
    2. I have a link (paste it)
    3. Skip
  3. 3. Deploy, then ping

    The agent puts launch.json under .well-known/ in your static folder and deploys with your project's own command. Once the new file is live, it pings Autohunt with one URL.

    POST /api/ping → 202
    {
      "id": "<id>",
      "status": "queued",
      "statusUrl": "https://autohunt.flowoodz.com/status/<id>"
    }
  4. 4. Check, then list

    Every minute Autohunt takes jobs from the queue and fetches launch.json, the website, and each image itself. If they pass, a listing page appears; if not, the status page shows each reason and its fix.

    Discovery log
    14:02  loupecast  launch.json checked → listed
           autohunt.flowoodz.com/p/loupecast

What gets checked

Checked in this order. When a step fails, the later ones are skipped.

  • launch.json · It looks for .well-known/launch.json from the pinged path's folder up to the root. It must be JSON of 256 KB or less that arrives within 10 seconds; up to 3 redirects are followed, each URL checked again.

  • Fields · Required fields, text length in code points, allowed values, and date formats. Any error blocks the listing. Checks

  • Ownership · links.website must start with the base URL (the folder holding launch.json). A website or images on another origin are refused.

  • Website · links.website must return 200 with an HTML <title>.

  • Images · It fetches the thumbnail and every gallery image and reads type (PNG, JPEG, GIF, WebP), size (2 MB or less), and dimensions from the bytes. Gallery images must be within 2% of 1270:760.

  • Not a blocked domain · Domains the admin blocked cannot ping at all. Curation is by rules only; no model picks.

Timeouts, network errors, 5xx, 429, and a launch.json 404 within 15 minutes of the ping are retried after 1, 5, and 30 minutes (4 attempts in all). Other 4xx and check errors are rejected at once with reasons in Korean and English.

Pinging again

  • Pinging the same URL again creates a new crawl job for the same listing.
  • While the job runs, the listed version stays visible.
  • When the new version passes every check, its content and images replace the old ones at once, and unused old images are deleted.
  • A failed re-crawl never unlists it. The reasons stay on the status page.
  • The discovery date and the listing URL (/p/<slug>) are set at the first listing and never change.

Dates and the feed

All dates are in Korea time (KST). A listing's display date is the KST date of its first listing or its launchDate, whichever is later.

With a future launchDate, a launch that passes stays off the feed until that day. The front page shows today's display date; earlier dates follow below, one row per day.

Votes and comments

  • Visitors sign in with GitHub only to vote and comment. There is no email or password sign-up.
  • To vote, a GitHub account must be at least 7 days old with at least one public repository. This is checked once at sign-in. Anyone signed in can still comment.
  • Makers cannot vote for their own launch. You count as a maker when makers[].github matches your GitHub login.
  • Top sorts by votes received that day, then by completeness (video 3, 3+ gallery images 2, first comment 1, Korean text 1), then by earlier listing.
  • Votes cast after that day (KST) ends add to the total but not to that day's rank.
  • Comments are up to 1,000 characters with one level of replies. You can edit within 10 minutes and delete your own. Limits: 10 comments and 60 votes per hour.

What it does not do

  • Maker accounts · Makers never sign up. Ownership is proven by where launch.json lives.

  • Forms · There is no form to fill. The launch.json your agent writes is all there is.

  • Fake screens · Gallery images and demo videos come only from the real running product. No mockups, slides, or generated images.

  • Posting to Product Hunt · Product Hunt has no public submit API. Instead you get a document to paste in form order.

  • Uploading for you · The demo video is never uploaded to your account for you. You upload it and paste the link.

Esc

↑↓ move · Enter open · Esc close