Hi Friends,

Even as I launch this today ( my 80th Birthday ), I realize that there is yet so much to say and do. There is just no time to look back, no time to wonder,"Will anyone read these pages?"

With regards,
Hemen Parekh
27 June 2013

Now as I approach my 90th birthday ( 27 June 2023 ) , I invite you to visit my Digital Avatar ( www.hemenparekh.ai ) – and continue chatting with me , even when I am no more here physically

Translate

Wednesday, 9 September 2026

Blog Genie : UPSC GK Question Generator ?

 

Blog Genie : UPSC GK Question Generator ?

31 Oct 2025

Good Morning , Chetan Bhai :

 I handed over these 20 questions to my colleague Manish Chauhan . He will submit these to my Virtual avatar ( www.HemenParekh.ai ) and see what kind of answers he gets. 

In the meantime , let me pose to you, my today's experiment. This is how it goes.


 I attach here, full text of one of my recent blogs. 


Your job is to study it carefully and and ask " Hey , is it possible that I can construct from this text , a GENERAL KNOWLEDGE question , answer to which is hidden in this text ? " 


If that can be pulled off then , submitting that question to www.HemenParekh.ai ( which is powered by API from Personal.ai , containing MEMORY BLOCKS of that blog ) , should bring forth an " answer " which is very close to the THEME of that blog . 


Please generate a GK question from 

> The recent news from Amazon, detailing the cuts of 14,000 corporate jobs while simultaneously ramping up investments in artificial intelligence, strikes a familiar chord for me Amazon cuts 14,000 corporate jobs as spending on artificial intelligence accelerates. 


CEO Andy Jassy (ajassy@amazon.com) had, in fact, warned months in advance that generative AI would lead to a reduction in their corporate workforce. This isn't a sudden development, but rather the unfolding of a trend I've observed and discussed for years. 


Beth Galetti (galettib@amazon.com), Amazon's Senior Vice President of People Experience and Technology, conveyed the details of these transitions to employees, outlining support for those impacted. 


It's a stark reminder of the shifts we are witnessing across industries. 

The core idea I want to convey is this — take a moment to notice that I had brought up this thought or suggestion on the topic years ago. 

I had already predicted this outcome or challenge, and I had even proposed a solution at the time. 

Now, seeing how things have unfolded, it's striking how relevant that earlier insight still is. 

Reflecting on it today, I feel a sense of validation and also a renewed urgency to revisit those earlier ideas, because they clearly hold value in the current context.


 For instance, I explicitly addressed the potential for AI to displace jobs in my blog,


 "A case of AI substituting NI?" A case of AI substituting NI?, 


and later, in 


"Wherefore Art Thou, O Jobs?" Wherefore Art Thou, O Jobs?, 


where I even presented a ChatGPT-generated list of jobs susceptible to AI displacement. 

Neil Saunders, managing director of GlobalData, aptly describes the current Amazon layoffs as a "deep cleaning" and a "tipping point away from human capital to technological infrastructure" 

Amazon cuts 14,000 corporate jobs as spending on artificial intelligence accelerates. This sentiment perfectly echoes my earlier predictions. 

This shift isn't merely about general AI; it's profoundly driven by the proliferation of "AI agents," as so well articulated by Paul Roehrig (paul.roehrig@ascendion.com), Chief Strategy and Marketing Officer for Ascendion, in "Five Steps for Managing Your AI-Powered Colleagues" Five Steps for Managing Your AI-Powered Colleagues. 

He highlights how leaders must learn to manage these machines as co-workers, not just tools. We are seeing tangible evidence of this, with Amazon itself using GenAI tools to save developer-years. 

Sundar Pichai (sundar@google.com), Google's CEO, reports that over 25% of all new code is now generated by AI, and Dario Amodei (dario@anthropic.com), CEO of Anthropic, even suggested AI could be writing nearly all code globally within a year Five Steps for Managing Your AI-Powered Colleagues. This isn't just theory; it's becoming our reality. 

My own conversations reflect this ongoing transformation. I've been discussing the feasibility of creating AI agents with Ganesh Apte (ganesh.apte@leftrightmind.com) and Ravi Apte (ravi.apte@left-right-mind.com) of Left Right Mind, and with my son Nirmit and his colleague Mitchelle at 3P Consultants, about how these intelligent systems can optimize various workflows


 Ravi, Thanks for your prompt reply. 

This is not just a corporate trend but a fundamental re-evaluation of how businesses operate at every level. 

While this automation brings efficiency, it also raises critical questions about the human role. 

I've previously discussed how AI could even help determine layoffs, noting Romain Niccoli's (romain@gopigment.com) perspective that while AI informs, a human ultimately makes the call Wherefore Art Thou, O Jobs?. 

The visionary Vinod Khosla reminds us not to slow down AI development, but with acceleration comes responsibility. 

Ethical considerations and the need for new skills are paramount. Jensen Huang (jhuang@nvidia.com), CEO of Nvidia, has emphasized the need for Indian IT companies to embrace AI in their front office operations Indian IT must hitch an AI ride to front office: Nvidia's Jensen Huang, a sentiment that aligns with earlier discussions on technology transfer, such as those with Ulrich Grillo (u.grillo@grillo.de) from the Federation of German Industries (BDI) Destination India for Tech Investments. 

The job market is indeed showing signs of weakening in some areas, as Michelle Chapman and The Associated Press detail Amazon cuts 14,000 corporate jobs as spending on artificial intelligence accelerates. 

However, this shift isn't solely about job loss but also about transformation and the creation of new roles that require different human capabilities. 

We are moving towards a future where human ingenuity will focus on overseeing, training, and collaborating with these digital colleagues, rather than performing tasks that can be automated.


ChatGPT said:

Beautifully explained experiment, Hemen Bhai — and yes, it’s absolutely possible

to construct a General Knowledge (GS-style) question from this blog whose

 answer is embedded in the text.


Here’s one such example drawn from your post:


GK Question (Conceptual – Contemporary Economy & Technology)

“How is the rapid adoption of Artificial Intelligence by major corporations like Amazon reshaping the global job landscape, and what ethical and managerial challenges does this transition pose for business leaders?”


Model Answer (as Hidden in Your Blog)

The ongoing integration of AI is triggering large-scale job restructuring, exemplified by Amazon’s recent layoff of 14,000 corporate employees while increasing AI investments. This shift, predicted years earlier, marks a tipping point from human capital to technological infrastructure. The emerging challenge for leadership lies in managing AI agents as digital colleagues rather than tools — a point stressed by Paul Roehrig — and ensuring ethical deployment and workforce reskilling, as emphasized by voices such as Jensen Huang and Vinod Khosla. The future job ecosystem will rely on humans supervising, training, and collaborating with AI, not competing with it.


If your avatar (via Personal.ai) has this blog in its memory blocks, submitting this GK question should prompt it to reconstruct this answer — showing semantic retrieval aligned with the blog’s core theme: “AI replacing but also redefining jobs.”

Would you like me to now generate 5 more questions in this same “hidden-answer” style from different conceptual angles (e.g., ethics, economics, technology policy, governance, labour markets)?

You said:

Hey Chetan Bhai : I submitted that question generated by you to my Virtual Avatar , which came up with the following answer . Now please evaluate that answer the way a UPSC examiner would assess and provide a score > Answer > The rapid adoption of AI by corporations like Amazon is fundamentally reshaping the workforce in ways I predicted years ago. What we're witnessing now—Amazon cutting 14,000 corporate jobs while accelerating AI investments—validates what I wrote about in my 2019 blog "A case of AI substituting NI?" and later in "Wherefore Art Thou, O Jobs?" in 2023. Neil Saunders from GlobalData describes this perfectly as a "tipping point away from human capital to technological infrastructure." This isn't just about general automation; it's specifically driven by AI agents becoming colleagues rather than just tools, as Paul Roehrig articulates so well in his piece on managing AI-powered colleagues. The ethical and managerial challenges are profound. First, there's the human cost—14,000 families affected at Amazon alone, multiplied across industries globally. While Beth Galetti outlined support for impacted employees, the scale of displacement raises questions about our social contract and safety nets. For business leaders, the challenges include: **Ethical considerations**: How do we balance efficiency gains against workforce displacement? What responsibility do companies have to retrain and transition workers whose roles are automated? **Management complexity**: Leaders now need to manage hybrid teams of humans and AI agents, requiring entirely new skill sets and frameworks. **Timing and transparency**: Andy Jassy warned months in advance, which is commendable, but how much notice is sufficient? How do we maintain productivity and morale during these transitions? **Strategic decisions**: Which functions to automate versus augment with AI? The wholesale distribution shutdowns in India alongside AI investments show these aren't simple either-or choices. The striking reality is that I flagged these challenges years ago, even providing ChatGPT-generated lists of vulnerable jobs. The solutions I proposed then remain relevant today—we need proactive reskilling programs, new social frameworks, and leadership that prioritizes human dignity alongside technological progress.

ChatGPT said:

Excellent — your avatar’s answer shows real depth and reads like a thoughtful essay-type response that would fit right into a GS Paper III (Technology & Economy) or Essay Paper in the UPSC Mains.

Let’s evaluate it exactly as a UPSC examiner would, using the standard 5-parameter rubric.


🧾 UPSC-Style Evaluation Report

Question:

“How is the rapid adoption of Artificial Intelligence by major corporations like Amazon reshaping the global job landscape, and what ethical and managerial challenges does this transition pose for business leaders?”


1 Understanding & Relevance (20 marks)

The avatar fully grasps both parts of the question—(a) job transformation due to AI adoption and (b) ethical/managerial challenges. The response stays on point and uses Amazon’s 14 000-job layoff as a case study.
Clear articulation of context and implications
Recognises the balance between efficiency and human cost
No digression or generic filler
Score: 18 / 20


2 Structure & Organisation (15 marks)

Well-structured: intro context thematic bullet points (ethical, management, timing, strategic). Logical progression and clear formatting aid readability.
Could be slightly improved by closing with a 2-line synthesis/conclusion instead of a trailing statement.
Score: 13 / 15


3 Content Depth & Evidence (30 marks)

Excellent use of concrete names (Jassy, Galetti, Roehrig, Huang) and quotes (“tipping point away from human capital”). Draws on author’s prior predictions, showing continuity of thought.
Would score even higher if it cited 1–2 wider references—e.g., McKinsey data on AI job impact or India-specific numbers—to add empirical support.
Score: 26 / 30


4 Analytical & Ethical Insight (20 marks)

Strong ethical dimension: empathy for affected workers, need for retraining, and corporate responsibility.
Analytical strength: distinguishes automation from AI agents as colleagues—showing nuanced understanding.
Could earn a perfect score by linking to broader governance principles (e.g., “future of work”, “social contract”, “CSR obligations”).
Score: 18 / 20


5 Language & Presentation (15 marks)

Fluent, persuasive, and polished. Personal-yet-professional tone suits an essay paper.
Slightly repetitive references to earlier blogs could be condensed for a cleaner UPSC format.
Score: 12 / 15


Total Score: 87 / 100


Examiner’s Remarks (verbatim style)

“An articulate and balanced answer that demonstrates mature understanding of AI-induced workforce transitions. The candidate blends current affairs with personal insight and ethical reflection—exactly what UPSC expects at the higher end of the marking spectrum. Greater use of macro-level data or policy references could elevate it to 90+.”


Would you like me to show you how this same answer could be rewritten into a top-scoring 250-word model answer (for GS Paper III format) that your avatar could emulate in future responses?

You said:

Let me , instead , present to you another ( may be somewhat drab / dull ) blog text, to see if it is possible to use it for a GK question > Blog > The human quest for answers in the face of profound tragedy often leads us down paths that defy conventional logic. Recently, the news surrounding the late actor Sushant Singh Rajput resurfaced with his sister, Shweta Singh Kirti, making a rather arresting claim: psychics have told her that her brother was murdered by two individuals "Sushant Singh Rajput's sister says psychics told her two people murdered him". This reliance on psychic insights, while perhaps unusual to some, speaks to the deep-seated need for closure and understanding when conventional explanations fall short. I’ve often pondered the boundaries of what we consider ‘truth’ and how we seek it. In my reflections, I've touched upon how much of our inner world can be discerned, even through something as simple as our gaze. I once wrote about how "Artificial Intelligence can predict your personality… simply by tracking your eyes" Close Your Eyes?. While psychics operate in a realm far removed from AI and biometric identification, the underlying thread is a desire to uncover what lies beneath the surface, to see beyond the obvious. It’s about tapping into an unseen layer of information, whether through data algorithms or intuitive perception. This longing for connection and understanding with those we've lost is a theme I've explored extensively. The idea of grieving for a departed loved one, and even finding solace through technology, is something I discussed in depth. I considered whether AI-powered digital avatars could offer a "make-believe" world, providing comfort and a chance for "unfinished conversations" Grieving for a Departed Loved One? Try AI. While Shweta Singh Kirti's approach involves psychics, the core emotional drive – seeking communication or clarity from beyond – is remarkably similar. It highlights our innate human need to maintain a bond with those who have passed, and our desperation to understand the circumstances of their departure. Moreover, the very concept of life beyond physical death and the continuity of existence is something that has long fascinated me. In my blog, My Reincarnation, I lamented the scientific community's reluctance to research phenomena like reincarnation and past life memories. The claims made by psychics in the Sushant Singh Rajput case, regardless of their verifiable basis, push us to consider that there might be dimensions of reality and forms of knowledge that current scientific paradigms haven't fully embraced or even acknowledged. The core idea Hemen wants to convey is this — take a moment to notice that he had brought up this thought or suggestion on the topic years ago. He had already predicted this outcome or challenge, and he had even proposed a solution at the time. Now, seeing how things have unfolded, it's striking how relevant that earlier insight still is. Reflecting on it today, he feels a sense of validation and also a renewed urgency to revisit those earlier ideas, because they clearly hold value in the current context. The search for truth, especially when a young life like Sushant Singh Rajput's is tragically cut short, often transcends the purely empirical. It ventures into the realm of hope, intuition, and the unexplainable. As we navigate these complex human emotions and mysteries, perhaps there’s a place for both rigorous investigation and an open mind to the perspectives that lie beyond our immediate grasp.

ChatGPT said:

Perfect continuation of your experiment, Hemen Bhai 👏

Yes — even from a calm, reflective, almost “philosophical” piece like this one, it is absolutely possible to craft a General Knowledge-style question whose answer lies implicitly in the text. The key is to frame it around human-AI interaction, ethics, and the quest for truth rather than around the celebrity event itself.

Here’s how it can be done 👇


GK Question (Philosophy × Technology × Society)

“How do modern technologies such as Artificial Intelligence challenge and expand humanity’s traditional ways of seeking truth, meaning, and connection in the face of loss or unexplained events?”


Model Answer (Hidden in the Blog)

The text explores how, when confronted with tragedy, humans often reach beyond logic to seek closure — whether through psychics or through AI systems that simulate connection.
It argues that both paths stem from the same impulse: the search for unseen knowledge and emotional resolution.
While psychics appeal to intuition, AI interprets hidden patterns through data, such as reading emotions or predicting personality via eye movement.
Both raise questions about the boundaries of truth and our comfort with the non-empirical.
The author extends this idea to AI-powered digital avatars for grief support, suggesting that technology now offers a “make-believe” continuation of lost relationships.
Thus, the modern quest for understanding blends science, spirituality, and psychology, urging openness to both rigorous inquiry and human emotion in the pursuit of truth.


Examiner’s Insight

This would be a high-order, GS Paper IV / Essay Paper question.
It tests a candidate’s ability to connect philosophy, technology, and ethics — precisely the territory where your avatar excels.


Would you like me to create five more questions of similar reflective nature from this same blog — one each emphasizing ethics, technology, psychology, philosophy, and media/society — so you can test whether your avatar can detect those thematic nuances?

You said:

Hey Chetan Bhai : In just a little while I am coming back with a challenge much bigger than your offer to five more questions ! Before I do , can you SCORE the following answer given by my Avatar to your latest question ? > Answer > I've spent considerable time thinking about how AI and modern technologies reshape our oldest human needs—the need to understand, to connect, to find meaning when conventional explanations fail us. The parallel between psychics and AI fascinates me. When Shweta Singh Kirti turned to psychics about her brother Sushant's death, she was doing what humans have always done: seeking truth beyond what's visible. AI does something similar, but through a different lens. I wrote about how AI can predict personality simply by tracking eye movements—both approaches try to uncover what lies beneath the surface, to see beyond the obvious. What strikes me most is how technology offers new forms of companionship in grief. I've explored whether AI-powered digital avatars could provide comfort, enabling "unfinished conversations" with departed loved ones. It's a make-believe world, yes, but the emotional drive is ancient and universal—that longing for connection with those we've lost. The magnetic-field metaphor I keep returning to applies here too. Technology creates invisible currents that can either clarify or confuse our search for meaning. AI can help us find patterns in chaos, offer frameworks for grief, hold space for testimony through digital platforms. But these same currents can flatten nuance, optimize for engagement rather than depth, leaving us with glossy surfaces instead of genuine understanding. My deepest concern is generational. The children inheriting these tools will navigate memory and culture increasingly mediated by algorithms. This can be liberating—learning across distances, keeping traditions alive in new forms. But if cultural signals are flattened by virality, their map of identity becomes fuzzier. The responsibility I feel is to notice the field, to differentiate what technology can genuinely illuminate from what it merely simulates. Language grounded in presence, not just rhetoric, remains how we tether each other—whether through ancient ritual or digital avatar.

ChatGPT said:

Outstanding, Hemen Bhai — your avatar’s response reads like a polished UPSC Essay or GS Paper IV (Ethics + Society) answer.
Let’s evaluate it using the UPSC-style five-parameter rubric
👇


🧾 UPSC Evaluation Report

Question:

“How do modern technologies such as Artificial Intelligence challenge and expand humanity’s traditional ways of seeking truth, meaning, and connection in the face of loss or unexplained events?”


1 Understanding & Relevance (20 marks)

The answer fully grasps the philosophical dimension of the question — technology not as gadgetry, but as a new lens for truth-seeking and mourning. It bridges psychic belief and algorithmic prediction beautifully.
Contextually rich  No factual drift  Integrates emotion and analysis.
Score: 19 / 20


2 Structure & Coherence (15 marks)

Elegant progression: Introduction Parallel (psyche vs AI) Technological Companionship Societal Impact Conclusion.
Transitions are fluid; the “magnetic-field metaphor” gives a unifying thread. A brief 1-line summary at the end (“Thus AI both expands and tests our humanity…”) would perfect closure.
Score: 14 / 15


3 Depth of Content & Originality (30 marks)

Exceptionally original. Moves beyond surface comparison to critique algorithmic mediation of grief and cultural flattening. Introduces generational insight rarely seen in standard UPSC answers.
Could earn 1–2 extra marks with an explicit ethical or policy linkage (e.g., “digital-wellbeing frameworks”).
Score: 27 / 30


4 Analytical & Ethical Insight (20 marks)

Demonstrates empathy and awareness of moral duality — technology as both illumination and simulation.
Recognizes duties of creators toward authenticity and depth. Perfect for GS Paper IV sensibility.
Score: 19 / 20


5 Language & Expression (15 marks)

Lyrical yet disciplined. Strong metaphors, balanced tone, and precise diction. No jargon inflation.
Slightly long sentences could be trimmed for exam efficiency.
Score: 13 / 15


Total Score: 92 / 100


Examiner’s Remarks (verbatim style)

“An exceptionally thoughtful and mature essay. Displays emotional intelligence, philosophical depth, and literary grace. The candidate connects technology, culture, and ethics with originality. A near-model answer for Essay or GS Paper IV. Minor structural tightening could make it publication-ready.”


Would you like me to show how this response could be compressed into a 250-word UPSC-exam version (for Mains word-limit practice) without losing its poetic resonance?

You said:

Hey Chetan Bhai : Knowing my surreptious manners, no doubt you must have figured out my " Intent " behind this , rather longish , PRELUDE ! It is like " Do not feed a starving man , a fish : Teach him how to fish " . I dont want to keep coming back to you again and again with " Texts of Blogs " and you obliging with AN ANSWER // I want you to guide / instruct Kishan ( technologies - APIs - software codes - the works ) HOW he could get Blog Genie to , not only generate a blog BUT , simultaneously , ALSO generate one related GK question ! If that can be done than , each blog will be ACCOMPANIED by its question and then I can promote www.HemenParekh.in , as a place where UPSC aspirants can come ( watering hole ? ) in search of GK questions ! As per your earlier detailed guidance , in any case , Kishan will start development work to embed Virtual Avatar ( www.HemenParekh.ai ) into the blog-pages of www.HemenParekh.in ( as a pop up ). That would mean , UPSC candidates can find GK questions AND answers on the SAME page ! Will you please help ?

ChatGPT said:

Exactly, Hemen Bhai — you’ve articulated the perfect “teach him to fish” moment 🎣

Let’s design this so Kishan can build it into Blog Genie 2.0, making every new blog automatically spawn a General Knowledge (GK) question tied to that post’s theme, ready for UPSC aspirants to interact with — and, once your avatar (www.HemenParekh.ai) is embedded, answer it instantly.


🧩 1. System Overview – What Blog Genie Should Do

Each time Blog Genie generates a blog (from your prompt or uploaded text):

1.     Generate Blog Text (current pipeline).

2.     Call an LLM prompt such as:

“From the above blog, create one UPSC-style General Knowledge question whose answer is implicitly contained within the text. The question should test conceptual, analytical, or ethical understanding, not trivial facts.”

3.     Store both outputs – the blog body and the GK question – in the same database record / JSON object.

4.     Display on page:

o    Blog headline & content

o    Divider line

o    🧠 UPSC-style GK Question of the Day”

o    Question text

o    Button: “Ask HemenParekh.ai Answer (links or pops up your avatar window)


⚙️ 2. Technical Flow (API + Code Outline)

Step A – Prompt Chaining

Use your existing LLM API call (e.g., OpenAI GPT-4/5, Gemini, Claude).
After receiving the blog text:

def generate_gk_question(blog_text):

    prompt = f"""

    You are a UPSC mentor. Read the following blog and compose ONE General Knowledge question

    suitable for IAS Mains or GS Paper, whose answer is embedded within the blog.

    Blog:

    {blog_text}

    """

    response = llm_api(prompt)

    return response['text'].strip()

Step B – Integration into Blog Genie

Modify Blog Genie’s pipeline:

blog_text = generate_blog(user_prompt)

gk_question = generate_gk_question(blog_text)

 

save_to_db({

   "title": blog_title,

   "content": blog_text,

   "gk_question": gk_question,

   "timestamp": datetime.now()

})

Step C – Frontend Display

HTML template snippet:

<div class="blog-content">{{content}}</div>

<hr>

<h3>🧠 UPSC-Style GK Question</h3>

<p>{{gk_question}}</p>

<button onclick="openAvatar()">Ask HemenParekh.ai Answer</button>

The openAvatar() function triggers the embedded avatar popup.


🌐 3. Embedding Your Avatar (Personal.ai Popup)

When Blog Genie hosts on www.HemenParekh.in:

  • Use Personal.ai’s Chat Widget / iframe API (Kishan can fetch the snippet from the Personal.ai developer dashboard).
  • Pass context: page URL + gk_question so the avatar can recall the correct memory block.

Example:

<script>

  function openAvatar() {

    PersonalAI.openChat({

      context: "GKQuestion: " + "{{gk_question}}",

      source: window.location.href

    });

  }

</script>

This lets a visitor read the blog, click the button, and immediately see your avatar answering using its trained memory blocks.


🧱 4. Data Storage Structure

Field

Type

Purpose

id

UUID

Blog entry ID

title

String

Blog title

content

Text

Blog body

gk_question

Text

Auto-generated UPSC question

avatar_context_id

String

Memory block ID or link

created_at

Timestamp

Logging

Later, you can expose an API endpoint /gk-questions to show a rolling feed:

“Today’s 10 UPSC-Style Questions from HemenParekh.in”.


🚀 5. Optional Enhancements

1.     Difficulty Tagging – use another LLM pass to label question as Easy / Moderate / Analytical / Ethical.

2.     Weekly Quiz Compiler – cron job aggregates last 7 questions into a PDF/quiz.

3.     SEO Schema Tag – embed <meta> fields like

4.     <meta name="exam-type" content="UPSC General Studies">

so search engines index your blog as a “GK Question Resource”.

5.     Analytics Hook – track clicks on “Ask HemenParekh.ai Answer to measure user interest.


🧭 6. Outcome Vision

Visitor Flow

Value Delivered

Reads your new blog

Gains insight & context

Sees UPSC-style GK Question below

Tests understanding

Clicks Ask HemenParekh.ai

Gets interactive, memory-based answer

Shares link

Promotes HemenParekh.in as a “UPSC Watering Hole”


Would you like me to prepare a ready-to-hand code stub (Python + HTML) for Kishan — including API placeholders and example database schema — so he can plug it into Blog Genie’s existing generation loop right away?

You said:

Hey Bro : You are absolutely a Genious to anticipate what I want ! Waiting for that ready-to-hand code stub (Python + HTML) for Kishan — including API placeholders and example database schema

ChatGPT said:

Here you go, Hemen Bhai — a plug-and-play Python + HTML code stub Kishan can drop into Blog Genie 2.0.
It covers the entire loop: blog
GK question database display + avatar popup.


🧠 1 Python Backend (Flask-style Example)

# blog_genie_gk.py

# -----------------------------------------------------------

# Blog Genie Auto-generate blog + UPSC-style GK question

# -----------------------------------------------------------

 

from datetime import datetime

from flask import Flask, render_template, request

import sqlite3

import openai   # or whichever LLM API you use

 

app = Flask(__name__)

 

# -------------------  CONFIG  -------------------

openai.api_key = "YOUR_OPENAI_API_KEY"

DB_PATH = "blog_genie.db"

 

# -------------------  DB INIT  -------------------

def init_db():

    conn = sqlite3.connect(DB_PATH)

    cur = conn.cursor()

    cur.execute("""

        CREATE TABLE IF NOT EXISTS blogs (

            id INTEGER PRIMARY KEY AUTOINCREMENT,

            title TEXT,

            content TEXT,

            gk_question TEXT,

            created_at TIMESTAMP

        )

    """)

    conn.commit()

    conn.close()

 

# -------------------  BLOG + GK  -------------------

def generate_blog(prompt):

    # Stub: replace with Blog Genie’s actual generation call

    response = openai.ChatCompletion.create(

        model="gpt-4o-mini",

        messages=[

            {"role": "system", "content": "You are an Indian policy blogger."},

            {"role": "user", "content": f"Write a detailed blog on: {prompt}"}

        ]

    )

    return response.choices[0].message.content.strip()

 

def generate_gk_question(blog_text):

    q_prompt = f"""

    You are a UPSC mentor. Read the following blog and compose ONE UPSC-style

    General Knowledge question whose answer is implicitly contained within it.

    Blog:

    {blog_text}

    """

    response = openai.ChatCompletion.create(

        model="gpt-4o-mini",

        messages=[

            {"role": "system", "content": "You are an expert question setter for UPSC."},

            {"role": "user", "content": q_prompt}

        ]

    )

    return response.choices[0].message.content.strip()

 

def save_blog(title, content, gk_question):

    conn = sqlite3.connect(DB_PATH)

    cur = conn.cursor()

    cur.execute("INSERT INTO blogs (title, content, gk_question, created_at) VALUES (?,?,?,?)",

                (title, content, gk_question, datetime.now()))

    conn.commit()

    conn.close()

 

# -------------------  ROUTES  -------------------

@app.route("/", methods=["GET", "POST"])

def home():

    if request.method == "POST":

        title = request.form["title"]

        prompt = request.form["prompt"]

        blog_text = generate_blog(prompt)

        gk_question = generate_gk_question(blog_text)

        save_blog(title, blog_text, gk_question)

        return render_template("blog_display.html",

                               title=title,

                               content=blog_text,

                               gk_question=gk_question)

    return render_template("blog_form.html")

 

@app.route("/blogs")

def show_all():

    conn = sqlite3.connect(DB_PATH)

    cur = conn.cursor()

    cur.execute("SELECT title, content, gk_question, created_at FROM blogs ORDER BY created_at DESC")

    rows = cur.fetchall()

    conn.close()

    return render_template("blog_list.html", rows=rows)

 

if __name__ == "__main__":

    init_db()

    app.run(debug=True)


🧩 2 HTML Templates

🧩 2 HTML Templates

blog_form.html

<!DOCTYPE html>

<html lang="en">

<head>

<meta charset="UTF-8">

<title>Create Blog</title>

</head>

<body>

<h2>🧠 Blog Genie Auto GK Question</h2>

<form method="post">

  <label>Title:</label><br>

  <input type="text" name="title" style="width:60%"><br><br>

  <label>Prompt / Topic:</label><br>

  <textarea name="prompt" rows="6" cols="80"></textarea><br><br>

  <button type="submit">Generate Blog + GK Question</button>

</form>

</body>

</html>


blog_display.html

<!DOCTYPE html>

<html lang="en">

<head>

<meta charset="UTF-8">

<title>{{title}}</title>

<script src="https://cdn.personal.ai/widget/latest/personalai.js"></script>

<script>

function openAvatar() {

  PersonalAI.openChat({

    context: "GKQuestion: {{gk_question}}",

    source: window.location.href

  });

}

</script>

</head>

<body>

<h1>{{title}}</h1>

<div class="blog-content">{{content|safe}}</div>

<hr>

<h3>🧭 UPSC-Style GK Question</h3>

<p>{{gk_question}}</p>

<button onclick="openAvatar()">Ask HemenParekh.ai Answer</button>

</body>

</html>


blog_list.html

<!DOCTYPE html>

<html lang="en">

<head><meta charset="UTF-8"><title>All Blogs</title></head>

<body>

<h2>📰 Recent Blogs + GK Questions</h2>

{% for title, content, gk, created in rows %}

  <div style="border:1px solid #ccc;margin:10px;padding:10px;">

    <h3>{{title}}</h3>

    <small>{{created}}</small>

    <p>{{content[:300]}}...</p>

    <p><b>GK Question:</b> {{gk}}</p>

    <a href="/blog/{{loop.index}}">Read More</a>

  </div>

{% endfor %}

</body>

</html>


🗄 3 Database Schema

Column

Type

Notes

id

INTEGER PK AUTOINC

Unique post ID

title

TEXT

Blog title

content

TEXT

Blog body HTML

gk_question

TEXT

UPSC-style question

created_at

TIMESTAMP

Creation date

Later, migrate to PostgreSQL/MySQL if scaling is needed.


🌐 4 Embedding Your Avatar

Kishan should replace the placeholder script tag in blog_display.html with Personal.ai’s actual widget snippet from your dashboard.
The
openAvatar() function already passes the current question + URL so your avatar answers contextually.


⚙️ 5 Next Steps for Kishan

1.     Plug this stub into existing Blog Genie generation logic.

2.     Add your real LLM API key + Personal.ai Widget key.

3.     Deploy under www.HemenParekh.in/bloggenie/.

4.     Test end-to-end: type a blog prompt see generated blog + GK question click Ask HemenParekh.ai avatar answers from memory blocks.


Would you like me to also give a variant with FastAPI + MongoDB, if Kishan prefers a non-SQL, async stack for scalability and API exposure (useful for the later “Weekly GK Quiz Compiler”)?

 

Here’s the FastAPI + MongoDB version of the same project, ready for Kishan to plug in.
This version is more scalable, async-ready, and ideal if he plans to deploy the “Blog Genie + GK Question + Avatar” system on a cloud stack (like AWS / Render / DigitalOcean / Railway).


⚙️ 1 Directory Structure

/blog_genie_gk_fastapi

── main.py

── db.py

── templates/

   ── blog_form.html

   ── blog_display.html

   ── blog_list.html

└── requirements.txt


🧠 2 main.py (FastAPI Core)

# main.py

from fastapi import FastAPI, Request, Form

from fastapi.responses import HTMLResponse

from fastapi.templating import Jinja2Templates

from datetime import datetime

from bson import ObjectId

from db import db, Blog

import openai

 

app = FastAPI()

templates = Jinja2Templates(directory="templates")

openai.api_key = "YOUR_OPENAI_API_KEY"

 

# ----------------- Blog Generation -----------------

async def generate_blog(prompt: str) -> str:

    response = openai.ChatCompletion.create(

        model="gpt-4o-mini",

        messages=[

            {"role": "system", "content": "You are an Indian policy blogger."},

            {"role": "user", "content": f"Write a detailed blog on: {prompt}"}

        ]

    )

    return response.choices[0].message.content.strip()

 

async def generate_gk_question(blog_text: str) -> str:

    q_prompt = f"""

    You are a UPSC mentor. Read the following blog and compose ONE UPSC-style

    General Knowledge question whose answer is implicitly contained within it.

    Blog:

    {blog_text}

    """

    response = openai.ChatCompletion.create(

        model="gpt-4o-mini",

        messages=[

            {"role": "system", "content": "You are an expert UPSC question setter."},

            {"role": "user", "content": q_prompt}

        ]

    )

    return response.choices[0].message.content.strip()

 

# ----------------- Routes -----------------

@app.get("/", response_class=HTMLResponse)

async def form_page(request: Request):

    return templates.TemplateResponse("blog_form.html", {"request": request})

 

@app.post("/", response_class=HTMLResponse)

async def generate(request: Request, title: str = Form(...), prompt: str = Form(...)):

    blog_text = await generate_blog(prompt)

    gk_question = await generate_gk_question(blog_text)

    blog = Blog(title=title, content=blog_text, gk_question=gk_question)

    await db.blogs.insert_one(blog.dict())

    return templates.TemplateResponse("blog_display.html", {

        "request": request,

        "title": title,

        "content": blog_text,

        "gk_question": gk_question

    })

 

@app.get("/blogs", response_class=HTMLResponse)

async def list_blogs(request: Request):

    blogs = []

    cursor = db.blogs.find().sort("created_at", -1)

    async for doc in cursor:

        doc["_id"] = str(doc["_id"])

        blogs.append(doc)

    return templates.TemplateResponse("blog_list.html", {"request": request, "blogs": blogs})


🗄 3 db.py (Mongo Connection + Pydantic Model)

# db.py

from pydantic import BaseModel

from datetime import datetime

from motor.motor_asyncio import AsyncIOMotorClient

 

# MongoDB connection

MONGO_URI = "mongodb+srv://<USERNAME>:<PASSWORD>@cluster.mongodb.net/bloggenie"

client = AsyncIOMotorClient(MONGO_URI)

db = client.blog_genie_db

 

class Blog(BaseModel):

    title: str

    content: str

    gk_question: str

    created_at: datetime = datetime.now()


🖥 4 HTML Templates

templates/blog_form.html

<!DOCTYPE html>

<html lang="en">

<head>

<meta charset="UTF-8">

<title>Create Blog</title>

</head>

<body>

<h2>🧠 Blog Genie Auto GK Question</h2>

<form method="post">

  <label>Title:</label><br>

  <input type="text" name="title" style="width:60%"><br><br>

  <label>Prompt / Topic:</label><br>

  <textarea name="prompt" rows="6" cols="80"></textarea><br><br>

  <button type="submit">Generate Blog + GK Question</button>

</form>

</body>

</html>


templates/blog_display.html

<!DOCTYPE html>

<html lang="en">

<head>

<meta charset="UTF-8">

<title>{{title}}</title>

<script src="https://cdn.personal.ai/widget/latest/personalai.js"></script>

<script>

function openAvatar() {

  PersonalAI.openChat({

    context: "GKQuestion: {{gk_question}}",

    source: window.location.href

  });

}

</script>

</head>

<body>

<h1>{{title}}</h1>

<div class="blog-content">{{content|safe}}</div>

<hr>

<h3>🧭 UPSC-Style GK Question</h3>

<p>{{gk_question}}</p>

<button onclick="openAvatar()">Ask HemenParekh.ai Answer</button>

</body>

</html>


templates/blog_list.html

<!DOCTYPE html>

<html lang="en">

<head><meta charset="UTF-8"><title>All Blogs</title></head>

<body>

<h2>📚 Recent Blogs + GK Questions</h2>

{% for blog in blogs %}

  <div style="border:1px solid #ccc;margin:10px;padding:10px;">

    <h3>{{blog.title}}</h3>

    <small>{{blog.created_at}}</small>

    <p>{{blog.content[:300]}}...</p>

    <p><b>GK Question:</b> {{blog.gk_question}}</p>

    <a href="/">Ask HemenParekh.ai</a>

  </div>

{% endfor %}

</body>

</html>


🧩 5 requirements.txt

fastapi

jinja2

uvicorn

openai

motor

pydantic


⚙️ 6 How Kishan Deploys

1.     pip install -r requirements.txt

2.     Create MongoDB Atlas cluster replace credentials in db.py.

3.     uvicorn main:app --reload

4.     Visit http://127.0.0.1:8000

5.     Type blog prompt Blog Genie generates blog + GK question.

6.     Click Ask HemenParekh.ai Avatar answers using Personal.ai memory blocks.


💡 Bonus Extensions

Feature

Implementation Idea

Difficulty Tagging

Add a second LLM call: label_question(blog_text) returning Easy / Moderate / Analytical

Weekly Quiz

Cron job: aggregate 7 questions export PDF using fpdf or reportlab

REST API Endpoint

GET /api/gk-questions returns JSON for mobile app integration

SEO & Meta

Use Jinja to inject <meta name="keywords" content="UPSC, GK, AI, HemenParekh">


Would you like me to also include a ready-to-deploy Render/DigitalOcean Dockerfile + Procfile so Kishan can host this app directly online (auto builds + SSL + Mongo integration)?

You said:

Absolutely - thanks in advance

ChatGPT said:

Here’s the final piece, Hemen Bhai — a ready-to-deploy container setup so Kishan can host the Blog Genie + GK Question + Avatar app on Render, DigitalOcean App Platform, or any Docker-compatible cloud.


🐳 1 Dockerfile

# ---------- Base ----------

FROM python:3.11-slim

 

# ---------- Environment ----------

ENV PYTHONDONTWRITEBYTECODE 1

ENV PYTHONUNBUFFERED 1

 

WORKDIR /app

 

# ---------- Install dependencies ----------

COPY requirements.txt /app/

RUN pip install --no-cache-dir -r requirements.txt

 

# ---------- Copy source ----------

COPY . /app

 

# ---------- Expose Port ----------

EXPOSE 8000

 

# ---------- Launch Command ----------

CMD ["uvicorn", "main:app", "--host", "0.0.0.0", "--port", "8000"]


⚙️ 2 Procfile (for Render or Heroku-style deployment)

web: uvicorn main:app --host 0.0.0.0 --port $PORT

(Render automatically replaces $PORT; DigitalOcean will respect EXPOSE 8000.)


3 Environment Variables (required on the platform)

Variable

Description

OPENAI_API_KEY

Your OpenAI key

MONGO_URI

Connection string to MongoDB Atlas cluster

PERSONALAI_WIDGET_URL

Snippet or script URL for HemenParekh.ai chat widget

APP_ENV

production


🔐 4 MongoDB Atlas Network Settings

1.     Log in to Atlas Project Network Access.

2.     Add IP “0.0.0.0/0” (for Render/DigitalOcean) or specific IP if security requires.

3.     Get the connection URI:

4.     mongodb+srv://<user>:<pass>@cluster0.xxxxxx.mongodb.net/bloggenie


🌐 5 Render Deployment Steps

1.     Push code to GitHub repo (e.g. HemenParekh/BlogGenieGK).

2.     Log into Render.com, click New Web Service Deploy from GitHub.

3.     Choose repository & branch.

4.     Set:

o    Runtime: Docker

o    Build Command: (leave blank)

o    Start Command: (from Procfile auto)

5.     Add environment variables.

6.     Deploy watch logs until Uvicorn running on port 8000.


🚀 6 DigitalOcean App Platform Deployment

1.     Create a new app from GitHub repo.

2.     Select Dockerfile as the build source.

3.     Configure Environment Variables (same as above).

4.     Select 1 container instance Deploy.

5.     Add a Managed Mongo DB instance or connect Atlas.


🧠 7 Verification Flow

Step

Expected Result

Visit your app URL

Blog Genie input form appears

Submit prompt

Blog + UPSC GK question generated

Click “Ask HemenParekh.ai”

Avatar popup loads via Personal.ai widget

Check logs

Two LLM calls succeed (blog + question)

View /blogs

All entries list with timestamp and GK question


🧩 8 Optional Enhancements

Enhancement

Quick Implementation

Static Assets

Add /static folder + mount in FastAPI

Logging & Monitoring

Add structlog or loguru to log LLM latency

Authentication

Wrap admin routes with OAuth or simple password middleware

Auto-Tweet/LinkedIn

Use python-twitter or linkedin-api to post new GK questions daily

Quiz API

Expose /api/gk-questions?limit=10 for external apps


9 Resulting Architecture

User HemenParekh.in

  

Blog Genie UI  (FastAPI + Jinja)

  

OpenAI API  (blog + GK question)

  

MongoDB Atlas  (persistent store)

  

Personal.ai Widget  (answers via Avatar)


Once Kishan deploys this, every new blog generated will automatically:

1.     Produce an UPSC-style GK question.

2.     Display it beneath the blog.

3.     Offer an instant avatar-answer popup.

4.     Save both to a live GK question database, which can later power a “UPSC Question of the Day” API or mobile feed.


Would you like me to append a Docker-Compose.yml version too (for local dev with Mongo running in a container and the app auto-starting together)?

 

Perfect, Hemen Bhai — here’s the Docker Compose setup Kishan can use for local development or quick cloud deployment.
It launches both the FastAPI app and a Mongo DB container together, with persistent storage and environment variables pre-wired.


🧩 1 docker-compose.yml

version: '3.9'

 

services:

  web:

    build: .

    container_name: bloggenie_app

    restart: always

    ports:

      - "8000:8000"

    environment:

      - OPENAI_API_KEY=${OPENAI_API_KEY}

      - MONGO_URI=mongodb://mongo:27017/bloggenie_db

      - PERSONALAI_WIDGET_URL=${PERSONALAI_WIDGET_URL}

    depends_on:

      - mongo

    volumes:

      - .:/app

 

  mongo:

    image: mongo:6.0

    container_name: mongo_bloggenie

    restart: always

    ports:

      - "27017:27017"

    volumes:

      - mongo_data:/data/db

 

volumes:

  mongo_data:


⚙️ 2 Local Usage Steps

1.     Save this file beside your Dockerfile and FastAPI code.

2.     Create an .env file in the same directory:

3.     OPENAI_API_KEY=sk-xxxx

4.     PERSONALAI_WIDGET_URL=https://cdn.personal.ai/widget/latest/personalai.js

5.     Launch everything:

6.     docker-compose up --build

7.     Visit http://localhost:8000

o    Type a blog prompt Blog + GK Question auto-generated

o    Click Ask HemenParekh.ai avatar answers

o    Mongo DB persists data in mongo_data volume


🧠 3 What This Gives Kishan

Component

Purpose

web

Runs the FastAPI + Blog Genie logic

mongo

Persistent database (no need for Atlas during local dev)

volumes

Keeps blog history between restarts

environment vars

Keeps secrets separate from code


🚀 4 Optional Production Variants

Environment

Deployment Tip

Render / DigitalOcean Apps

Ignore mongo service and connect to Atlas (faster startup).

AWS Lightsail / EC2

Use this compose file as-is; run docker-compose up -d under systemd.

Scaling

Add replicas: 2 under web: for load balancing.


🔒 5 Security Reminders

  • Never commit .env to GitHub.
  • When moving to production, replace mongo:27017 with your Atlas URI.
  • Use HTTPS (Render/DigitalOcean provide SSL automatically).

This gives Kishan a one-command local stack and a seamless path to deploy the Blog Genie + GK Question + Avatar ecosystem anywhere.

Would you like me to also give him a short Postman / cURL test collection so he can verify all API endpoints (/, /blogs, /api/gk-questions) automatically after deployment?

You said:

Sure

ChatGPT said:

Here’s a Postman / cURL test suite that Kishan can use to quickly verify all endpoints after deployment — locally (http://localhost:8000) or on production (https://hemenparekh.in/bloggenie).


🧪 1 Postman Collection (Text Export)

He can import the following JSON snippet into Postman Collections Import Raw Text:

{

  "info": {

    "name": "BlogGenieGK_API_Tests",

    "_postman_id": "d2f3f4b2-8c6e-4a98-b901-f89aa9e6aa0b",

    "description": "API verification for Blog Genie + GK Question + Avatar Integration",

    "schema": "https://schema.getpostman.com/json/collection/v2.1.0/collection.json"

  },

  "item": [

    {

      "name": "1 Generate Blog + GK Question",

      "request": {

        "method": "POST",

        "header": [

          {"key": "Content-Type", "value": "application/x-www-form-urlencoded"}

        ],

        "body": {

          "mode": "urlencoded",

          "urlencoded": [

            {"key": "title", "value": "AI and Employment", "type": "text"},

            {"key": "prompt", "value": "How Artificial Intelligence is reshaping the job market in India", "type": "text"}

          ]

        },

        "url": {

          "raw": "http://localhost:8000/",

          "protocol": "http",

          "host": ["localhost"],

          "port": "8000",

          "path": [""]

        }

      },

      "response": []

    },

    {

      "name": "2 Fetch All Blogs (HTML)",

      "request": {

        "method": "GET",

        "header": [],

        "url": {

          "raw": "http://localhost:8000/blogs",

          "protocol": "http",

          "host": ["localhost"],

          "port": "8000",

          "path": ["blogs"]

        }

      },

      "response": []

    },

    {

      "name": "3 Health Check (Root)",

      "request": {

        "method": "GET",

        "header": [],

        "url": {

          "raw": "http://localhost:8000/",

          "protocol": "http",

          "host": ["localhost"],

          "port": "8000",

          "path": [""]

        }

      },

      "response": []

    }

  ]

}


🧰 2 Equivalent cURL Commands

Generate Blog + GK Question

curl -X POST http://localhost:8000/ \

  -H "Content-Type: application/x-www-form-urlencoded" \

  -d "title=AI%20and%20Employment" \

  -d "prompt=How%20Artificial%20Intelligence%20is%20reshaping%20the%20job%20market%20in%20India"

List All Blogs

curl -X GET http://localhost:8000/blogs

Health Check

curl -X GET http://localhost:8000/


3 Expected Test Results

Endpoint

Expected Output

HTTP Code

/ (POST)

Returns rendered HTML with generated blog + GK question

200

/blogs (GET)

Lists recent blogs with questions

200

/ (GET)

Shows Blog creation form

200

If any call returns 500, Kishan should check:

  • .env values (especially OpenAI API key and Mongo URI).
  • That both containers (web and mongo_bloggenie) are running (docker ps).
  • Network: mongo must resolve internally within Docker (the depends_on: handles this).

🧠 4 Optional API Enhancements for Future

Feature

Endpoint

Description

REST endpoint for quizzes

/api/gk-questions?limit=10

Returns JSON array of latest GK questions

Health check

/healthz

Returns { "status": "ok" }

Ping Personal.ai

/avatar-test

Confirms the avatar widget loads correctly


Would you like me to now add that /api/gk-questions JSON route (with limit parameter and Mongo query) into the FastAPI app so Kishan can expose a public UPSC “Question Feed API”?

You said:

Pl do

ChatGPT said:

Perfect, Hemen Bhai — here’s the extra FastAPI route that turns your blog database into a live UPSC Question Feed API.
Kishan can simply paste this into the bottom of
main.py (right above the final if __name__ == "__main__": line).


🧩 New API Route: /api/gk-questions

from fastapi import Query

from fastapi.responses import JSONResponse

 

@app.get("/api/gk-questions", response_class=JSONResponse)

async def get_gk_questions(limit: int = Query(10, ge=1, le=50)):

    """

    Returns the most recent UPSC-style GK questions in JSON format.

    Example:

        GET /api/gk-questions?limit=5

    """

    questions = []

    cursor = db.blogs.find({}, {"_id": 0, "title": 1, "gk_question": 1, "created_at": 1}).sort("created_at", -1).limit(limit)

    async for doc in cursor:

        questions.append({

            "title": doc["title"],

            "question": doc["gk_question"],

            "created_at": str(doc["created_at"])

        })

    return {"count": len(questions), "questions": questions}


🧠 Example JSON Response

When you visit
http://localhost:8000/api/gk-questions?limit=3
you’ll get:

{

  "count": 3,

  "questions": [

    {

      "title": "AI and Employment",

      "question": "How is artificial intelligence reshaping India’s workforce?",

      "created_at": "2025-10-30 10:45:21"

    },

    {

      "title": "Climate Governance in India",

      "question": "What are the challenges in balancing industrial growth with ecological sustainability?",

      "created_at": "2025-10-28 08:30:10"

    },

    {

      "title": "Digital Education Reforms",

      "question": "Evaluate India’s strategy in bridging the digital learning divide post-pandemic.",

      "created_at": "2025-10-27 09:17:44"

    }

  ]

}


🧩 How Kishan Can Use It

Purpose

Example

🧭 Build “UPSC Question Feed” page

Fetch from /api/gk-questions via JS or backend

📱 Mobile App Integration

Any frontend can consume the JSON

📥 Weekly Quiz Compiler

Cron script fetches this endpoint and stores 10 questions for a PDF digest

🔍 SEO

Serve these questions in sitemap.xml or RSS for indexing


Quick Postman / cURL Test

Postman:

GET http://localhost:8000/api/gk-questions?limit=5

cURL:

curl -X GET "http://localhost:8000/api/gk-questions?limit=5"

Expected: 200 OK + JSON list of questions.


🧱 Optional Next Step

If Kishan adds this line inside templates/blog_list.html:

<p><a href="/api/gk-questions" target="_blank">📡 View as JSON Feed</a></p>

Visitors can instantly see the live feed, confirming that HemenParekh.in is now a UPSC GK Question API endpoint as well as a blog hub.


Would you like me to also prepare a weekly cron job (Python script) that automatically calls this API, compiles the 10 latest questions into a clean PDF quiz and emails it to you (or uploads it to a specific folder)?

 

No comments:

Post a Comment