
Closed
Posted
Paid on delivery
# Data Engineer / Web Scraping Specialist — Luxury Asset Price Index (Watches, Handbags, Prints) — 10-Year Historical Dataset + Ongoing Pipeline ## Overview I run a luxury-asset price index project. I need help sourcing **transaction-level historical price data** across **three independent categories**: Few exemples : 1. **Watches** — Rolex, Patek Philippe, Audemars Piguet, Omega, Cartier, Vacheron Constantin, Richard Mille, etc. 2. **Handbags** — Hermès (Birkin / Kelly), Chanel (Classic Flap), Louis Vuitton, Dior, etc. 3. **Prints / editions** — Picasso, Warhol, Chagall, Miró, Basquiat, Hockney, Banksy, etc. Each category is a **separate dataset** feeding a separate database table. I also need a **system that keeps pulling new completed sales automatically** going forward. This is a data-quality-critical project. The single most important rule is below — please read it before applying. --- ## #1 RULE — completed transactions ONLY (non-negotiable) Every row must be a **confirmed, completed sale** (hammer price paid / transaction closed). **Exclude:** active/current listings, asking prices, estimates without a realized result, unsold/withdrawn/passed/"bought-in" lots, and upcoming auction lots. If a source mixes sold and unsold items, **you filter to sold-only before delivery.** I will not accept raw scraped listings for me to filter myself. *(One narrow exception for handbag resale platforms — see the note under section B.)* --- ## Deliverable 1 — Historical dataset (2016–2026), one-time Each category maps directly to one of our database tables — **please use these exact field names** so your delivery can be imported with no remapping. **Currency — important:** always deliver each sale in its **original transaction currency** and do **not** pre-convert to EUR/USD/etc. Provide `sale_price` + `currency` as sold. We handle all FX conversion on our side. ### A. Watches → table `auction_results` | Column | Description | Status | |---|---|---| | source | Platform/auction house name (e.g. "Christie's", "Chrono24") | Mandatory | | auction_house | Same as source if it's an auction; leave empty for resale platforms | If applicable | | brand | e.g. Rolex, Patek Philippe | Mandatory | | model | e.g. Daytona, Nautilus | Mandatory | | reference | Exact factory reference, full raw string, never abbreviated (e.g. `116500LN`, `5711/1A-010`) | **Mandatory — our #1 matching key** | | sale_price | Realized / hammer price | Mandatory | | currency | Original transaction currency — do not pre-convert (see note above) | Mandatory | | auction_date | Exact sale date | Mandatory | | source_link | Direct link to the specific lot/listing | Mandatory | | condition | As stated by source | If available | | case_material | Steel, gold, platinum, two-tone… | If available | | case_size_mm | Case diameter | If available | | box_and_papers | Full set / watch only / papers only | Nice to have (not yet in our schema — we'll add the column if you can supply it) | | year_of_production | Manufacture year, distinct from sale date | Nice to have (same as above) | | dial_color | — | Nice to have (same as above) | > **`brand` + `reference` are how we match a sale to our index basket** (prefix-match on the reference string). A wrong or truncated reference silently drops the row from the index — it matters more than the price itself. ### B. Handbags → table `bag_prices` | Column | Description | Status | |---|---|---| | source | Platform/auction house name | Mandatory | | auction_house | Leave empty for resale platforms (Fashionphile, Rebag, etc.) | If applicable | | brand | Hermès, Chanel, Louis Vuitton, Dior… | Mandatory | | model | Must contain the recognizable model name as a substring, e.g. "Birkin 30", "Classic Flap" | **Mandatory — our matching key** | | size | e.g. Birkin 25/30/35, Kelly 28 | If available | | sale_price | Realized price | Mandatory | | currency | Original transaction currency — do not pre-convert | Mandatory | | snapshot_date | Exact date of the sale (or, for resale marketplaces, the date the listing/price was recorded) | Mandatory | | source_link | Direct link to the item | Mandatory | | condition | As stated by source | If available | | material | Togo, Epsom, caviar, canvas… | If available | | full_name | Full listing title, as a fallback description | If available | | color, hardware, box_and_authenticity, year_or_datestamp | — | Nice to have (not yet in our schema — flag if consistently available and we'll add columns) | > **Note on resale marketplaces (Fashionphile, Rebag, Collector Square, etc.):** if the platform doesn't publish a "sold" archive, the **current listed price of a specific, already-authenticated, uniquely identified item** is acceptable — that's how we currently treat Collector Square. What's **not** acceptable is a generic "starting from" or aggregated price. If the platform has an actual completed-sales feed (Vestiaire Collective "sold", The RealReal), prefer that. ### C. Prints / editions → table `art_prices` | Column | Description | Status | |---|---|---| | source | Auction house name | Mandatory | | artist_name | Full recognizable name (e.g. "Pablo Picasso") | **Mandatory — our matching key** | | artwork_title | Title of the work/edition | Mandatory | | sale_price + currency | Realized price in original currency — do not pre-convert (we store this as `sold_price_eur` after conversion, but you deliver raw `sale_price` + `currency`) | Mandatory | | is_sold | Should always be True in your delivery — see Rule #1 | Mandatory | | sale_date | Exact auction date | Mandatory | | url | Direct link to the lot | Mandatory | | lot_number, sale_title, sale_id | Auction lot reference info | If available | | technique | Lithograph, screenprint, etching, giclée… | If available | | edition | e.g. `12/100`, or "AP" (artist's proof) | If available | | signed | e.g. "Signed", "Unsigned", "Stamp" (free text, not just True/False) | If available | | dimensions | Sheet / image size | If available | | year_created | Year the work/edition was created | If available | | image_url | — | Nice to have | | condition, provenance | — | Nice to have | --- ## Deliverable 2 — Ongoing extraction system A maintainable pipeline (Python preferred, to fit our existing stack) that periodically pulls **newly completed sales** from the same sources and appends them to the correct table, **without creating duplicates**. Ideally runnable on a schedule. Clean, documented, handover-friendly code. *You may quote for Deliverable 1 only, or both — tell me in your proposal.* --- ## Where to look (examples, not exhaustive) **Auction houses (highest quality — public "prices realized" archives, all 3 categories):** Christie's, Sotheby's, Phillips (watches: Bacs & Russo), Bonhams, Antiquorum (watches), Artcurial, Drouot. - **Watches — resale / secondary:** Chrono24, WatchBox, Bob's Watches, Crown & Caliber, WatchFinder, eBay "sold" filter. Aggregators: WatchCharts, Subdial. - **Handbags — resale (see the section B note on what counts):** Fashionphile, Rebag, Collector Square, The RealReal, Vestiaire Collective (sold), plus auction "Handbags & Accessories" departments. - **Prints — auction results only:** the auction houses above (Prints & Multiples departments); aggregators like Artnet, MutualArt, Artprice may offer paid historical result databases. If any aggregator offers a **paid historical sold-price API or dataset**, **flag it** with the cost — I may buy access instead of scraping. ## Data quality standards - One row = one unique, verifiable transaction (no duplicates). - Every row traceable to its **exact source URL** (`source_link` / `url`) — I need to audit any row. - Reference numbers (watches) and model names (bags) in raw format, never truncated — they are the matching keys. - Deliver original currency, never pre-converted. - 10-year coverage as continuous as sources allow — **flag any gaps**. - Structured output only (CSV / Excel / JSON). No PDFs or screenshots. ## Skills I'm looking for - Python web scraping (requests / BeautifulSoup / Playwright or similar), handling JS-rendered pages and embedded JSON. - Structured data cleaning and de-duplication. - Bonus: familiarity with Supabase / PostgreSQL, and with luxury / auction data. ## Before you start — confirm back to me 1. Which sources you'll use per category, and expected row count / coverage per source. 2. Whether any source needs a paid API / subscription (I'll decide buy vs. scrape). 3. Your timeline and delivery approach (incremental vs. one batch). ## How to apply In your proposal, please include: - A one-line answer to: *how do you make sure only completed/sold transactions are captured?* - One example of a similar scraping / data project you've done. - Your quote for **Deliverable 1**, and separately for **Deliverable 2** if you want it. Proposals that ignore the #1 rule or the "confirm back to me" points will not be considered.
Project ID: 40595956
133 proposals
Remote project
Active 16 hours ago
Set your budget and timeframe
Get paid for your work
Outline your proposal
It's free to sign up and bid on jobs
133 freelancers are bidding on average $194 USD for this job

Hi there, I’ve carefully reviewed your project and understand you need a high-quality historical luxury asset dataset built exclusively from verified completed transactions, along with an optional automated pipeline that continuously captures new sales. I’m confident I can deliver a structured, audit-ready solution that prioritizes data accuracy, traceability, and long-term maintainability. My approach is to build separate extraction pipelines for watches, handbags, and prints using Python (Playwright, BeautifulSoup, and Requests where appropriate). Every record will be validated to ensure it represents a completed sale by targeting realized-price archives or sold-only datasets, excluding active listings, estimates, withdrawn lots, and unsold items. I'll preserve original currencies, normalize fields to match your schema, deduplicate records, retain direct source URLs, and flag any coverage gaps or paid data sources that may improve completeness. For the ongoing pipeline, I'll implement scheduled incremental scraping with duplicate detection, logging, and documentation for seamless integration into your PostgreSQL environment. Could you share your preferred delivery method, incremental datasets by category or a single consolidated delivery after all three datasets are completed? I'm ready to start immediately. Warm Regards, Aneesa.
$100 USD in 2 days
6.8
6.8

Yes, sir, I’m happy to help you. If you hire me. I will do an excellent output. I will provide sample initial for your approval. Thank you so much. Let me know.
$200 USD in 7 days
6.9
6.9

Hi! I have strong experience in Python web scraping, data extraction, ETL pipelines, PostgreSQL, and structured data cleaning. I can build a reliable luxury asset data pipeline that captures only verified completed transactions, validates sources, removes duplicates, and delivers clean CSV/JSON datasets matching your exact database schema. For sold-only validation, I will use official auction realized-price archives, completed-sale records, and verified sold feeds while filtering out active listings, estimates, withdrawn lots, and unsold results. I can handle sources using requests, BeautifulSoup, Playwright, and API integrations where available, with a maintainable Python pipeline for future automated extraction and scheduled database updates. I’ll provide clear documentation, source traceability, and a scalable approach for adding new categories or platforms. I’m ready to discuss target sources, expected data volume, and a phased delivery plan.
$30 USD in 1 day
7.2
7.2

Hi, I have been working on python,Django,Scraping,Algorithm, APIs,Machine Learning and Scraping projects for the 9 years now .I assure you that I am good fit person for this job so please message me here for further discussion & give me chance to work with you . Looking forward to an early and positive response. Regards Shalu
$130 USD in 7 days
6.8
6.8

Hi there! Project is very clear to me and I can build structured historical datasets from completed transactions only, create automated scraping pipelines, handle data validation, deduplication, and deliver clean import-ready files with source URLs and auditability. Just message me I am ready to start now and i will show you few data sample before start. Thank you.
$51 USD in 1 day
6.8
6.8

Hello! I have 15+ years of experience in Python/PHP web scraping and large-scale data extraction. I can collect completed sales only, clean and deduplicate the data, and build an automated Python pipeline for ongoing updates. I'll also advise which sources require paid access versus scraping. Estimate: Historical dataset $1,000–2,000. Ongoing pipeline $300–800. 2–3 weeks.
$500 USD in 7 days
6.3
6.3

Hi, I can build reliable scrapers that strictly filter for completed sales by validating transaction pages (auction results, sold listings, or item-specific posts with timestamps) before extraction. For a similar project, I once scraped 10 years of watch auction data from Christie’s and Phillips, where the main challenge was handling inconsistent sale confirmation markers across platforms—initially I missed a few "passed" lots, so I added a post-processing step to cross-check sale IDs and dates. I’d approach this using Python with Playwright for JS-heavy sites and Scrapy for stable sources, keeping the pipeline modular to avoid duplicates from API changes or listing retakes. Each source’s output will be validated against your field requirements before merging, and the code will include logging for traceability. To reduce risk, I’ll deliver cleaned CSVs per your schema with source links for auditing, and provide a simple Supabase-compatible import script. This keeps the data quality high and the handover smooth. The goal is a maintainable system that scales with new sources while ensuring every row is a verifiable completed sale, reducing your manual review time. If we’re aligned, I can start right now. Thanks, Denis
$150 USD in 2 days
6.0
6.0

Hi, I understand the challenge of building a clean, transaction-level dataset across watches, handbags, and prints, with a strict 'completed sale' rule and precise provenance. Operational realities demand source-credible archives, dedup logic, and a pull pipeline that surfaces fresh, verifiable data. I’ve delivered Python-based scrapers and ETLs for price-indexing or catalog-aggregation projects with strict schema mapping. I’d begin by validating live data from top sources, then implement per-category producers that emit rows into the tables you defined, with a solid de-dup approach and per-transaction source links. Validation would include cross-source reconciliation and random sampling against source URLs before rollout. One technical risk / challenge: Source access limits or conflicting sale statuses could require adaptive retry and reconciliation. What should happen if a sale is later canceled or reclassified after initial posting? What are the exact sources you want prioritized per category, and are paid APIs allowed? If we're aligned, I can outline the implementation phases before kickoff. Best regards, Brandon
$100 USD in 1 day
6.0
6.0

Hi, The completed-sales rule is the whole job, so I'll answer it first: for auction houses I pull only rows from the "prices realized" archives where a hammer result exists, and for resale platforms I scrape the sold/archive feed only, filtering out active listings, estimates, and bought-in lots before delivery. Collector Square style current-price-of-a-unique-item is the one exception I'd treat as you described. I've done this kind of structured extraction work, handling JS-rendered pages and embedded JSON, then de-duplicating into Postgres. I've delivered API and data extraction contracts here, and our team ships Python pipelines on Supabase and Postgres. One question: for watches, do you want the raw `reference` string kept exactly even when a source appends words like "Full Set"? I can quote Deliverable 1 and 2 separately once you confirm sources per category. Adil
$154 USD in 7 days
6.1
6.1

Hello, dear... I checked your project details carefully. I have rich experienced in Web Scraping, expecially bypassing various CAPTCHA and DataDome protection. I have full experience to develop python code for extracting the specific data from web site with python, HTML, CSS and JavaScript. I am sure for your project and i can complete your project perfectly on time and with high quality. Please send me your message to discuss more about your project. I am waiting your reply now. Thanks.
$140 USD in 7 days
6.0
6.0

Hello There! I’m Md Toriqul Islam, and I’m excited to partner with you. I can dive into your project immediately. I have rich experience in Python web scraping, data engineering, ETL pipelines, Playwright, BeautifulSoup, and PostgreSQL with over 10 years of experience. I understand your #1 requirement is capturing only verified completed/sold transactions with full source traceability and matching keys. I’ll build separate datasets for watches, handbags, and prints, validate each row against realized-sale records, preserve original currencies, remove duplicates, and develop a documented Python pipeline for ongoing incremental updates. Completed-sales rule: I capture only records explicitly marked as sold/realized (or authenticated resale records where applicable), excluding active listings, estimates, passed lots, and unsold items. I am skilled in Python, Playwright, BeautifulSoup, Scrapy, PostgreSQL, Supabase, REST APIs, and automated ETL pipelines. I’m ready to discuss the data sources, expected coverage, paid API options, timeline, and provide separate quotes for both the historical dataset and the ongoing extraction pipeline. Looking forward to hearing from you. Best regards, Md Toriqul Islam
$80 USD in 3 days
5.5
5.5

As an experienced and reliable data engineer and web scraping specialist, I am confident I can provide the exact deliverables you're seeking for your luxury-asset price index project. I understand the criticality of this project's data quality and your #1 rule to only include completed transactions. With a keen eye for detail and proficiency in Python, my web scraping procedures can meticulously filter and compile the sold-only listings from diverse platforms. Ensuring seamless integration, I will structure and deliver the historical dataset for each category (watches, handbags, and prints) with the required field names, including source, brand, sale_price, currency, auction_date, source_link, etc. Maintaining the transaction's% history fully intact at your end, I will provide each sale in its original currency without pre-conversion. Moreover, complementing my technical expertise with robust problem-solving skills developed over 20+ years in PHP-based development. This means that beyond just sourcing the base data efficiently and accurately , I can also adeptly address any future expansion or stability concerns regarding WooCommerce/Laravel databases should those arise during our collaboration. Pricing luxury assets involves complex relationships between elements such as condition, year of production, materials used among others.
$98 USD in 5 days
5.6
5.6

Hi, I reviewed the project and the main requirement is to collect completed, transaction-level price data across Watches, Handbags, and Prints, building a historical dataset (2016-2026) with ongoing updates. I will implement a maintainable Python pipeline using BeautifulSoup for scraping, enforce a Sold-only rule, and store results in dedicated tables (auction_results, bag_prices, art_prices) with original currency and source links. The approach includes deduplication, data quality checks, and a scheduling mechanism for new completed sales, plus clear documentation. I’ll rely on Data Extraction and Database Management skills to keep the data clean and query-friendly. You’ll get a robust, responsive workflow, with clean code and easy handover; Let’s discuss here now.
$150 USD in 7 days
5.6
5.6

Hi, I am a Python developer with 8 years of rich experience in software development. I am familiar with Python, SQL, PostgreSQL, BeautifulSoup, Playwright, web scraping, data extraction, data processing, database management, and ETL pipeline development. I understand that the highest priority is collecting **completed transactions only**, with every record traceable to its original source URL. I can build a reliable extraction pipeline that validates sold transactions, removes duplicates, preserves the original currency and matching keys, and delivers clean datasets together with an automated update pipeline for newly completed sales. I'm an individual freelancer and can work on any time zone you want. Please contact me with the best time for you to have a quick chat. Looking forward to discussing more details. Thanks. Emile.
$250 USD in 7 days
5.6
5.6

Hello, I work with Python scraping, SQL cleaning, and PostgreSQL imports for traceable datasets with exact source URLs. On a similar project, I collected auction result data, removed duplicates, and stored normalized sold-price records for audit. Only completed sales will be captured by using sold archives, realized price fields, and excluding unsold, withdrawn, estimates, and active listings. I would start with Christie's, Sotheby's, Phillips, Bonhams, Chrono24 sold signals, Vestiaire sold, and main handbag resale sources, then flag paid APIs like Artnet or Artprice. Deliverable 1 can be delivered incrementally by category, with coverage gaps and row counts reported per source. Deliverable 2 can be a scheduled Python pipeline with Database Management checks, deduplication, and clean append logic. Best regards, Teo
$200 USD in 2 days
5.3
5.3

Hi There I just read your project details regarding the Project: Luxury Asset Price Extraction & Database Management Can we do a quick chat right now so that we can discuss the project briefly? I have 10 years of experience in PHP, WordPress, Woocommerce, Cake Php, Codeigniter, Magento, Shopify, Laravel, Adobe Photoshop, Adobe Illustrator, CorelDRAW, Bootstrap, HTML, CSS, Angular, Javascript, jQuery, and My SQL. I appreciate Muhammad Rizwan Atif
$100 USD in 2 days
5.5
5.5

I read the project description and I'm quoting for both deliverables I read the description very well and I'm sure that I can do this I'm expertise in python and I can finish within 24 hours from now on Kindly send me a message we'll discuss further Really looking forward to hearing from you Thank you Relevant scraping projects: https://www.freelancer.in/projects/beautifulsoup/Maritime-Job-Board-Scraping https://www.freelancer.in/projects/beautifulsoup/Python-Meetup-Events-Scraper
$500 USD in 2 days
5.3
5.3

Got your requirements, especially the #1 rule: completed/sold transactions only. I will verify every record from the source and exclude unsold, withdrawn, estimated, active, and upcoming listings. I have experience with Python scraping, Playwright, structured data extraction, cleaning, deduplication, and automated pipelines. I can deliver the three datasets with exact source URLs, original currencies, accurate watch references/model names, and an ongoing automated extraction system. I will first confirm the best sources, coverage/row estimates, paid API options, and delivery timeline before starting. Thanks!! Parminder
$800 USD in 7 days
5.4
5.4

Hi, I like this project. It's not really "web scraping"—it's building Bloomberg for people with exceptionally expensive taste. ? My answer to Rule #1: > Every record must come from sold/result endpoints, auction "prices realized" archives, or explicitly marked completed transactions, with a source URL attached before it ever reaches the database. I'd recommend checking paid datasets (WatchCharts, Artnet, Artprice) first. Sometimes paying a few hundred dollars is cheaper than fighting anti-bot protections for weeks. For Deliverable 1, I'd provide incremental datasets (Watches → Handbags → Prints) in CSV/JSON with gap reports and deduplication. For Deliverable 2, I'd build a Python pipeline (Playwright + BeautifulSoup), scheduled jobs, PostgreSQL/Supabase support, duplicate prevention, logging, and documentation. I also recommend separate source adapters—because websites have a habit of redesigning themselves at 2 AM and pretending nothing happened. I've built large scraping systems, data pipelines, and automation platforms before, and one rule always wins: Bad data is worse than no data. I'd rather deliver 100,000 verified transactions than a million "probably sold" records. Best, Rawan
$150 USD in 3 days
5.2
5.2

Hello, I have thoroughly reviewed the Luxury Asset Price Extraction & Database Management project requirements, specifically focusing on the need for sourcing transaction-level historical price data for luxury watches, handbags, and prints. I understand the critical importance of providing only completed sales data for each category, excluding active listings and unsold items. For your project, my plan is to first utilize Python web scraping tools such as BeautifulSoup and Playwright to extract historical price data from reputable sources like Christie's, Sotheby's, and Chrono24. I will then structure the data into separate database tables for watches, handbags, and prints, ensuring each row includes essential details like brand, model, sale price, currency, and source link. This structured approach will facilitate easy importation and analysis of the data. As final deliverables, you will receive a comprehensive historical dataset spanning from 2016 to 2026 for each category, as well as a maintainable Python pipeline for ongoing extraction of newly completed sales. One thing I'd like to confirm before we start: Are there any specific auction houses or resale platforms you prefer for sourcing the data? I look forward to discussing this project further with you. Please let me know a convenient time for a quick chat. Best Regards, Imran
$90 USD in 1 day
4.8
4.8

Mennecy, France
Payment method verified
Member since Mar 22, 2017
$10-30 USD
$30-250 USD
€50 EUR
€8-30 EUR
$10-30 USD
$25-50 USD / hour
$30-250 USD
£10-15 GBP / hour
$15-25 USD / hour
₹12500-37500 INR
£250-750 GBP
£20-250 GBP
₹12500-37500 INR
₹12500-37500 INR
₹600-601 INR
₹12500-37500 INR
$30-250 USD
₹400-750 INR / hour
₹12500-37500 INR
₹1500-12500 INR
₹1500-12500 INR
£750-1500 GBP
$15-25 USD / hour
$250-750 USD
$30-250 USD