Skip to content

Commit 9597f65

Browse files
committed
hn-new-jobs project in progress
1 parent e3c621c commit 9597f65

File tree

2 files changed

+28
-4
lines changed

2 files changed

+28
-4
lines changed

src/components/Footer.astro

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ import { limitString, trimHttpProtocol } from '@/utils/strings';
1010
1111
const { SITE_URL, AUTHOR_LINKEDIN, AUTHOR_GITHUB, REPO_URL } = CONFIG_CLIENT;
1212
const domain = trimHttpProtocol(SITE_URL);
13-
const messageLength = 20 as const;
13+
const messageLength = 15 as const;
1414
1515
const { time, fullHash, message } = getLatestCommitInfo();
1616

src/content/project/2024/12-09-hackernews-new-jobs/index.mdx

Lines changed: 27 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -17,16 +17,40 @@ import HackerNewsNewJobsImage from '../../../../content/project/2024/12-09-hacke
1717

1818
## Overview
1919

20-
Amet tempor ut incididunt in fugiat nisi aute pariatur adipisicing ipsum eiusmod laborum id. Cillum est nostrud eu incididunt magna nisi eiusmod eiusmod duis. Sint id ipsum occaecat laborum eiusmod nisi id veniam cillum in ullamco culpa minim ut. Aliqua aliquip ad nostrud incididunt dolore aliqua ullamco laboris excepteur esse veniam. Sunt aliquip enim eiusmod ea exercitation dolor aliqua esse elit ex non. Proident proident sit laborum ipsum.
20+
Job ads aggregator for the HackerNews "Who’s Hiring" threads with focus on fresh and recurring job opportunities.
21+
22+
## Goals
23+
24+
Evaluate the potential of the idea and the level of interest for a website of this type. Build MVP quickly.
2125

2226
## Tech stack
2327

2428
- Next.js, ShadcnUI, TailwindCSS
2529
- SQLite, better-sqlite3
2630
- Keyv, Keyv LRU, node-cron, Docker
2731

32+
## Features
33+
34+
- Group companies into 3 categories: 1. First time, 2. New, 3. Old
35+
- Visualize data with graphs
36+
- Link and sort ads chronologically
37+
- Search company posting history
38+
- Automate parsing with cron jobs
39+
- Improve performance with caching and server side rendering
40+
- Deploy with Docker
41+
42+
## Implementation details
43+
44+
## Lessons learned
45+
46+
- Idea and project got most attention on HackerNews because the public is already profiled and familiar with "Who’s Hiring" threads.
47+
- HackerNews is very strict with scraping their pages, best to use alternative data sources.
48+
- Keyv cache instance is available only within the original Next.js app process, and `cache.clear()` call from the cron script that runs in a separate Node.js process does not have any effect. Solved by detecting database change and clearing cache in the original Next.js app. Cache that runs as a standalone process like Redis would also work.
49+
- It is not possible to run cron in Docker as non-root user, so it is best to use Node.js or Go package for scheduling tasks inside Docker.
50+
2851
## Links
2952

30-
- Demo: <Link href="https://hackernews-new-jobs.arm1.nemanjamitic.com" variant="link-markdown" target="_blank" title="HackerNews new jobs demo" />
31-
- Repository: <Link href="https://github.com/nemanjam/hn-new-jobs" variant="link-markdown" target="_blank" title="HackerNews new jobs repository" />
53+
**HackerNews ShowHN thread:** <Link href="https://news.ycombinator.com/item?id=42373936" variant="link-markdown" target="_blank" title="HackerNews ShowHN thread" />
54+
**Demo:** <Link href="https://hackernews-new-jobs.arm1.nemanjamitic.com" variant="link-markdown" target="_blank" title="HackerNews new jobs demo" />
55+
**Repository:** <Link href="https://github.com/nemanjam/hn-new-jobs" variant="link-markdown" target="_blank" title="HackerNews new jobs repository" />
3256

0 commit comments

Comments
 (0)