Javis OS
Javis OS는 기업가를 돕는 에이전시 AI로, 업무를 지원하고 함께 성장합니다
Hacker News 'Who is hiring?' 스레드에서 찾은 기술직, 창업자·채용 담당자가 직접 검증, 중개인 없음
Tech jobs from Hacker News 'Who is hiring?' threads — verified opportunities posted by founders and hiring managers, no middlemen.
비즈니스JavaScript · CSSGitHub @victorantos온라인운영자 미확인
써 보셨어요? 한 번만 눌러 주세요. 로그인은 필요 없어요.
개인 계정의 공개 저장소 소유자는 GitHub로 로그인해 운영자를 확인하고 소개를 직접 관리할 수 있습니다. 관리자 승인은 필요하지 않습니다.
로그인한 뒤 확인 파일을 만들어 이 저장소의 기본 브랜치에 30분 안에 커밋해 주세요. 다른 브랜치나 포크의 파일은 인정하지 않습니다. 파일을 올린 뒤 아래에서 확인하면 관리자 승인 없이 관리할 수 있습니다. 자격을 유지하려면 파일을 남겨 두세요.
로그인이 필요하면 로그인 화면으로 이동합니다. 로그인 후 이곳으로 돌아와 원하는 확인 버튼을 다시 눌러 주세요.
프로젝트 폴더에서 /nomorevibe verify를 실행하면 소유권을 확인하고 소개를 직접 관리할 수 있습니다.
1분 만에 확인하기Job board for hackers
저장소 README에서 가져옴
README 전체를 불러오는 중입니다. 아래는 저장된 발췌입니다.
Jobs for hackers. Every listing from Hacker News' monthly "Ask HN: Who is hiring?" thread, turned into a fast, searchable job board — one page per job, three months live at a time.
Running since December 2014 — now in its twelfth year, and on its third engine: Angular, then VuePress, now plain.README 전문 보기 ↗Jobs for hackers. Every listing from Hacker News' monthly "Ask HN: Who is hiring?" thread, turned into a fast, searchable job board — one page per job, three months live at a time.
Running since December 2014 — now in its twelfth year, and on its third engine: Angular, then VuePress, now plain.
angjobs.com · Browse jobs · RSS · Post a job · About
AngJobs runs on plain, a Git-native CMS: this repo is the whole website. Every job is a Markdown file in content/jobs/, every setting is JSON, and node build.js turns the lot into a static site. There is no database and no CMS server to patch — one runtime dependency (marked), and the published pages work with JavaScript switched off.
It is a static site with a backend, though — two small services do the things a folder of files can't:
| Service | What it does |
|---|---|
api.victorantos.com | Receives job applications. Every job page carries an Apply form (the api-form plugin, wired through services.backend in site.config.json) that POSTs the applicant's name, email, and message, and emails it to the poster. It degrades to a plain HTML form without JavaScript. |
plain-oauth-angjobs.…workers.dev | A Cloudflare Worker handling Sign in with GitHub for the admin. Anyone with write access to this repo can open /admin/, sign in, and write a job with live preview — each save is a commit, no access token to paste. |
Everything else is generated at build time: the job pages, the month archives, a client-side search index, sitemap.xml, robots.txt, per-collection RSS, an llms.txt summary for agents, and a read-only JSON API under /api/.
Listings are files, so submitting a job is a pull request. No account beyond GitHub, no form to babysit.
Open the job template on GitHub → — the button on that page opens GitHub's editor with the frontmatter pre-filled.
Name the file <month>-<year>-<company>-<role>.md, lowercase with hyphens — e.g. september-2026-acme-senior-backend-engineer.md. The filename is the URL: that becomes angjobs.com/jobs/september-2026-acme-senior-backend-engineer/.
Fill in the frontmatter and body:
---
title: "Acme : Senior Backend Engineer : Remote (EU)"
date: 2026-09-01
description: One line about the role, used for search results and link previews.
author: your-hn-username
section: september-2026
tags:
- september-2026
---
Acme | Senior Backend Engineer | Remote (EU) | €90k–€120k
Describe the role, the stack, and how to apply.
[[form:apply]]
[[form:apply]] is what renders the Apply form on the page — keep it as the last line.
Choose "Propose changes" to open the PR. Keep the frontmatter keys above — the build validates them, so a malformed listing fails the build with a clear message instead of half-deploying.
Review — I read every PR. Once approved you get a payment link by email; after payment I merge it and the job is live within minutes.
Nothing merges itself. Opening a pull request never publishes a job. Every PR needs an explicit approving review from the repo owner (@victorantos) before it can reach main — enforced by .github/CODEOWNERS, with auto-merge disabled repo-wide. A PR from a fork also runs no workflows and touches no secrets. Treat an open PR as a submission, not a publication.
Spotted a typo or a dead listing? Same flow — edit the file, open a PR.
The monthly bulk comes from HN's "Who is hiring?" thread, pulled in by a scheduled importer that writes one Markdown file per top-level post — title, date, HN username, and a link back to the original comment.
Only the last three months of Hacker News jobs are kept. That is the whole archive policy: as a new month is imported the oldest one rotates out, so the board holds roughly 750 listings and never grows into a graveyard of expired roles. Right now that is June, July and August 2026.
Rotating out is not deleting a URL, though. When a month drops off, its job URLs are retargeted in data/redirects.json rather than left to rot, so nothing that was ever indexed starts returning a 404.
That file is the reason the VuePress → plain move cost no search traffic: it carries 1,123 redirects, every legacy .html URL flattened to a single hop.
content/jobs/ one Markdown file per job — filename is the URL
content/pages/ home, about, post-a-job
data/ navigation.json, redirects.json, promos.json, footer.json
themes/angjobs/ the theme (plain's "gazette" starter, forked into a job board)
plugins/ search, api-form (the Apply form), goatcounter
site.config.json collections, fields, plugin options, services
build.js + lib/ the plain engine — content in, dist/ out
npm install
npm run dev # → http://localhost:4000, admin at /admin/
| Command | What it does |
|---|---|
npm run build | Build the site into dist/ |
npm run dev | Build, serve on :4000, rebuild on change |
npm test | Run the test suite |
Both npm test and npm run build must pass before anything is committed — see CLAUDE.md, which is also what lets Claude Code and other agents edit this repo safely.
Push to main and .github/workflows/deploy-vps.yml builds the site and ships dist/ to a VPS behind Cloudflare. The badge at the top of this file is that workflow.
AngJobs has been free and open source for its whole twelve years — no tracking beyond a page counter, no paywall on any listing, and the entire board sitting right here as Markdown you can read, fork, or scrape.
The goal for this year is 100 GitHub stars. If the board has ever pointed you at a job, or you just like the idea of a job site that is a Git repo, give it a star — it is the whole marketing budget.
MIT. The job listings themselves are posts from Hacker News, reproduced with attribution and a link back to the original comment.