Skip to main content
/tayyab/portfolio — zsh
tayyab
TA
> OPERATION: AI Competitor Price Monitoring Tool | STATUS: COMPLETE ✓
API Automation

AI Competitor Price Monitoring Tool

AI-powered competitive intelligence platform that automatically tracks competitor prices, detects pricing changes, and delivers real-time alerts to help e-commerce brands optimize pricing strategies.

Manual and Automation QA Engineer

OVERVIEW

As a Manual and Automation QA Engineer, I was responsible for testing and validating an AI-powered competitor price monitoring tool designed for e-commerce brands and retailers. The platform uses intelligent web scraping, price change detection algorithms, and automated alerting to track competitor pricing across thousands of products in real-time. My focus was on ensuring data accuracy, scraping reliability, alert timeliness, and dashboard analytics correctness.

TECH STACK

Testing Tools
Selenium WebDriverPostmanJIRATestNGJenkinsPlaywrightk6
Technologies
PythonNode.jsAgileREST APIsPostgreSQLRedisElasticsearchWeb Scraping

THE CHALLENGE

E-commerce brands manually checked competitor websites for pricing, a time-consuming process that missed rapid price changes. Without real-time competitive intelligence, businesses lost sales to competitors with better pricing and couldn't react quickly to market dynamics.

METHODOLOGY

Designed and executed comprehensive test suites for web scraping accuracy, price extraction algorithms, change detection logic, and alert delivery systems. Validated data parsing across diverse e-commerce platforms (Amazon, Shopify stores, custom websites), currency handling, and historical price tracking.

TEST STRATEGY

Collaborated with developers to test scraping resilience against anti-bot measures, proxy rotation, and rate limiting. Performed API testing for price comparison endpoints, webhook notifications, and third-party integrations. Conducted load testing to ensure system handled monitoring of 100K+ product URLs.

AUTOMATION PIPELINE

Integrated automated tests with Jenkins for continuous validation of scraping accuracy, price change detection, and alert delivery. Set up monitoring for scraping success rates, data freshness, and system performance during high-volume crawling operations.

IMPACT METRICS

Manual vs Automated Price Tracking

50111% avg
⟨ Manual Checking

Staff manually visiting competitor websites, copying prices into spreadsheets, and comparing against own pricing.

⟩ AI Price Monitoring

Automated scraping engine tracking competitor prices 24/7 with AI-powered data extraction and real-time dashboards.

// KEY_METRICS

Products Tracked

133233%
Manual Checking 50-100
AI Price Monitoring 100,000+

Update Frequency

67100%
Manual Checking Weekly
AI Price Monitoring Every 15 min

Time Spent/Week

93%
Manual Checking 15 hours
AI Price Monitoring 1 hour

Data Accuracy

16%
Manual Checking 85%
AI Price Monitoring 98.5%

Price Change Response Time

73% avg
⟨ Delayed Response

Price changes discovered days or weeks later during manual checks, missing competitive windows.

⟩ Real-Time Alerts

Instant notifications via email, Slack, or webhook when competitor prices change beyond set thresholds.

// KEY_METRICS

Detection Time

100%
Delayed Response 3-7 days
Real-Time Alerts <15 minutes

Alert Method

Delayed Response None
Real-Time Alerts Multi-channel

Missed Opportunities

93%
Delayed Response High
Real-Time Alerts Near Zero

Price Reaction Time

97%
Delayed Response 1-2 weeks
Real-Time Alerts Same day

Competitive Intelligence Quality

769% avg
⟨ Limited Insights

Basic price comparisons in spreadsheets with no historical trends, analytics, or actionable insights.

⟩ AI-Powered Analytics

Comprehensive dashboards with price history, trend predictions, competitor benchmarking, and automated reports.

// KEY_METRICS

Historical Data

Limited Insights None
AI-Powered Analytics 12+ months

Trend Analysis

375%
Limited Insights Manual
AI-Powered Analytics AI-Powered

Competitors Tracked

2400%
Limited Insights 3-5
AI-Powered Analytics Unlimited

Reporting

300%
Limited Insights Manual exports
AI-Powered Analytics Auto-generated

E-commerce Platform Coverage

633% avg
⟨ Limited Platforms

Manual checking limited to major marketplaces, missing niche competitors and regional sites.

⟩ Universal Scraping

AI-powered scraping adapts to any e-commerce platform with automatic currency conversion and global coverage.

// KEY_METRICS

Platforms Supported

1900%
Limited Platforms 2-3
Universal Scraping 50+

Custom Sites

Limited Platforms Not possible
Universal Scraping Auto-detected

Currency Handling

233%
Limited Platforms Manual convert
Universal Scraping Automatic

International

400%
Limited Platforms Limited
Universal Scraping Global

Revenue Impact & ROI

176% avg
⟨ Reactive Pricing

Pricing decisions made without real-time competitive data, leading to lost sales and margin erosion.

⟩ Data-Driven Pricing

Optimized pricing based on real-time competitive intelligence, maximizing both sales and margins.

// KEY_METRICS

Lost Sales/Month

88%
Reactive Pricing $25,000
Data-Driven Pricing $3,000

Margin Optimization

Reactive Pricing None
Data-Driven Pricing +8%

Pricing Decisions

217%
Reactive Pricing Gut feeling
Data-Driven Pricing Data-driven

Competitive Position

400%
Reactive Pricing Unknown
Data-Driven Pricing Clear view

CODE SAMPLES

Price Scraping Accuracy Test

Automated test for validating price extraction accuracy across e-commerce platforms.

python
PYTHON_EXECUTION
→ Ready
@pytest.mark.asyncio
async def test_price_scraping_accuracy():
    """Test price extraction accuracy across multiple platforms."""
    test_urls = [
        {"url": "https://amazon.com/dp/B08N5WRWNW", "expected_price": 29.99},
        {"url": "https://shopify-store.com/product/widget", "expected_price": 45.00},
        {"url": "https://ebay.com/itm/123456789", "expected_price": 19.95},
    ]

    for case in test_urls:
        response = await client.post(
            "/api/v1/scraper/extract-price",
            json={"url": case["url"]},
            headers={"Authorization": f"Bearer {API_TOKEN}"}
        )

        assert response.status_code == 200
        result = response.json()

        assert result["price"] is not None
        assert result["currency"] in ["USD", "EUR", "GBP"]
        assert abs(result["price"] - case["expected_price"]) < 0.01
        assert result["scrape_status"] == "success"
        assert response.elapsed.total_seconds() < 10.0

Price Change Detection Test

Test for validating price change detection and alert triggering.

java
JAVA_EXECUTION
→ Ready
@Test
public void testPriceChangeDetectionAndAlert() {
    String productId = "PROD-12345";
    String competitorUrl = "https://competitor.com/product/widget";

    // Set initial price
    Response initialScrape = given()
        .header("Authorization", "Bearer " + API_TOKEN)
    .when()
        .post("/api/v1/products/" + productId + "/scrape")
    .then()
        .statusCode(200)
        .extract().response();

    double initialPrice = initialScrape.jsonPath().getDouble("price");

    // Simulate price change (mock competitor response)
    mockServer.stubFor(get(urlEqualTo("/product/widget"))
        .willReturn(aResponse()
            .withBody("<span class=\"price\">$" + (initialPrice - 5.00) + "</span>")));

    // Trigger new scrape
    Response newScrape = given()
        .header("Authorization", "Bearer " + API_TOKEN)
    .when()
        .post("/api/v1/products/" + productId + "/scrape")
    .then()
        .statusCode(200)
        .body("price_changed", equalTo(true))
        .body("change_amount", equalTo(-5.00f))
        .body("alert_triggered", equalTo(true))
        .extract().response();

    // Verify alert was sent
    await().atMost(60, SECONDS).until(() ->
        alertRepository.findByProductId(productId).isPresent()
    );
}

Bulk Monitoring Performance Test

Load test for validating system performance with high-volume URL monitoring.

javascript
JAVASCRIPT_EXECUTION
→ Ready
import http from "k6/http";
import { check, sleep } from "k6";

export const options = {
    stages: [
        { duration: "2m", target: 100 },  // Ramp up
        { duration: "5m", target: 100 },  // Sustain
        { duration: "2m", target: 0 },    // Ramp down
    ],
    thresholds: {
        http_req_duration: ["p(95)<3000"],
        http_req_failed: ["rate<0.01"],
    },
};

export default function () {
    const productIds = Array.from({ length: 100 }, (_, i) => `PROD-${i}`);

    // Batch scrape request
    const response = http.post(
        `${__ENV.API_URL}/api/v1/scraper/batch`,
        JSON.stringify({ product_ids: productIds }),
        {
            headers: {
                "Content-Type": "application/json",
                "Authorization": `Bearer ${__ENV.API_TOKEN}`,
            },
        }
    );

    check(response, {
        "status is 200": (r) => r.status === 200,
        "batch processed": (r) => r.json().processed === 100,
        "response time OK": (r) => r.timings.duration < 3000,
    });

    sleep(1);
}

MISSION ACCOMPLISHED

Achieved 98.5% price extraction accuracy across 50+ e-commerce platforms. Validated price change detection within 15-minute intervals with 99.2% accuracy. Ensured alert delivery within 60 seconds of price changes. Successfully tested monitoring of 150K+ product URLs with consistent performance.

// interested?

READY TO BUILD SOMETHING SIMILAR?

Let's discuss how I can implement test automation for your project.

→ Get in Touch
Available for hire