An Antique Attribution Pipeline with Scavio
An unusual r/Antiques thread surfaced a generalizable attribution pattern. Same pipeline applies to watches, art, books, wine, any niche attribution domain.
A surprising thread on r/Antiques in April 2026 described a homebrew pipeline for attributing unsigned antique pieces (furniture, ceramics, silverware) by feeding close-up photos and visible stylistic cues into an LLM plus a live auction-record search. The pattern is unusual but generalizable: any niche attribution workflow needs the same two ingredients, an LLM for reasoning and a fresh public-data search for comparables.
Why This Matters Beyond Antiques
The same pipeline applies to:
- Vintage watch authentication (comparing serial number patterns)
- Art and print identification (matching to auction records)
- Rare book attribution (binding styles, typeface comparison)
- Wine provenance (label variations, vintage data)
Every niche attribution domain follows the same shape: visual features + text description + live comparables database. The LLM does the reasoning; Scavio feeds the comparables.
The Three-Stage Pipeline
- Describe: LLM processes photos and outputs a structured description (style, materials, maker marks, era estimate)
- Search: Scavio queries Google SERP and eBay-like sources for comparable pieces matching the description
- Attribute: LLM compares the piece to returned comparables and outputs a ranked attribution with confidence scores
The Search Layer
Antique attribution needs breadth, not depth. A single Google SERP query like "Georgian silver teapot hallmark 1820"pulls the best comparables across auction houses and collector forums. Scavio's Reddit search also captures collector discussion threads where niche attribution knowledge lives.
async function findComparables(description: {
style: string; materials: string; era: string; marks?: string;
}) {
const query = [
description.style,
description.materials,
description.marks,
description.era,
'attribution OR hallmark OR maker'
].filter(Boolean).join(' ');
const [serp, reddit] = await Promise.all([
fetch('https://api.scavio.dev/api/v1/search', {
method: 'POST',
headers: {
'x-api-key': process.env.SCAVIO_API_KEY!,
'content-type': 'application/json'
},
body: JSON.stringify({ query })
}).then(r => r.json()),
fetch('https://api.scavio.dev/api/v1/search', {
method: 'POST',
headers: {
'x-api-key': process.env.SCAVIO_API_KEY!,
'content-type': 'application/json'
},
body: JSON.stringify({ platform: 'reddit', query })
}).then(r => r.json())
]);
return {
auctions: serp.organic_results?.slice(0, 10) || [],
collector_threads: reddit.organic_results?.slice(0, 5) || []
};
}The Attribution Prompt
Prompt design matters more here than in most agent workflows because attribution is inherently uncertain. The prompt has to extract confidence honestly.
You are an expert appraiser analyzing an unsigned antique piece.
Piece description: {{description}}
Comparable pieces from auction records: {{auctions}}
Discussion in collector forums: {{reddit_threads}}
Task: identify the most likely maker and period with a confidence score (low/medium/high).
Rules:
- If fewer than 3 strong comparables exist, cap confidence at medium.
- Cite specific features that match or fail to match comparables.
- If unsure between two candidates, return both with separate confidence scores.
- Never invent a maker; say "unattributed" if signals are weak.Why This Pattern Generalizes
Every attribution domain has the same three stages: structured visual or textual description, live comparables search, and LLM reasoning over the two. The bottleneck in 2026 is almost always the comparables search, because domain-specific databases are expensive and fragmented. Using general SERP + Reddit coverage via Scavio sidesteps the per-domain database problem for most niches.
The same pipeline can be retargeted at vintage watches by swapping the prompt and the query template. The plumbing does not change.
Cost Economics
Two Scavio calls per attribution (~60 credits, ~$0.003). LLM tokens dominate at ~$0.03-0.05 per piece if you use Claude Opus for reasoning quality. Total: under $0.10 per attempted attribution, which is comfortable for hobbyist collectors and a rounding error for professional appraisers.
The pipeline template is adaptable to any attribution niche. The generic version lives in the one-SERP-API solution since the pattern applies far beyond antiques. Swap the prompt and the query template for your domain.