-
Notifications
You must be signed in to change notification settings - Fork 80
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Improve search engine ranking for pages on Hasjob #411
Comments
We need a Filtered views are not included in the regular sitemap. They will be in the access-controlled sitemap. The other suggested models are overthinking this problem and not necessary at this time. |
Instead of complementing categories with roles, we could just add more categories and re-categorise existing jobs (in the past 30 days). |
"Industry" applies to employers, not jobs, and should be a separate ticket. |
They should not be in |
Lines 744 to 755 in 138460f
|
So, the description can be as follows?
Eg: "Full-time python programming jobs in Bangalore" or "Internship jobs in Mumbai" or "Testing jobs". |
Yes, but something more elaborate may be better for SEO. |
What if we start by generating sitemap links dynamically based on the available jobs? That is, we make permutations of
|
Can we not over-engineer this, please? This is an audience manager's tool. It's meant to empower them to reach appropriate audiences. Let the manager decide what traffic to attract. |
How should |
|
It seems like this feature could also be useful to implement email alerts for candidates? In that, a candidate can set email alerts for filtered views. |
It's similar, but not the same. There's nothing in filtered views to detect a new job matching the spec. We could refresh all filtered views, but there will be hundreds of them. Getting reliable notification infra in place is an entire other ticket. |
For the class FilteredView(BaseScopedNameMixin, db.Model):
__tablename__ = 'filtered_view'
description = db.Column(db.UnicodeText, nullable=False)
filters = db.Column(JsonDict, nullable=False, server_default='{}')
board_id = db.Column(None, db.ForeignKey('board.id'), nullable=False, primary_key=True, index=True)
board = db.relationship(Board, backref=db.backref('filtered_views', lazy='dynamic', cascade='all, delete-orphan')) |
All filters will have to be join tables, just like in the board model. That's how we implement detection for when a new job is posted. |
If you can get indexes to work within a JSONB column, however, that's usable as well. |
Actually, you need foreign keys from the JSONB column to the respective type/category/tag/domain models. If PostgreSQL doesn't support foreign keys in JSON, JSON is the wrong data type. |
Just making sure I understand correctly. For a given route like |
Search behaviour
To improve Hasjob's search engine ranking, it helps to understand what people search for. Here's a sample of suggestions the Google's AdWords Keywords tool provides, given keywords:
The numbers in brackets indicate monthly searches.
Currently, Hasjob doesn't rank well when it comes to the above search patterns.
Guidelines
Google's guidelines suggests the following (in addition to a few more):
Proposal
As a first milestone towards improve search engine ranking I propose we:
location
(This is already doneStartup jobs in Bangalore
)technology
jobs inlocation
technology
companies inlocation
role
jobs inlocation
industry
jobs inlocation
industry
companies inlocation
technology
jobsrole
jobsindustry
jobstechnology
refers toPython
,JavaScript
,Machine Learning
androle
refers toProject Manager
,Frontend developer
and so on. We currently havecategory
as a filter, but the listed categories (eg:Programming
,Interaction design
) are too broad, and don't capture the granularity mentioned in the job posts (eg: Full stack developer, Devops engineer).Here's one way we can categorize job posts with better granularity. We add a
Role
model, populate it based on past Hasjob data and match the job posts against these roles.Regarding
industry
, we can use the same tactic. We can add anIndustry
model, populate it with past data (eg: Fintech, Healthcare) and tag job posts with the appropriateindustry
.Open question: how do we make filtering accessible to search engines? This will help address the first guideline laid out by Google.
sitemap.xml
.The text was updated successfully, but these errors were encountered: