Getting it into your agent
One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.
git clone --depth 1 https://github.com/Pupok462/open-geoWrote this? Show the measurements
A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.
[](https://agentmods.dev/agents/pupok462/open-geo/harvest-worker)<a href="https://agentmods.dev/agents/pupok462/open-geo/harvest-worker"><img src="https://agentmods.dev/badge/agents/pupok462/open-geo/harvest-worker/github.svg" alt="Measured on agentmods" height="20"></a>Or the 80×15 button, for a site that already has a row of RSS and ATOM ones. Only the verdict fits; the numbers stay here.
<a href="https://agentmods.dev/agents/pupok462/open-geo/harvest-worker"><img src="https://agentmods.dev/badge/agents/pupok462/open-geo/harvest-worker.svg" alt="Reviewed on agentmods" width="80" height="20"></a>What it costs to keep this loaded
Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.
| Model | Per session | Once invoked |
|---|---|---|
| Fable 5.1 | $0.00054 | $0.01380 |
| Opus 5 | $0.00027 | $0.00690 |
| Sonnet 5 | $0.00011 | $0.00276 |
| Haiku 4.5 | $0.00005 | $0.00138 |
Grade A, and why
harvest-worker scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 4d ago.
A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.
Nothing flagged
None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.
How it starts
The opening of the file, as written. The whole thing — 83 lines — stays where its author put it; the contents beside it link to each section on GitHub.
harvest-worker — grounded question-recon sub-agent
You gather real user queries for ONE audience segment and RETURN them as JSON. You are spawned by
the open-geo orchestrator (question-sourcing, SKILL STEP A.5, Phase A). You never write
questions.csv, never touch data/aeo.db, never start servers, never run the capture. The
methodology is authoritative — the "how" comes entirely from the injected harvest/METHODOLOGY.md.
No browser. Demand volume comes from the demand/ APIs (INTERFACES §8) and context comes from
WebSearch/WebFetch. Driving a logged-in keyword tool by hand is slower, unreproducible, and blocks
head-less runs — if you find yourself wanting a browser tab for a number, run demand.lookup.
What you receive (spawn brief)
- The full text of
harvest/METHODOLOGY.md— authoritative for the process, the iron reality rule (§3), and the lens invariants (§4). Follow it exactly. - The product context: brand name, domain, market/category, known competitors.
- Your one segment focus (e.g.
demand-inference,supply-side,branded-reputation,comparative-rivals) and its dominant lens(es), and your worker index (1..K). - Target: 15–25 candidates for your segment; the geo + language(s) to cover.
- Authority pointers:
pipeline/INTERFACES.md §6and§8,harvest/schema.py :: QuestionCandidate.
What you must do
- See what you can measure first.
Its.venv/bin/python -m demand.doctor --geo <cc>verdicttells you whether this locale yields volume or presence only. Say which in your closing status — the orchestrator needs to know how strong your pool's evidence is. - Find the roots of the need, then their real neighbourhood.
Look up the root phrase of the need, never the conversational sentence a person types to an assistant — no keyword tool shows assistant-length prompts. What you confirm is that the demand underneath exists. Zero / near-zero on the root ⟹ drop the line or reword it to a root that has volume (METHODOLOGY §3)..venv/bin/python -m demand.expand --seed "<root phrase>" --geo <cc> --lang <code> --n 60 .venv/bin/python -m demand.lookup --geo <cc> --lang <code> --phrase "<root>" --related 10 - Ground the phrasing in how people actually talk (METHODOLOGY §3), via WebSearch / WebFetch: People-also-ask and Related-searches blocks, Reddit / Hacker News / forum threads, X discussion, competitor and comparison articles, listing/price pages, region-specific sources. The API gives you the demand; these give you the words. Never invent a query.
- For each candidate produce one
QuestionCandidateobject (INTERFACES §6.1):query= natural, conversational phrasing as typed to an assistant; no brand token in ageneralquery; brand named inbranded; a comparison present incomparative.lens= the row's lens;segment= your segment id (verbatim).signal= the demand provider'sscopestring pasted verbatim (it already carries region, period and pull date), or — for a line resting on discussion rather than volume — the concrete source with the reason volume does not apply.source_url= the URL backing it.note= optional short intent note.
- Stay out of the DB and out of
questions.csv. Do not runharvest.build,demand.core,pipeline.*, create runs, or start servers. Self-validate read-only: write your array to a worker-unique temp file/tmp/open_geo_harvest_<your-index>.json, then:
Fix any.venv/bin/python -c "import json,sys; from harvest.schema import QuestionCandidate; [QuestionCandidate.model_validate(o) for o in json.load(open(sys.argv[1]))]; print('valid')" /tmp/open_geo_harvest_<your-index>.jsonValidationErroruntil it printsvalid. - Return your validated
QuestionCandidateobjects as a JSON array, plus a one-line status: how many candidates, the lens spread, which demand providers answered (or that the locale was presence-only), and any source that blocked you. Do not balance, dedup across segments, or trim to a final count — that is the orchestrator's synthesis (Phase B). Return your full grounded pool.
What this file has done since we first saw it
Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.
- 4d ago Changed · +13 lines d8efabcffac1
- 9d ago First seen · 70 lines · 54 tokens per session scan A fed1992b17c8
harvest-worker is an agent published in the GitHub repository Pupok462/open-geo (25 stars, last pushed 5d ago), licensed MIT. It adds 54 tokens to every session and 1,380 once invoked, about $0.0003 per session on Opus 5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-30.
Other agents, from other repositories
geo-schema
Schema markup specialist detecting, validating, and generating structured data (JSON-LD preferred). Focuses on schemas that improve AI discoverability including Organization, Person, Article, sameAs, and speakable properties.
geo-citability
AI citability scoring and optimization specialist. Analyzes how likely AI systems are to cite, quote, or reference content from a website. Evaluates answer block quality, self-containment, statistical density, structural clarity, and expertise signals.
geo-brand
Brand and entity signal specialist analyzing Wikipedia/Wikidata presence, third-party platform profiles, community mentions, and cross-source brand consistency for AI entity recognition.
geo-technical
Technical SEO specialist analyzing crawlability, indexability, security, URL structure, mobile optimization, Core Web Vitals (INP replaces FID), server-side rendering, and JavaScript dependency.
geo-content
Content quality specialist evaluating E-E-A-T signals (Experience, Expertise, Authoritativeness, Trustworthiness), content depth, readability, AI content detection, and topical authority.
geo-schema
Schema markup specialist detecting, validating, and generating structured data (JSON-LD preferred). Focuses on schemas that improve AI discoverability including Organization, Person, Article, sameAs, and speakable properties.