You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
55 lines
1.6 KiB
Django/Jinja
55 lines
1.6 KiB
Django/Jinja
You are working inside the gimme-job codebase. Create a complete site adapter for **{{ site_id }}**.
|
|
|
|
## Site Information
|
|
|
|
- **site_id**: `{{ site_id }}`
|
|
- **URL**: `{{ site_url }}`
|
|
|
|
## Captured Artifacts
|
|
|
|
{% if html_dump_path %}
|
|
- HTML dump: `{{ html_dump_path }}`
|
|
{% endif %}
|
|
{% if dom_snapshot_path %}
|
|
- DOM snapshot: `{{ dom_snapshot_path }}`
|
|
{% endif %}
|
|
{% if screenshot_path %}
|
|
- Screenshot: `{{ screenshot_path }}`
|
|
{% endif %}
|
|
|
|
## Global Search Defaults
|
|
|
|
```yaml
|
|
{{ global_config_yaml }}
|
|
```
|
|
|
|
## Base Adapter Interface (from gimme_job/adapters/base.py)
|
|
|
|
```python
|
|
{{ base_adapter_source }}
|
|
```
|
|
|
|
## Task
|
|
|
|
1. Read the HTML dump and/or DOM snapshot to understand the page structure.
|
|
2. Identify job card containers and field selectors.
|
|
3. Generate all 4 required files:
|
|
- `sites/{{ site_id }}.yaml`
|
|
- `gimme_job/adapters/{{ site_id }}.py`
|
|
- `tests/adapters/test_{{ site_id }}.py`
|
|
- `workspace/manifests/{{ site_id }}.learning-report.md`
|
|
4. Run `uv run pytest tests/adapters/test_{{ site_id }}.py -v` to verify.
|
|
5. If the test fails, fix the adapter and re-run once.
|
|
|
|
## Constraints
|
|
|
|
- Runtime must work WITHOUT AI.
|
|
- Use `ManifestDrivenAdapter` from `gimme_job/adapters/base.py` as the base class if the site follows standard patterns. Only subclass for custom logic.
|
|
- Register with `@register("{{ site_id }}")` from `gimme_job/adapters/registry.py`.
|
|
- Avoid `nth-child` selectors unless unavoidable.
|
|
- Prefer `aria-label`, `data-*`, semantic HTML.
|
|
- Handle zero results as `ZERO_RESULTS_EXPECTED` (not an error).
|
|
- Do NOT visit detail pages.
|
|
|
|
When done, write a brief learning report to `workspace/manifests/{{ site_id }}.learning-report.md`.
|