[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"project-75064":3},{"id":4,"name":5,"fullName":6,"owner":7,"repo":5,"description":8,"homepage":9,"htmlUrl":10,"language":11,"languages":10,"totalLinesOfCode":10,"stars":12,"forks":13,"watchers":14,"openIssues":15,"contributorsCount":16,"subscribersCount":16,"size":16,"stars1d":17,"stars7d":18,"stars30d":19,"stars90d":16,"forks30d":16,"starsTrendScore":20,"compositeScore":21,"rankGlobal":10,"rankLanguage":10,"license":10,"archived":22,"fork":22,"defaultBranch":23,"hasWiki":24,"hasPages":22,"topics":25,"createdAt":10,"pushedAt":10,"updatedAt":26,"readmeContent":27,"aiSummary":28,"trendingCount":16,"starSnapshotCount":16,"syncStatus":29,"lastSyncTime":30,"discoverSource":31},75064,"jobs","karpathy\u002Fjobs","karpathy","A research tool for visually exploring Bureau of Labor Statistics Occupational Outlook Handbook data. This is not a report, a paper, or a serious economic publication — it is a development tool for exploring BLS data visually.","",null,"HTML",1827,358,17,8,0,15,40,167,45,20.67,false,"master",true,[],"2026-06-12 02:03:32","# US Job Market Visualizer\n\nA research tool for visually exploring Bureau of Labor Statistics [Occupational Outlook Handbook](https:\u002F\u002Fwww.bls.gov\u002Fooh\u002F) data. This is not a report, a paper, or a serious economic publication — it is a development tool for exploring BLS data visually.\n\n**Live demo: [karpathy.ai\u002Fjobs](https:\u002F\u002Fkarpathy.ai\u002Fjobs\u002F)**\n\n## What's here\n\nThe BLS OOH covers **342 occupations** spanning every sector of the US economy, with detailed data on job duties, work environment, education requirements, pay, and employment projections. We scraped all of it and built an interactive treemap visualization where each rectangle's **area** is proportional to total employment and **color** shows the selected metric — toggle between BLS projected growth outlook, median pay, education requirements, and AI exposure.\n\n## LLM-powered coloring\n\nThe repo includes scrapers, parsers, and a pipeline for writing custom LLM prompts to score and color occupations by any criteria. You write a prompt, the LLM scores each occupation, and the treemap colors accordingly. The \"Digital AI Exposure\" layer is one example — it estimates how much current AI (which is primarily digital) will reshape each occupation. But you could write a different prompt for any question — e.g. exposure to humanoid robotics, offshoring risk, climate impact — and re-run the pipeline to get a different coloring. See `score.py` for the prompt and scoring pipeline.\n\n**What \"AI Exposure\" is NOT:**\n- It does **not** predict that a job will disappear. Software developers score 9\u002F10 because AI is transforming their work — but demand for software could easily *grow* as each developer becomes more productive.\n- It does **not** account for demand elasticity, latent demand, regulatory barriers, or social preferences for human workers.\n- The scores are rough LLM estimates (Gemini Flash via OpenRouter), not rigorous predictions. Many high-exposure jobs will be reshaped, not replaced.\n\n## Data pipeline\n\n1. **Scrape** (`scrape.py`) — Playwright (non-headless, BLS blocks bots) downloads raw HTML for all 342 occupation pages into `html\u002F`.\n2. **Parse** (`parse_detail.py`, `process.py`) — BeautifulSoup converts raw HTML into clean Markdown files in `pages\u002F`.\n3. **Tabulate** (`make_csv.py`) — Extracts structured fields (pay, education, job count, growth outlook, SOC code) into `occupations.csv`.\n4. **Score** (`score.py`) — Sends each occupation's Markdown description to an LLM with a scoring rubric. Each occupation gets an AI Exposure score from 0-10 with a rationale. Results saved to `scores.json`. Fork this to write your own prompts.\n5. **Build site data** (`build_site_data.py`) — Merges CSV stats and AI exposure scores into a compact `site\u002Fdata.json` for the frontend.\n6. **Website** (`site\u002Findex.html`) — Interactive treemap visualization with four color layers: BLS Outlook, Median Pay, Education, and Digital AI Exposure.\n\n## Key files\n\n| File | Description |\n|------|-------------|\n| `occupations.json` | Master list of 342 occupations with title, URL, category, slug |\n| `occupations.csv` | Summary stats: pay, education, job count, growth projections |\n| `scores.json` | AI exposure scores (0-10) with rationales for all 342 occupations |\n| `prompt.md` | All data in a single file, designed to be pasted into an LLM for analysis |\n| `html\u002F` | Raw HTML pages from BLS (source of truth, ~40MB) |\n| `pages\u002F` | Clean Markdown versions of each occupation page |\n| `site\u002F` | Static website (treemap visualization) |\n\n## LLM prompt\n\n[`prompt.md`](prompt.md) packages all the data — aggregate statistics, tier breakdowns, exposure by pay\u002Feducation, BLS growth projections, and all 342 occupations with their scores and rationales — into a single file (~45K tokens) designed to be pasted into an LLM. This lets you have a data-grounded conversation about AI's impact on the job market without needing to run any code. Regenerate it with `uv run python make_prompt.py`.\n\n## Setup\n\n```\nuv sync\nuv run playwright install chromium\n```\n\nRequires an OpenRouter API key in `.env`:\n```\nOPENROUTER_API_KEY=your_key_here\n```\n\n## Usage\n\n```bash\n# Scrape BLS pages (only needed once, results are cached in html\u002F)\nuv run python scrape.py\n\n# Generate Markdown from HTML\nuv run python process.py\n\n# Generate CSV summary\nuv run python make_csv.py\n\n# Score AI exposure (uses OpenRouter API)\nuv run python score.py\n\n# Build website data\nuv run python build_site_data.py\n\n# Serve the site locally\ncd site && python -m http.server 8000\n```\n","karpathy\u002Fjobs 是一个用于可视化探索美国劳工统计局职业展望手册数据的研究工具。该项目通过构建交互式树状图，让用户能够直观地查看342种职业的数据，包括就业总数、薪资中位数、教育要求以及AI影响程度等关键指标。技术上，项目使用HTML进行前端展示，并结合Playwright进行网页抓取、BeautifulSoup解析内容及大型语言模型（LLM）评估职业特性。适合研究人员、政策制定者或对美国劳动力市场感兴趣的个人用来分析不同职业的发展趋势和潜在变化。",2,"2026-06-11 03:52:09","high_star"]