{
 "schema": "aiblocks-page/1",
 "id": "agency-engineering-search-relevance-engineer",
 "type": "agent",
 "name": "Search relevance engineer agent",
 "summary": "Fix poor site search with a tested plan for Elasticsearch or OpenSearch, so each change is scored on real queries before it goes live.",
 "headline": "Search relevance engineer agent",
 "subhead": "Give it your search setup and examples of bad searches. It finds why results are missing or ranked wrong, and plans each fix so you can score it first. You get a ranked fix plan with a test list and a safe rollout.",
 "job": {
  "id": "build-software",
  "name": "Build and ship software"
 },
 "level": "intermediate",
 "thinking": "high",
 "tested": true,
 "updated": "2026-11-03",
 "first_published": "2026-10-26",
 "inputs": [
  {
   "type": "question",
   "required": true,
   "label": "Question",
   "what": "the problem, decision or piece of work you want help with, and what a good outcome looks like"
  },
  {
   "type": "codebase",
   "required": false,
   "label": "Codebase",
   "what": "a project's code, in a folder or repo the AI can open"
  }
 ],
 "outputs": [
  {
   "type": "plan",
   "required": true,
   "label": "Plan",
   "what": "a dated plan: what to do, in what order, with a decision rule for each step"
  }
 ],
 "you_give": [
  "Which search tool you use, such as Elasticsearch or OpenSearch, and its version",
  "5 to 10 searches that go wrong, with what you expected to see",
  "Your index mapping and one real search query as JSON (optional)",
  "An export of your top searches and searches with no results (optional)",
  "A few sample documents, such as product records (optional)",
  "Your speed limit, such as how many milliseconds a search may take (optional)"
 ],
 "you_get": [
  "A table that links each bad search to its likely cause and the first check to run",
  "A plan for the query list and the scores to record before you change anything",
  "Ordered fixes for missed matches, then for ranking",
  "A view on whether to add meaning-based search, with the reason",
  "A safe rollout plan, with a test run and a way to roll back",
  "Assumptions and the answers you still need from your search server"
 ],
 "use_when": [
  "Shoppers or staff search your site and get no results for words that should match.",
  "The right product exists but ranks below weaker matches.",
  "Someone asks \"can we add AI search?\" and you need to know if it will help.",
  "You changed synonyms or boosts and need a way to know if search got better or worse."
 ],
 "skip_when": [
  "You want your pages to rank higher on Google. That is website SEO, not site search. Use the Search Console quick-win finder.",
  "You want an AI to answer questions from your documents. Use the RAG pipeline implementation planner.",
  "Your database queries are slow and search is not the cause. Use the Database performance analyst."
 ],
 "output_sample": {
  "input": [
   "Your search tool and version",
   "5 to 10 searches that go wrong, with what you expected",
   "Your index mapping and a sample query (optional)",
   "Your top searches and no-result searches (optional)"
  ],
  "prerequisites": [
   "Access to your search server, to run the checks the agent lists"
  ],
  "output": [
   {
    "name": "Symptom table",
    "contains": "Each bad search with its likely cause, the first check to run and a proposed fix."
   },
   {
    "name": "Baseline to record",
    "contains": "The scores and speed numbers to note before any change, and how to get them."
   },
   {
    "name": "Query list plan",
    "contains": "How to sample common, middle and rare searches and judge their results."
   },
   {
    "name": "Fixes in order",
    "contains": "Matching fixes first, then ranking fixes, each with how to score it."
   },
   {
    "name": "Hybrid search view",
    "contains": "Where meaning-based search helps, where it does not, and how to prove it."
   },
   {
    "name": "Rollout and rollback",
    "contains": "The test run, the safe index swap and the way back."
   },
   {
    "name": "Assumptions and open questions",
    "contains": "What the agent had to guess and what to check on your server."
   }
  ]
 },
 "output_shape": "SEARCH RELEVANCE PLAN: <site or index name>\n\nSYMPTOM TABLE\n  <bad search> | <likely cause> | <first check to run> | <proposed fix>\n\nBASELINE TO RECORD\n  <metric> | <how to measure> | <current value or MISSING>\n\nQUERY LIST PLAN\n  <segment: common, middle, rare> | <how many queries> | <how to judge them>\n\nFIXES, IN ORDER\n  <step> | <change> | <how to score it> | <speed risk>\n\nHYBRID SEARCH VIEW\n  <where it helps> | <where it does not> | <how to prove it>\n\nROLLOUT AND ROLLBACK\n  <step> | <what must be true to continue>\n\nASSUMPTIONS AND OPEN QUESTIONS\n  <item> | <how to settle it>",
 "how_to_use": [
  "Download the pack from this page and add it to your AI as a skill. If you cannot, paste SKILL.md into a new chat, then references/source-agent.md.",
  "Paste your bad searches, what you expected, and your mapping and sample query if you have them.",
  "Say \"Write the relevance plan. Ask me once if anything is missing.\"",
  "Run the first checks it lists on your own search server, such as the analyze and explain tools, and paste the answers back.",
  "Build the query list and record the baseline scores before you apply any fix.",
  "Apply one fix at a time and score each. Keep a change only if the score goes up and speed stays inside your limit."
 ],
 "checks": [
  "The result addresses your actual task and cites the evidence used.",
  "Examples, role-play experience and targets are kept separate from verified results.",
  "Claims of tests, memory, tool access or completed actions match what actually happened."
 ],
 "next": [
  {
   "name": "Qdrant search relevance investigator",
   "url": "https://useaiblocks.com/skills/copilot-qdrant-search-quality",
   "why": "Qdrant search relevance investigator"
  }
 ],
 "source": {
  "by": "Michael Sitarzewski and Agency Agents contributors",
  "repo": "msitarzewski/agency-agents",
  "url": "https://github.com/msitarzewski/agency-agents/blob/b37b5bb33b78f2c1d6567d98e25ca818e3259219/engineering/engineering-search-relevance-engineer.md",
  "licence": "MIT",
  "original_name": "Search Relevance Engineer",
  "commit": "b37b5bb33b78f2c1d6567d98e25ca818e3259219"
 },
 "credits": [
  {
   "title": "Search Relevance Engineer",
   "by": "Michael Sitarzewski and Agency Agents contributors",
   "url": "https://github.com/msitarzewski/agency-agents/blob/b37b5bb33b78f2c1d6567d98e25ca818e3259219/engineering/engineering-search-relevance-engineer.md",
   "used": "Original agent profile, preserved in references/source-agent.md; AI Blocks adds setup and review instructions."
  }
 ],
 "files": [
  "LICENSE",
  "references/source-agent.md",
  "SETUP.md",
  "source.json"
 ],
 "links": {
  "page": "https://useaiblocks.com/agents/agency-engineering-search-relevance-engineer",
  "markdown": "https://useaiblocks.com/agents/agency-engineering-search-relevance-engineer.md",
  "json": "https://useaiblocks.com/agents/agency-engineering-search-relevance-engineer.json",
  "instructions": "https://useaiblocks.com/skills/agency-engineering-search-relevance-engineer/SKILL.md",
  "download": "https://useaiblocks.com/skills/agency-engineering-search-relevance-engineer.zip",
  "api_item": "https://useaiblocks.com/api/v1/items/agency-engineering-search-relevance-engineer",
  "api_document": "https://useaiblocks.com/api/v1/documents/agent/agency-engineering-search-relevance-engineer",
  "mcp": "https://useaiblocks.com/mcp"
 }
}
