Coding agent documentation index Fetch the complete documentation index at: https://docs.worklittle.com/docs-agent-manifest.json Use this file to discover all available pages before exploring further.
Prompting for job search
System prompt patterns for search assistants: mapping vague user language onto real filters, controlling search frequency, and presenting results a user can act on.
Most bad search agents share one root cause. They put user phrasing straight into the query string instead of translating it into filters.
Translate language into filters
The single highest-leverage instruction is that natural language must be decomposed, not forwarded.
| User says | Goes into | | --- | --- | | "recent", "this week", "new" | `posted_within_days`, never the query | | "remote", "hybrid", "in office" | `workplace_type` | | "not senior", "no lead roles" | Negative title tokens such as `-Senior`, `-Lead` | | "at Stripe" | `company` slug (`stripe`) | | "don't show Lucid", "no car companies" | `company` with leading-dash slugs (`-lucid-motors` or `-lucid-motors,-tesla,-ford`) | | "in Austin" | `location` | | "entry level", "staff" | `seniority_level` | | "part time", "contract" | `employment_type` | | The actual role | `q` or `title` |
Search matches title and filter text. Dumping a whole sentence into q still hurts results. A query of "new remote senior data jobs in Austin" matches title text literally for words like "new", and returns worse results than the decomposed version.
Prompt block for filter mapping
Turn the user's request into structured filters before searching.
- Role or title text goes in query. Nothing else does.
- Recency: today = 1, this week = 7, "new" or "recent" = 14. Use
posted_within_days. Never put time words in the query.
- Title exclusions use a leading dash in the title field, for example
"product manager, -senior, -director". A dash exclusion for -Senior also
removes Sr. and Sr titles.
- Employer exclusions use a leading dash in company, for example
"-lucid-motors,-tesla". Do not put employer names in title negatives.
- Location, company, workplace_type, employment_type, and seniority_level
are separate parameters. Use them.
- Default limit is 10. Only go higher if the user explicitly wants a long list.
If role, location, or seniority is genuinely ambiguous, ask one short
clarifying question before searching. Do not ask more than one.
Control how often it searches
Re-searching on every turn burns quota and creates a coherence problem at the same time.
Search discipline
- Search once per distinct user intent, not once per message.
- If the user is asking about results you already have, answer from those
results. Do not search again.
- If the user wants refinement, change filters and search once more.
- Do not fetch the next page unless the user asks for more results.
- Do not call search to check whether something exists. Use the market
overview tool for counts and availability questions, it is free.
Pair this with a hard cap in code. The prompt gets you good behavior most of the time; the cap protects the bill the rest of the time. See Retries and spend.
Presenting results
Presenting results
- Show at most 5 roles unless asked for more.
- For each: title, company, location, and one sentence on why it matches
what the user asked for.
- Only mention salary if a salary field was present in the data.
- Say "not listed" for anything missing. Never estimate.
- Mention that a role can be applied to automatically only when the job's
can_apply field is true.
- Do not describe requirements in detail from a search result alone. Fetch
the job details first.
That last rule matters more than it looks. List rows are snippets. An assistant that confidently lists "requirements" from a search row is fabricating structure that the snippet never contained. See Structured extraction.
Pitfalls
| Pitfall | Symptom | | --- | --- | | Passing the raw sentence as `q` | Poor, literal matches | | Time words in the query | Zero or nonsense results | | Searching on every turn | Cost spikes and inconsistent lists | | Summarizing requirements from a list row | Confident, invented detail | | Raising `limit` when results feel thin | Better filters fix this, bigger pages do not | | Claiming a role is remote based on the title | Read `workplace_type` |
Related docs
Job search assistant, Search jobs, Grounding, Pagination and limits.