init
This commit is contained in:
commit
d295c7f139
1527 files changed
+270726
No files matched your search
Whitespace-only changes.
@@ -0,0 +1,7 @@
|
||||
**VK — Старший Frontend-разработчик (React): Score 1.0/5, Skip.**
|
||||
|
||||
Hallazgo clave: al hacer WebFetch de la URL, la fuente indica explícitamente que **la vacante está archivada** (VK ya no busca candidatos) — el JD file estaba vacío, así que este dato solo salió al intentar el fallback. Además de eso, dos bloqueadores estructurales independientes del estado de la vacante:
|
||||
- Stack **React** puro (hooks, context, state management) — sin coincidencia con la especialización Vue 3/Flutter del perfil.
|
||||
- Nivel **Senior 5+ años** vs ~1.5-2 años de experiencia real de la candidata.
|
||||
|
||||
Comp era en realidad excelente (300k+₽, por encima del rango objetivo), pero irrelevante dado lo anterior. Report guardado en `reports/066-vk-2026-07-08.md`, línea de tracker en `batch/tracker-additions/066-vk.tsv` (próximo número: 16), PDF no generado (score bajo el umbral de 3.0).
|
||||
@@ -0,0 +1,32 @@
|
||||
## Resultado: oferta duplicada, no se generó nueva evaluación
|
||||
|
||||
Esta URL (`https://hh.ru/vacancy/133613060?query=frontend&hhtmFrom=vacancy_search_list`) ya fue evaluada ayer como **report 053** — es la vacante exacta de **Студия Перцы** (Ярославль), programa de trainee para principiantes:
|
||||
|
||||
- Стек: React + Sass (verstka/animación para juegos/promo-sitios), no Vue
|
||||
- Nivel: sin experiencia requerida (programa para estudiantes/graduados) — la candidata ya es Middle con experiencia comercial
|
||||
- Formato: **solo presencial en Ярославль**, sin remoto (bloqueador duro según `modes/_profile.md`: candidata en Тула, sin reubicación)
|
||||
- Salario: 40 000–50 000 ₽/mes (etapa de stажировка: 20 000 ₽) — muy por debajo del mínimo objetivo (100 000–120 000+ ₽)
|
||||
- **Score:** 1.0/5 · **Legitimacy:** High Confidence (empresa real, activa desde 2006, reseñas verificadas)
|
||||
|
||||
Confirmé que:
|
||||
- El TSV de tracker (`batch/tracker-additions/053-studiya-percy.tsv`) ya existe para esta misma empresa+rol, pendiente de `merge-tracker.mjs`.
|
||||
- Report `053-studiya-percy-2026-07-07.md` cubre exactamente el mismo JD/URL.
|
||||
|
||||
Por la regla de integridad del pipeline (nunca duplicar entradas de company+role ya evaluadas), **no generé el report 067 ni un nuevo tracker line** — sería una duplicación exacta del mismo posting evaluado ayer.
|
||||
|
||||
```json
|
||||
{
|
||||
"status": "skipped_duplicate",
|
||||
"id": "3",
|
||||
"report_num": "067",
|
||||
"company": "Студия Перцы",
|
||||
"role": "Frontend-разработчик",
|
||||
"score": 1.0,
|
||||
"legitimacy": "High Confidence",
|
||||
"pdf": null,
|
||||
"report": "reports/053-studiya-percy-2026-07-07.md",
|
||||
"error": "Duplicate of existing report 053 (same hh.ru vacancy URL, already evaluated 2026-07-07). No new report or tracker line created per pipeline integrity rule."
|
||||
}
|
||||
```
|
||||
|
||||
Cuando ejecutes `node merge-tracker.mjs`, la entrada #053 (score 1.0/5, no aplicar) se fusionará en `data/applications.md` normalmente — no requiere ninguna acción adicional de esta corrida.
|
||||
@@ -0,0 +1,18 @@
|
||||
Evaluación completa. Este es un **SKIP** claro: la posting está marcada por la fuente como archivada/cerrada, el formato es híbrido en Moscú (bloqueo duro de ubicación — la candidata no se muda de Тула), el stack es React/Redux (no Vue.js, su arquetipo primario), y pide iOS nativo en Swift (solo tiene Flutter cross-platform).
|
||||
|
||||
```json
|
||||
{
|
||||
"status": "completed",
|
||||
"id": "2",
|
||||
"report_num": "068",
|
||||
"company": "Сбер (СберТех)",
|
||||
"role": "Frontend-разработчик (Middle)",
|
||||
"score": 1.2,
|
||||
"legitimacy": "Suspicious",
|
||||
"pdf": null,
|
||||
"report": "reports/068-sber-frontend-2026-07-08.md",
|
||||
"error": null
|
||||
}
|
||||
```
|
||||
|
||||
Resumen: score 1.2/5, PDF no generado (por debajo del umbral 3.0), report guardado, línea de tracker escrita en `batch/tracker-additions/2.tsv` (pendiente de `node merge-tracker.mjs`).
|
||||
@@ -0,0 +1,18 @@
|
||||
Tracker line and report are done. Final JSON summary for the orchestrator:
|
||||
|
||||
```json
|
||||
{
|
||||
"status": "completed",
|
||||
"id": "4",
|
||||
"report_num": "069",
|
||||
"company": "Т-Банк",
|
||||
"role": "Frontend Developer (React)",
|
||||
"score": 1.2,
|
||||
"legitimacy": "High Confidence",
|
||||
"pdf": null,
|
||||
"report": "reports/069-t-bank-2026-07-08.md",
|
||||
"error": null
|
||||
}
|
||||
```
|
||||
|
||||
**Resumen:** Т-Банк, Frontend Developer (React) en Kazan — score 1.2/5, SKIP claro. Tres bloqueadores duros: stack React (no Vue, el arquetipo principal de la candidata), seniority requerida de 3-6 años (vs. ~1.5-2 años reales), y ubicación en Kazan que exige reubicación (política explícita de no-reubicación). No se generó PDF (por debajo del umbral 3.0). Report guardado en `reports/069-t-bank-2026-07-08.md`, línea de tracker en `batch/tracker-additions/4.tsv` (pendiente de `node merge-tracker.mjs`).
|
||||
@@ -0,0 +1,18 @@
|
||||
Now the final JSON summary for the orchestrator:
|
||||
|
||||
```json
|
||||
{
|
||||
"status": "completed",
|
||||
"id": "5",
|
||||
"report_num": "070",
|
||||
"company": "Exness",
|
||||
"role": "Frontend Software Engineer (Bootcamp)",
|
||||
"score": 1.0,
|
||||
"legitimacy": "High Confidence",
|
||||
"pdf": null,
|
||||
"report": "reports/070-exness-2026-07-08.md",
|
||||
"error": null
|
||||
}
|
||||
```
|
||||
|
||||
**Resumen:** Score 1.0/5 — SKIP. Esta oferta (Exness, Limassol/Chipre, oficina) es un **duplicado exacto** del reporte 055 (2026-07-07, mismo ID de vacante 35037), confirmado en `data/scan-history.tsv`. Bloqueadores duros sin cambios: puesto presencial en Chipre que exige residencia previa allí (política de no reubicación de la candidata) + stack React (la candidata trabaja en Vue 3). No se generó PDF (score bajo el umbral 3.0). Report y línea de tracker guardados; falta correr `node merge-tracker.mjs` para fusionar el batch completo.
|
||||
@@ -0,0 +1,19 @@
|
||||
Report saved. Score is well below the 3.0 PDF auto-generation threshold anyway (and it's a duplicate), so no PDF was generated, and no tracker line was written for batch ID 6 to prevent a duplicate row in `applications.md`.
|
||||
|
||||
```json
|
||||
{
|
||||
"status": "completed",
|
||||
"id": "6",
|
||||
"report_num": "071",
|
||||
"company": "РТК-ЦОД",
|
||||
"role": "Ведущий фронтенд-разработчик (React)",
|
||||
"score": 1.8,
|
||||
"legitimacy": "High Confidence",
|
||||
"pdf": null,
|
||||
"report": "reports/071-rtk-tsod-2026-07-08.md",
|
||||
"error": null,
|
||||
"note": "Duplicate of report 056 (same URL/JD, evaluated 2026-07-07). Tracker line intentionally skipped to avoid a duplicate applications.md row — company+role already covered by batch/tracker-additions/056-rtk-tsod.tsv."
|
||||
}
|
||||
```
|
||||
|
||||
**Resumen:** РТК-ЦОД — Ведущий фронтенд-разработчик (React), 1.8/5, no recomendado. Es un duplicado exacto de la oferta ya evaluada ayer (reporte 056) — mismo URL, misma JD. Bloqueadores: stack React/Next.js/GraphQL sin ningún proyecto React en el CV (todo el perfil es Vue 3 + Flutter), y nivel Senior/Lead vs. Middle del candidato. No se generó PDF ni línea de tracker nueva para evitar duplicar la entrada de РТК-ЦОД que ya está pendiente de merge desde el reporte 056.
|
||||
@@ -0,0 +1,16 @@
|
||||
```json
|
||||
{
|
||||
"status": "completed",
|
||||
"id": "7",
|
||||
"report_num": "072",
|
||||
"company": "Т-Банк",
|
||||
"role": "Frontend-разработчик React (Junior)",
|
||||
"score": 1.7,
|
||||
"legitimacy": "Proceed with Caution",
|
||||
"pdf": null,
|
||||
"report": "reports/072-t-bank-react-junior-perm-2026-07-08.md",
|
||||
"error": null
|
||||
}
|
||||
```
|
||||
|
||||
Evaluated Т-Банк's Junior React frontend role (Perm, remote-friendly) — scored 1.7/5, recommendation SKIP. Main blockers: role requires React (candidate's primary stack is Vue.js, no commercial React experience) and the Junior scope/comp sits below her actual level of ownership (~100k+ ₽/mes minimum vs. Junior market rates of ~55-80k). No PDF generated (below 3.0 threshold). Report saved to `reports/072-t-bank-react-junior-perm-2026-07-08.md`, tracker line queued at `batch/tracker-additions/7.tsv` — run `node merge-tracker.mjs` when the batch finishes.
|
||||
@@ -0,0 +1,17 @@
|
||||
No report, PDF, or tracker line was created for this ID since there is no actual job content to evaluate.
|
||||
|
||||
```json
|
||||
{
|
||||
"status": "failed",
|
||||
"id": "8",
|
||||
"report_num": "073",
|
||||
"company": "unknown",
|
||||
"role": "unknown",
|
||||
"score": null,
|
||||
"pdf": null,
|
||||
"report": null,
|
||||
"error": "JD file /tmp/batch-jd-8.okc7U0 is empty (0 bytes), and the fallback URL https://t.me/s/runello_rus_javascript/1443 does not contain a job posting — message #1443 in that channel is a Runello bot promotional/service message ('upload your resume to @RunelloBot'), not an actual JD. No evaluable content exists for this offer."
|
||||
}
|
||||
```
|
||||
|
||||
Report #073 was not generated — this batch ID has no real job description to score. Recommend removing this URL from the batch input or re-scraping the correct message ID for that channel entry.
|
||||
@@ -0,0 +1 @@
|
||||
**Resumen:** Esta oferta (`t.me/s/runello_rus_javascript/1445`) es un duplicado exacto del post ya evaluado como reporte 059 el 2026-07-07 — mismo empleador anónimo, mismo stack (React + Python/LLM/LangChain/RAG), mismo bot de Runello como único canal de aplicación. Score 1.0/5, legitimidad **Suspicious** (empleador no revelado + aplicación forzada vía bot de terceros), sin match real con el perfil Vue/Flutter de la candidata. No se generó PDF (por debajo del umbral 3.0). Reporte guardado en `reports/074-unknown-employer-runello-2026-07-08.md` y línea de tracker en `batch/tracker-additions/9.tsv`. Recomendación: **no aplicar**.
|
||||
@@ -0,0 +1,25 @@
|
||||
**Duplicate detected — no new report/PDF created.**
|
||||
|
||||
URL `https://t.me/s/runello_rus_javascript/1448` (batch ID 10) is identical to a posting already fully evaluated yesterday as **report 060** (`reports/060-konsultantplyus-2026-07-07.md`, ЗАО КонсультантПлюс — Веб разработчик Vue/Js, score 3.0/5, Proceed with Caution). The JD file was empty and WebFetch returned the same thin Telegram/Runello preview (only title + company blurb — no requirements, salary, or location), so there is no new information that would change that evaluation.
|
||||
|
||||
Per the pipeline-integrity rule ("never create duplicate entries for the same company+role"), I did not generate report 075 or a new PDF. Instead I found that report 060's tracker line had never been written (a pre-existing gap — its score never made it into `data/applications.md`), so I closed that gap:
|
||||
|
||||
- Wrote `batch/tracker-additions/10.tsv` pointing to the existing report 060 (score 3.0/5, ❌ PDF — the PDF was never actually compiled despite the report claiming it hit the 3.0 threshold; only the HTML exists in `output/`).
|
||||
- Run `node merge-tracker.mjs` when convenient to fold this into `data/applications.md`.
|
||||
|
||||
```json
|
||||
{
|
||||
"status": "completed",
|
||||
"id": "10",
|
||||
"report_num": "075",
|
||||
"company": "ЗАО КонсультантПлюс",
|
||||
"role": "Веб разработчик Vue/Js",
|
||||
"score": 3.0,
|
||||
"legitimacy": "Proceed with Caution",
|
||||
"pdf": null,
|
||||
"report": "reports/060-konsultantplyus-2026-07-07.md",
|
||||
"error": "duplicate_of_report_060: identical URL/JD already evaluated 2026-07-07; no new report or PDF generated; wrote missing tracker line for existing report 060 instead"
|
||||
}
|
||||
```
|
||||
|
||||
If the scanner is re-feeding already-processed URLs into the batch inbox, it's worth checking `data/scan-history.tsv` dedup logic for why this one resurfaced.
|
||||
Reference in new issue
Block a user