feat: implement task queue statistics and add UI templates for job management and visualization.

This commit is contained in:
2026-08-15 00:00:41 -07:00
parent 5510e3ac82
commit 286278c1ec
12 changed files with 1144 additions and 644 deletions
+19 -8
View File
@@ -13,6 +13,7 @@ import (
"strings"
"time"
md "github.com/JohannesKaufmann/html-to-markdown/v2"
"github.com/hireme/hireme/internal/crawler"
"golang.org/x/net/html"
)
@@ -130,17 +131,27 @@ func (g *GoogleCrawler) FetchJobDetail(ctx context.Context, applyURL string) (*c
location = "See Job Posting"
}
// Raw content: render the <main> container HTML
var buf bytes.Buffer
// Raw content: extract <main> HTML, convert to Markdown for LLM efficiency
var rawMarkdown string
doc, parseErr := html.Parse(strings.NewReader(htmlContent))
if parseErr == nil {
if main := findElement(doc, "main"); main != nil {
_ = html.Render(&buf, main)
if mainEl := findElement(doc, "main"); mainEl != nil {
var buf bytes.Buffer
_ = html.Render(&buf, mainEl)
converted, convErr := md.ConvertString(buf.String())
if convErr == nil && len(converted) > 50 {
rawMarkdown = converted
}
}
}
if buf.Len() < 100 {
buf.Reset()
buf.WriteString(htmlContent)
if rawMarkdown == "" {
// Fallback: convert the whole page
converted, convErr := md.ConvertString(htmlContent)
if convErr == nil {
rawMarkdown = converted
} else {
rawMarkdown = htmlContent
}
}
return &crawler.ExtractedJob{
@@ -149,7 +160,7 @@ func (g *GoogleCrawler) FetchJobDetail(ctx context.Context, applyURL string) (*c
Company: company,
Location: location,
ApplyURL: applyURL,
RawContent: buf.String(),
RawContent: rawMarkdown,
}, nil
}