Team Ai
Apppublic

booleanbeyond/jobfetch

sourceHugging Faceupdated 2mo agoView on Hugging Face
0likes
.env.example86 linesDownload Raw Back to root
1# ---------------------------------------------------------------- server2HOST=0.0.0.03PORT=80004LOG_LEVEL=INFO5# Comma-separated. Leave empty to disable CORS entirely (same-origin only).6CORS_ORIGINS=7 8# ------------------------------------------------------------------- LLM9# Tier 5 only runs when every deterministic tier returns nothing, and its10# output is verified against the page before it is returned.11LLM_ENABLED=true12 13# auto = OpenRouter when OPENROUTER_API_KEY is set, else Anthropic.14# Force with: openrouter | anthropic15LLM_PROVIDER=auto16 17# --- OpenRouter (https://openrouter.ai/keys) ---18OPENROUTER_API_KEY=19OPENROUTER_MODEL=anthropic/claude-sonnet-520OPENROUTER_BASE_URL=https://openrouter.ai/api/v121OPENROUTER_APP_NAME=JobFetch22OPENROUTER_SITE_URL=23 24# --- Anthropic direct (alternative to OpenRouter) ---25ANTHROPIC_API_KEY=26ANTHROPIC_MODEL=claude-sonnet-4-527 28LLM_MAX_INPUT_CHARS=16000029LLM_MAX_OUTPUT_TOKENS=1200030LLM_TIMEOUT_S=12031 32# --------------------------------------------------------------- browser33BROWSER_ENABLED=true34# Set when Chromium lives somewhere Playwright won't find on its own.35BROWSER_EXECUTABLE=36BROWSER_NAV_TIMEOUT_S=3537BROWSER_SETTLE_MS=120038# Concurrent Chromium contexts. Each costs ~80-150MB; size to your container.39BROWSER_MAX_CONTEXTS=240BROWSER_IDLE_SHUTDOWN_S=30041MAX_SCROLL_ROUNDS=1542MAX_LOAD_MORE_CLICKS=2043 44# ------------------------------------------------------------- budgets45# Hard ceilings per scrape. These are what stop a hostile or pathological46# site from consuming the whole service.47TOTAL_BUDGET_S=9048HTTP_TIMEOUT_S=2049HTTP_CONNECT_TIMEOUT_S=850MAX_RESPONSE_BYTES=800000051MAX_REDIRECTS=652MAX_FETCHES_PER_SCRAPE=6053FETCH_CONCURRENCY=654MAX_CONCURRENT_SCRAPES=455MAX_PAGES=3056MAX_JOBS=500057 58# ---------------------------------------------------------------- egress59# NEVER set ALLOW_PRIVATE_HOSTS=true in production: it disables the SSRF60# guard that stops user-supplied URLs reaching internal services and cloud61# metadata endpoints. It exists for local fixture servers only.62ALLOW_PRIVATE_HOSTS=false63ALLOWED_PORTS=80,44364# Connect to the validated IP with the hostname in Host/SNI, closing the65# DNS-rebinding window. Auto-disables behind an HTTP proxy.66PIN_DNS=true67BLOCKED_HOSTS=metadata.google.internal,metadata.goog,instance-data,169.254.169.25468 69# ----------------------------------------------------------- politeness70RESPECT_ROBOTS=true71ROBOTS_TIMEOUT_S=672USER_AGENT=73 74# ------------------------------------------------------------ throughput75CACHE_ENABLED=true76CACHE_TTL_S=90077CACHE_MAX_ENTRIES=25678RATE_LIMIT_PER_MIN=2079RATE_LIMIT_BURST=580 81# ----------------------------------------------------------- extraction82# Minimum score a DOM candidate must reach to be considered a job list.83# Raise it if you see false positives; lower it if boards come back empty.84DOM_MIN_SCORE=3.085DOM_MIN_ITEMS=286